Генератор ШИМ/импульсов на STM32F050

Иногда полезная приблуда — управляемый по RS232 генератор на 6 каналов ШИМа + 1 импульсный.

Контроллер чуть разогнан до 60МГц, кварц 24МГц.

В режиме ШИМ доступно 4 таймера по 3+1+1+1 ШИМа:

  • pwm0.0 — PA1 — AF2 — TIM2_CH2
  • pwm0.1 — PA2 — AF2 — TIM2_CH3
  • pwm0.2 — PA3 — AF2 — TIM2_CH4
  • pwm1.0 — PA4 — AF4 — TIM14_CH1
  • pwm2.0 — PA6 — AF1 — TIM3_CH1
  • pwm3.0 — PA7 — AF5 — TIM17_CH1


Для каналов pwm0.0-0.2 используется 32-битный таймер, диапазон частот 0.013Гц..30МГц, для остальных — 915.5Гц..30МГц.

В режиме генератора импульсов PA7 — выход, PA6 — вход внешнего запуска (спадающий фронт). Доступен буфер на 600 32-битных интервалов с дискретностью 1мкС (1мкС..4294сек).

Управление — по RS232 (38400,8n1), протокол простой текстовый key=value (value — 32-битные десятичное целое):

  • name=\n — чтение параметра (ответ — число\n);
  • name=value\n — запись параметра (ответ — ok\n в случае успешной записи, или err\n — ошибки).


Доступные параметры:

  • chns — количество таймеров;
  • pwmen — 1/0 (вкл/выкл) режима ШИМа;
  • pwms0..3 — количество ШИМов на таймере 0..3;
  • hz0..3 — частота таймера 0..3, Гц (целая часть);
  • uhz0..3 — частота, дробная часть (в микрогерцах);
  • pwm00,01,02,10,20,30 — ШИМ, в миллипроцентах (0..100000);
  • pwm00inv,01,02,10,20,30inv — инверсия сигнала (если =1);
  • plevel — начальный уровень импульсного сигнала (0/1);
  • preset — сброс импульного буфера (если =1);
  • pstart — старт генерации импульсов (если =1);
  • p1us,p10us,p100us,p1ms,p10ms,p100ms,p1s — добавить в буфер интервал в единицах/десятках/сотнях мкс/мс/сек.

Управляющее ПО — клиент-сервер с управлением из браузера:

ШИМ

Импульсы

При задании длительности интервалы в мкс перечисляются через запятую.
Миллисекунды/секунды можно задавать в виде m(ms1,ms2,ms3...) и s(s1,s2,s3,...).
Повторы последовательностей — r(n, t1, t2, ...).

Для работы нужна Java7.
  • +3
  • 29 октября 2013, 02:51
  • reptile
  • 2

Комментарии (14)

RSS свернуть / развернуть
круто, прикольно.
а сама железка что из себя представляет?
0
пойдет любая плата с STM32F0, напр.F0Discovery.
я использовал эту: we.easyelectronics.ru/reptile/stm32f050f4-v-tssop20-otladochnaya-plata-i-testovyy-proekt.html
0
в автономной коробке с литием и блютузом:
0
А какая у МК максимальная тактовая по дш? 24?
0
48
0
вставлю свои 5 копеек.
В очень многих случаях кварцы (не генераторы) на частоты >16МГц стабильно не запускаются. Особенно на чипах ATMEL с ядром 805х. Поэтому никогда их не ставлю и никому не советую:)

У вас с генерацией как? Стабильно?
0
проблем нет. 24М — в общем то штатная частота.
0
Кстати, насколько я помню доки на STM32F1, они рекомендует ставить HSE-кварцы довольно невысокой частоты. Вроде мегагерц до 16, а выше получать умножителем.
Возможно, это связано с тем, что высокочастотные кварцы работают на гармониках, и иногда требуют дополнительных схемотехнических ухищрений, чтобы завелись на требуемой гармонике, а не, например, первой.
0
Тем не менее, «референс дизайн» F4 сделан на кварце 25МГц.
0
Ну то F4, а это из данных на F1, да еще и по памяти… Точно помню только что рекомендуемые частоты кварцев были ограничены сверху.
0
Не всегда на гармониках (до 25 МГц — почти все на основной частоте работают), но бывают рассчитаны на разные схемы включения — или параллельный резонанс, или последовательный; бывает, что кварц работает и в той и в другой схеме, но частота генерации несколько отличается (этак на несколько кГц).
Насчёт незапуска атмеловских 51 — это была эпическая история с AT89S8253, как только они появились. Они и на 8 МГц не хотели запускаться при температуре ниже нуля, а на 22,1184 не запускались при комнатной температуре. Аналогичный эффект несколько реже наблюдался в самых первых мегах с индексом «A», потом подправили.
0
Когда-то я читал, что все выше примерно 10М — на гармониках, но возможно, эти данные и устарели…
Плюс про кварцы на гармониках ЕМНИП писал какой-то аппнот то ли от Fairchild, то ли кого-то в этом духе, и там вроде тоже 25М уже к гармоникам относились.
Параллельный и последовательный резонансы тоже упоминались аппнотом.
0
это была эпическая история с AT89S8253, как только они появились. Они и на 8 МГц не хотели запускаться
да, было такое. Помогал резистор обратной связи
0
нихрена не помогал. наступила осень — всё поплыло опять.
слетали EEPROM и FLASH только так.
кварцы были 22.118М
поставили 11059 с удвоением в настройках — частота косяков резко упала, но в целом они случались.
там ещё питалово влияет: где 5В подаётся резким фронтом — всё ОК. Если с преобразователя типа 27->5 — случаются косяки.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.