-
- Спасибо! Также выяснилось, что у STM32L0, быстрый умножитель.
Откуда у меня такая нестабильность... IBAH(324 знак., 03.02.2021 21:10)
- Готовить не умеешь. 5 тактов разброс это норма. Если у тебя из-за этого проблемы, то ты что-то неправильно делаешь. Если тебе нужен нулевой джиттер, то он делается по другому, не программно. Короче - учись готовить :-) Обрисуй тут свою задачу - получишь кучу советов :-) - il-2(04.02.2021 07:58)
- Не рассматривали TMS320 Picollo? - evgeniy1294(03.02.2021 23:06)
- Если не секрет, что за проект такой, если там 5 тиков портят
настроение? - SciFi(03.02.2021 21:12)
- Измерение. По таймеру управляется аналоговый перемножитель,
Обработчик таймера занимает 75% машинного времени, шум таймера с
смультиплексируется с сигналом, не знаю с каким коэффициентом, но
смультиплесируется. - IBAH(03.02.2021 22:04)
- Ну то есть запас 25% есть. Что мешает в пределах этого окна жёстко
привязаться к таймеру? - SciFi(03.02.2021 22:29)
- Жестко это как? по моему жестче чем прерывание уже некуда.
Обработчик таймера не просто 0/1 выкидывает, а сложный сигнал
выводы. - IBAH(03.02.2021 22:34)
- Это конечно полное безобразие - синтезировать сигнал на прерываниях. Тем более в АРМах. Хоть какой приоритет задай, но само завершение текущей инструкции после взведения флага является нестабильным. - my504(04.02.2021 04:57)
- Только вам ведомо, что у вас там происходит. А у меня следующее по жёсткости после прерывания — это ПДП с регистрами ЦАП и АЦП. Ещё выборка АЦП по сигналу от таймера тоже жёстко. - SciFi(03.02.2021 22:56)
- Жёстче, чем прерывание - ШИМ, завязанная на таймер. - Kpoк(03.02.2021 22:36)
- Я же говорю, в обработчике сложный сигнал, два по два бинарных
вектора (всего 4 бита), эти вектора управляются из основного цикла - IBAH(03.02.2021 22:42)
- Внешний Д-триггер, тактируемый упомянутым шим-сигналом. Второй вариант - ПДП из регистра в порт по тому же таймеру. Там хоть 16 бит - Kpoк(04.02.2021 08:25)
- На таймерах STM32 можно такой концерт для фортепьяно с оркестром
сыграть!!! И полностью аппаратно, без всяких джиттеров. Рекомендую
почитать про DMA burst mode - это когда регистры конфигурации
таймера меняются "на лету", загружаясь по ДМА. Я делал на STM32
полностью аппаратную RGB развертку. Дерзай!!! - il-2(04.02.2021 08:09)
- ДМА никак не решает поставленную задачу. ДМА лишь позволяет не
грузить ядро. Между реквестом ДМА и завершением транзакции джиттер
примерно такой же, как и при использовании прерываний. Ну может
чуть меньше, но непринципиально. Отсутствие джиттера гарантирует
прямая синхронизация модулей периферии. Если она есть в требуемой
для задачи конфигурации, конечно. - my504(04.02.2021 11:16)
- Ты тоже почитай про DMA burst mode. Джиттеры ДМА-транзакций никак
не влияют на джиттеры таймера, который только перенастраивается с
помощью ДМА (разумеется, если интервалы таймера превышают возможные
задержки ДМА). - il-2(04.02.2021 11:57)
- Ты так пишешь про бурст мод, словно это не элементарщина, а
сакральное знание. Однако я и писал о том, что не ДМА обеспечивает
малый джиттер. Понятно, что если нужно хором сменить несколько
регистров периферии, требуется пакетная передача ДМА с интервалом
шины по единственному реквесту. - my504(04.02.2021 12:07)
- Термины, термины :-) Почитай про Timer burst mode :-) -> - il-2(04.02.2021 12:10, ссылка)
- Ты так пишешь про бурст мод, словно это не элементарщина, а
сакральное знание. Однако я и писал о том, что не ДМА обеспечивает
малый джиттер. Понятно, что если нужно хором сменить несколько
регистров периферии, требуется пакетная передача ДМА с интервалом
шины по единственному реквесту. - my504(04.02.2021 12:07)
- Ты тоже почитай про DMA burst mode. Джиттеры ДМА-транзакций никак
не влияют на джиттеры таймера, который только перенастраивается с
помощью ДМА (разумеется, если интервалы таймера превышают возможные
задержки ДМА). - il-2(04.02.2021 11:57)
- Чуть поподробней. Что именно можно у них менять на лету? Период,
ширину импульса. Ещё что? - Kpoк(04.02.2021 10:58)
- Все параметры, задаваемые в регистрах конфигурации. За подробностями см. AN4776 General-purpose timer cookbook, а так-же описание регистра TIMx->DCR . Я кстати, немного термины перепутал - речь идет о Timer burst mode. Термин DMA burst mode относится к режиму DMA в STM32F2. - il-2(04.02.2021 12:08)
- Про какой кусочек на диаграмме хотите подробности?
>>> SciFi(1 знак., 04.02.2021 11:08, картинка)
- Про все. У ПИКов, например, некоторые изменения наступают только после выключения-включения модуля. - Kpoк(04.02.2021 12:15)
- Вероятно проблема в том, что собственно на лету менять в генерации ничего нельзя. Часть регистров будет употреблена лишь после очередного апдейта, а часть вообще не может быть модифицирована на лету. Только после останова/завершения пакета ДМА. Бурст мод может лишь пакетом (с интервалом транзакций шины) выгрузить конфигурацию в регистры периферии, но ничего не меняет в процедуре апдейта. - my504(04.02.2021 11:43)
- а как смещать указатель буфера ПДП на ходу? - ИвaнII(04.02.2021 10:42, )
- ДМА никак не решает поставленную задачу. ДМА лишь позволяет не
грузить ядро. Между реквестом ДМА и завершением транзакции джиттер
примерно такой же, как и при использовании прерываний. Ну может
чуть меньше, но непринципиально. Отсутствие джиттера гарантирует
прямая синхронизация модулей периферии. Если она есть в требуемой
для задачи конфигурации, конечно. - my504(04.02.2021 11:16)
- 4 бита - это 4 или даже 2 output compare модуля. У многих чипов столько есть. Работают "железно". Nikolay_Po(101 знак., 03.02.2021 23:29)
- Логику можете немного подробнее описать? Возможно коллективным разумом что-нибудь придумаем. - evgeniy1294(03.02.2021 23:08)
- Я же говорю, в обработчике сложный сигнал, два по два бинарных
вектора (всего 4 бита), эти вектора управляются из основного цикла - IBAH(03.02.2021 22:42)
- Жестко это как? по моему жестче чем прерывание уже некуда.
Обработчик таймера не просто 0/1 выкидывает, а сложный сигнал
выводы. - IBAH(03.02.2021 22:34)
- Ну то есть запас 25% есть. Что мешает в пределах этого окна жёстко
привязаться к таймеру? - SciFi(03.02.2021 22:29)
- Измерение. По таймеру управляется аналоговый перемножитель,
Обработчик таймера занимает 75% машинного времени, шум таймера с
смультиплексируется с сигналом, не знаю с каким коэффициентом, но
смультиплесируется. - IBAH(03.02.2021 22:04)
- Спасибо! Также выяснилось, что у STM32L0, быстрый умножитель.
Откуда у меня такая нестабильность... IBAH(324 знак., 03.02.2021 21:10)