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

Пользовательские блоки не подходящее под другие разделы
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
aidar_i
Полковник
Сообщения: 3130
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 677
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#1

Сообщение aidar_i » 23.08.2023{, 14:41}

Дополнительный блок для настройки разрядности и частоты выхода ШИМ STM32 из программы.
Данный блок позволяет изменить данные параметры ШИМ в любой момент.
Блок настройки ШИМ STM32.flp
(292.92 КБ) 52 скачивания
Испытал в "железе" - работает.
Шпаргалка по разрядности:
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 разных значений

Sams
Рядовой
Сообщения: 22
Зарегистрирован: 31.03.2023{, 13:28}
Репутация: 2
Имя: Вася

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

#2

Сообщение Sams » 24.08.2023{, 11:14}

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

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

MM33
Рядовой
Сообщения: 41
Зарегистрирован: 23.06.2021{, 11:52}
Репутация: 7
Имя: Михаил

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

#3

Сообщение MM33 » 24.08.2023{, 14:56}

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

MM33
Рядовой
Сообщения: 41
Зарегистрирован: 23.06.2021{, 11:52}
Репутация: 7
Имя: Михаил

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

#4

Сообщение MM33 » 28.08.2023{, 14:10}

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

Ответить

Вернуться в «Другое»