Миландр
https://forum.milandr.ru/

Микроконтроллер для электродвигателей
https://forum.milandr.ru/viewtopic.php?f=14&t=1753
Страница 14 из 14

Автор:  StartMilandr [ 2020-окт-31 23:09 ]
Заголовок сообщения:  Re: Микроконтроллер для электродвигателей

R Max писал(а): *
1) при любом обращении через битовые поля значение размазывается по байтам, то есть пишется какой-либо бит, а он повторяется 4 раза,
Если это про то, что тут написано https://github.com/StartMilandr/MDR_Pack_v6/wiki
то я не нашел способа объяснить компилятору, чтобы он STRB инструкции не использовал при записи в регистр (при выставлении битового поля)

С HSE наверное отсюда же ноги растут, посмотрите что в итоге оказывается в регистрах. Либо это Errata 2004 - https://startmilandr.ru/doku.php/doc:mk:mkee:ask1
На отладочной поэтому приходилось после подачи питания дополнительно Reset подавать, если память не изменяет.

Автор:  R Max [ 2020-ноя-01 02:23 ]
Заголовок сообщения:  Re: Микроконтроллер для электродвигателей

StartMilandr писал(а): *
R Max писал(а): *
1) при любом обращении через битовые поля значение размазывается по байтам, то есть пишется какой-либо бит, а он повторяется 4 раза,
Если это про то, что тут написано https://github.com/StartMilandr/MDR_Pack_v6/wiki
то я не нашел способа объяснить компилятору, чтобы он STRB инструкции не использовал при записи в регистр (при выставлении битового поля)

С HSE наверное отсюда же ноги растут, посмотрите что в итоге оказывается в регистрах. Либо это Errata 2004 - https://startmilandr.ru/doku.php/doc:mk:mkee:ask1
На отладочной поэтому приходилось после подачи питания дополнительно Reset подавать, если память не изменяет.
StartMilandr

GRAND MERCI!!! :D

Всё заработало, по 1) да в листинге LDRB/STRB - галочка enum is int помогает (раньше на это внимание не обращал, потому что всегда писал в битовые поля false/true (а они int походу) либо как в bitband);
по 2) фокус с кнопкой S5 (Reset) на отладочной плате работает :mrgreen: - действительно это errata 4.

P.S. Во вложении рабочий проект...поправил ещё логику работы с портами)...

Вложения:
esila.rar [852.68 КБ]
66 скачиваний

Автор:  R Max [ 2021-фев-23 18:40 ]
Заголовок сообщения:  Re: Микроконтроллер для электродвигателей

Появились следующие вопросы:

1. Чему равны максимальная частота тактирования АЦП и максимальная частота сэмплирования АЦП ?

2.1. Как синхронизировать работу контроллеров ШИМ 2, 6, 7, 8, чтобы начала их периодов счёта были одинаковыми при одинаковых периодах счёта (вообще нужен режим работы как на обычном таймере TMR - 4 пары (стойки) ключевых транзисторов: (СH1 + CH1n), (СH2 + CH2n), (СH3 + CH3n), (СH4 + CH4n) ?
2.2 По умолчанию контроллеры ШИМ уже синхронизированы по тактовой частоте микроконтроллера (PCLK) ?
2.3 Можно ли как-то синхронизировать модуль ШИМ с обычным таймером TMR, например чтобы получить режим работы 3 пары (стойки) ключевых транзисторов: (СH1 + CH1n), (СH2 + CH2n), (СH3 + CH3n) + (PWM1_A +PWM1_B) с тем же самым периодом счёта.

3. Как синхронизировать работу (например запуск преобразований между первыми в парах АЦП - ADC00, ADC01, ADC02) всех контроллеров АЦП 1, 2, 3 ?

Автор:  EvILOne [ 2021-фев-24 10:57 ]
Заголовок сообщения:  Re: Микроконтроллер для электродвигателей

R Max писал(а): *
2.1. Как синхронизировать работу контроллеров ШИМ 2, 6, 7, 8, чтобы начала их периодов счёта были одинаковыми при одинаковых периодах счёта (вообще нужен режим работы как на обычном таймере TMR - 4 пары (стойки) ключевых транзисторов: (СH1 + CH1n), (СH2 + CH2n), (СH3 + CH3n), (СH4 + CH4n) ?
На старт миландре указан способ: сначала конфигурируются таймеры, потом одной записью в RST запускается тактирование модулей.

Автор:  R Max [ 2021-фев-24 20:15 ]
Заголовок сообщения:  Re: Микроконтроллер для электродвигателей

EvILOne писал(а): *
R Max писал(а): *
2.1. Как синхронизировать работу контроллеров ШИМ 2, 6, 7, 8, чтобы начала их периодов счёта были одинаковыми при одинаковых периодах счёта (вообще нужен режим работы как на обычном таймере TMR - 4 пары (стойки) ключевых транзисторов: (СH1 + CH1n), (СH2 + CH2n), (СH3 + CH3n), (СH4 + CH4n) ?
На старт миландре указан способ: сначала конфигурируются таймеры, потом одной записью в RST запускается тактирование модулей.
Если про эту информацию https://startmilandr.ru/doku.php/doc:doclist:timers, то это не то, но всё равно Спасибо, тоже было интересно почитать !)

Не до конца понятна логика работы синхронизации модулей ШИМ - что необходимо записать в регистры ШИМ, чтобы собрать цепочку модулей ШИМ в определённой последовательности....и что значит фраза "для синхронизации таймера с другими таймерами системы" ....какой системы...системы модулей ШИМ, или сюда же можно включить обычные таймеры TMR ?? ...и я так понимаю в первом синхронном запуске модулей ШИМ должен как-то поучаствовать бит однократного программного импульса синхронизации-запуска SWSYNC ??
Открыть
Вложение:
[ attachment ]
Безымянный.jpg [ 224.13 КБ | 39 просмотров ]
Вложение:
[ attachment ]
3.jpg [ 218.04 КБ | 39 просмотров ]
Закрыть

Страница 14 из 14 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/