2-x фазный ШИМ (PWM) генератор на STM32F030F4

Для питания ряда устройств (например электродвигателей переменного тока) иногда необходимо наличие сдвинутых по фазе питающих напряжений. Для питания 2-х фазных индукционных двигателей необходимо наличие двух фаз синусоидального напряжения с частотой 400 Герц и сдвинутых по фазе на 90 градусов. Один из примеров таких двигателей являются двигатели серии ДИД. Они интересны тем, что их частота вращения может составлять от 16000 до 18000 об/мин. Для питания таких двигателей и было сделано данное устройство, которое представляет собой задающий генератор 2-х фазного 400 Гц напряжений сдвинутых по фазе на 90 градусов относительно друг друга.
В качестве микроконтроллера использован STM32F030F4. Его выбор обусловлен его «минимализмом» — наименьший из корпусов в серии STM32F0 и естественно с минимальной стоимостью. Схема подключения изображена ниже. Микроконтроллер работает на частоте 48 МГц. В качестве задающего генератора использован TIM3, так как в данном контроллере только этот таймер можно конфигурировать так, чтобы использовать выходы трех каналов. Третий канал можно в случае необходимости использовать для генерации 3-фазного напряжения. Таймер работает в режиме генерации ШИМ (PWM). Для получения синусоидального напряжения 400 Гц в канале используется высокочастотное изменение коэффициента ШИМ с частотой 40 кГц, на которую настроен системный таймер SysTick. Синусоида формируется с помощью таблицы значений синуса с шагом 360/100 градусов. Очень полезный калькулятор для такого рода таблиц можно найти на сайте. При желании с помощью АЦП можно управлять амплитудой, фазой, частотой генерации. Но в данной реализации это не сделано.



Ниже показаны выходные осциллограммы генератора. Синяя и фиолетовая синусоиды — сдвинуты на 90 градусов, желтая — выход таймера для синей синусоиды, зеленый — тестовый сигнал генерируемый при начале формирования синусоиды




Читать дальше

Модернизация STM32VL DISCOVERY STlink в STM32F103 DISCOVERY Stlink/V2

    Одной из первых отладочных плат от STMicroelectronics была выпущена плата STM32VLDISCOVERY с процессором STM32F100RB и программатором  STlink. Недостатком данного программатора является отсутствие процесса трассировки. И кроме того в качестве отлаживаемого  применен не очень быстрый процессор, работающей на предельной тактовой частоте 24 Мгц.
    Данную плату довольно легко можно модернизировать. Процессор, стоящий на плате без каких либо изменений можно заменить на например STM32F103RB или другой подобный из 103 серии в корпусе QFTP64. Данная замена оправдана тем, что данная линейка процессоров полностью поддерживается в отладчике Keil. Кроме того существует огромное количество примеров для работы с этим типом процессоров.
    Для переделки STlink в STlink/V2 необходимо сделать следующее:

1. Необходимо заменить прошивку микросхемы STM32F103C8 на которой  собран программатор. Для этого можно воспользоваться Flash loader demonstrator которая позволяет с помощью штатного загрузчика изменить прошивку в самом программаторе. Для этого нам необходимо подключиться к выводам USART1_TX она же PA9 (30 вывод) и USART1_RX она же PA10 (31 вывод) — по ним будет осуществляться программирование процессора. А также к выводам BOOT0 (44 вывод) для перехода в режим встроенного загрузчика в системной памяти процессора и RST (7 вывод). Выводы 31 и 30 лучше всего подсоединить к пустым выводам (NC) на плате соответственно слева и справа (2-е выводы сверху). Процедура программирования описывалась тут и тут. Вывод BOOT1(PB2) подключаем к земле (после прошивки не забываем убрать это соединение) — для того, чтобы заставить процессор после старта перейти на запуск встроенного в системную память загрузчика. Прошивку для заливки в процессор программатора можно скачать тут. А саму программу Flash loader demonstrator тут.
2. После этого необходимо на процессоре программатора соединить PB12 (вывод 25)  и PB14 (вывод 27).
3. Соединить вывод PB3 он же JTDO (вывод 55 отлаживаемого процессора STM32F103RB) и PA10 он же TSWO (вывод 31 процессора программатора).
    В результате данной модернизации в среде Keil данный программатор определяется как STlink/V2.