Страница 1 из 1

Настройка ШИМ STM32 из программы

Добавлено: 23.08.2023{, 14:41}
aidar_i
Дополнительный блок для настройки разрядности и частоты выхода ШИМ STM32 из программы.
Данный блок позволяет изменить данные параметры ШИМ в любой момент.
Блок настройки ШИМ STM32.flp
(292.92 КБ) 57 скачиваний
Испытал в "железе" - работает.
Шпаргалка по разрядности:
1 бит кодирует —> 2 разных значения,
2 бита кодируют —> 4 разных значения ,
3 бита кодируют —> 8 разных значений ,
4 бита кодируют —> 16 разных значений ,
5 бит кодируют —> 32 разных значения,
6 бит кодируют —> 64 разных значения,
7 бит кодируют —> 128 разных значения,
8 бит кодируют —> 256 разных значений,
9 бит кодируют —> 512 разных значений,
10 бит кодируют —> 1024 разных значений,
11 бит кодируют —> 2048 разных значений,
12 бит кодируют —> 4096 разных значений,
13 бит кодируют —> 8192 разных значений,
14 бит кодируют —> 16384 разных значений,
15 бит кодируют —> 32768 разных значений,
16 бит кодируют —> 65536 разных значений

Настройка ШИМ STM32 из программы

Добавлено: 24.08.2023{, 11:14}
Sams
спасибо работает
только потолок стоит в 32787гц
а по возможностям шим такой же как у есп32 на 16 бит желательно не более 1кгц ещё стабильно а за 1,5кгц уже нарушена синхронизация меж импульсами видимо импульс в несколько нс это предел для ядра

и не понятно какую частоту IDE выставляет ядру может это ещё влияет
если ковырнуть CUBEmx то там целая поэзия в настройке частот и по умолчанию там стоит 8мгц
2023-08-24_151140.png

Настройка ШИМ STM32 из программы

Добавлено: 24.08.2023{, 14:56}
MM33
Аппаратный генератор на таймере TIM1.
Частоту переключает на ходу, по изменению числа на входе. Проверял на на FLProg 7.3.8.
пример с блоком во вложении. Может кому пригодится. (в коде часть лишнего, но под мои задачи это не критично)
аппаратный таймер STM32 F103.flp
(3.28 МБ) 53 скачивания

Настройка ШИМ STM32 из программы

Добавлено: 28.08.2023{, 14:10}
MM33
Построен на TIM1 для STM 32 F103, c другими МК блок не проверялся..
На вход Timperiod задаем период ШИМ.
На вход PWM задаем время импульса (не может быть больше времени периода).
Выход Q - программный ШИМ ( может иметь джиттер с увеличением проекта, особенно при использовании в программе delay, прерываний и т.д.)
На физическом выходе PA8 - ШИМ не зависящий от особенностей программного кода.
Выход Fr - бонус , пилообразный счетчик от нуля до значения Timperiod
С коэффициэнтом *TIM1_PSC = 7200 - работает в ms, если нужны мкс TIM1_PSC = 72.Изменять в редакторе , секция Setap.
Из программы можно на ходу изменять значения на обоих входах соблюдая условие - время Timperiod больше времени PWM.
Блок можно использовать как несимметричный мультивибратор.