Фильтр по тематике

Современные 32-разрядные ARM-микроконтроллеры серии STM32. Преобразователь аналоговых сигналов управления в цифровые

В статье описан преобразователь аналоговых сигналов управления от 0 до 10 В в цифровые с широтно-импульсной модуляцией на основе 32-разрядного ARM-микроконтроллера серии STM32 от компании STMicroelectronics и приведены примеры программ, обеспечивающих работу устройства.

Введение

Довольно часто в современных системах автоматического управления возникает необходимость использования различных типов интерфейсов. Для одних исполнительных устройств, например, необходим управляющий аналоговый сигнал от 0 до 10 В или токовый выход от 0 до 20 мА, для других – сигнал с широтно-импульсной модуляцией (ШИМ). В управляющем устройстве количество интерфейсов ограничено, что может приводить к нехватке того или иного их типа. Одним из решений данной проблемы является преобразователь интерфейсов управления. Назначение описанного в статье преобразователя заключается в получении управляющего интерфейса ШИМ из аналогового интерфейса с сигналами от 0 до 10 В.

Аппаратная часть

Преобразователь выполнен на недорогом микроконтроллере STM32 [1]. Для повышения функциональности устройство сделано 4-канальным, т.е. позволяет одновременно преобразовывать 4 входных аналоговых сигнала от 0 до 10 В в выходные сигналы ШИМ. Устройство построено на отладочной плате STM32VLDISCOVERY [2], имеющей в своем составе микроконтроллер STM32F100RBT6B в 64-выводном корпусе LQFP с 128 Кбайт флэш-памяти и 8 Кбайт оперативной памяти. Кроме того, на плате имеются встроенный программатор с отладчиком по интерфейсу USB, несколько светодиодов и пользовательская кнопка. Большинство выводов микроконтроллера подключены к штырьковым соединителям по периметру платы и имеют маркировку. Внешний вид отладочной платы приведён на рисунке 1.

Для построения преобразователя интерфейсов воспользуемся встроенным в микроконтроллер аналого-цифровым преобразователем и широтно-импульсным модулятором. Благодаря многоканальности этих блоков можно реализовать несколько преобразователей интерфейсов с помощью одного микроконтроллера.

Поскольку микроконтроллер питается от 3,3 В, его 12-разрядный аналого-цифровой преобразователь имеет ограничение входного сигнала по амплитуде 3,3 В. В связи с этим входные сигналы с амплитудой от 0 до 10 В необходимо подключать к входам АЦП микроконтроллера через резистивные делители или переменные резисторы. Можно дополнительно подключить к входам АЦП керамические конденсаторы ёмкостью от 0,1 до 1 мкФ для фильтрации помех. Делители осуществляют преобразование напряжения входных сигналов в напряжение рабочего диапазона АЦП микроконтроллера от 0 до 3,3 В. Нормированные и отфильтрованные сигналы поступают на входы АЦП микроконтроллера. С помощью внутренней программы микроконтроллер будет последовательно опрашивать входы АЦП и преобразовывать их цифровые значения в параметры скважности сигналов ШИМ, формируемых внутренними таймерами микроконтроллера. Выходные сигналы ШИМ необходимо подключить через ограничительные резисторы номиналом 1 кОм к базе выходных транзисторов, работающих в режиме ключей. Таким образом, при изменении аналоговых сигналов на входах преобразователя на его выходах будут формироваться сигналы ШИМ в виде открытого или закрытого состояний транзисторов.

Программное обеспечение

Для назначения входных и выходных сигналов отладочной платы STM32VLDISCOVERY использовался свободно распространяемый графический генератор кода STM32CubeMX от компании STMicroelectronics [2]. После установки и запуска данного программного обеспечения необходимо создать новый проект и выбрать во вкладке Board Selector отладочную плату STM32VLDISCOVERY. При этом генератор кода отобразит на экране монитора внешний вид микроконтроллера отладочной платы с подключёнными к нему интерфейсами отладчика, светодиодами и другими цепями.

Подключение необходимых блоков для преобразователя интерфейсов осуществляется во вкладке Pinout. Входы АЦП подключаются с помощью установки галочек в полях IN1…IN4 раздела ADC Peripherals. Выходы ШИМ подключаются путём выбора режимов PWM Generator CH1…CH4 в полях Channel1…Channel4 раздела TIM2 Peripherals. Кроме того, можно подключить в асинхронном режиме последовательный интерфейс в поле USART1 Peripherals. Это позволит использовать его в дальнейшем для отладки программы и настройки каналов преобразования интерфейсов. В результате вышеуказанных действий генератор кода STM32CubeMX автоматически распределит подключённые интерфейсы по портам микроконтроллера, как показано на рисунке 2.

После этого необходимо задать режимы работы подключённых интерфейсов и некоторые их параметры. Для этого следует во вкладке Configuration генератора кода STM32CubeMX раскрыть нужный блок. Для блока интерфейса USART1 необходимо установить скорость обмена 9600 бод, длину слова 8 бит, отсутствие паритета и 1 стоп-бит (см. рис. 3).

Для блока интерфейса ADC1 необходимо установить 4 инжекторных преобразователя Rank1…Rank4 и назначить для них каналы Cannel1… Cannel4 (см. рис. 4).

Для блока TIM2 требуется задать период 4096, соответствующий 12-разрядному АЦП, и разрешить автоматическую перезагрузку таймера
(см. рис. 5).

Теперь необходимо сгенерировать код программы. Для этого следует выбрать в меню Project пункт Generate Code, затем в открывшемся окне указать среду разработки Keil MDK-ARM V4 [3] и ввести имя проекта. После генерации кода в каталоге проекта будет автоматически создан раздел MDK-ARM и Src с файлами программы и библиотек, после чего генератор предложит открыть полученный проект в среде разработки Keil MDK-ARM V4.

В данном случае все дальнейшие операции будут связаны только с одним сформированным файлом проекта main.c, который является главным модулем и уже содержит все необходимые функции и настройки программы. Этот файл необходимо дополнить строками программы, описывающими алгоритм функционирования преобразователя. Места для строк программы пользователя выделены в файле main.c специальным образом с помощью строк /* USER CODE BEGIN …*/ и /* USER CODE END …*/.

Сначала необходимо объявить новые переменные, которые будут использоваться в программе, как показано в листинге 1. Затем вводятся строки программы, выполняемые один раз при включении устройства (см. листинг 2). Они позволяют вывести строку названия проекта через порт UART1, включить два светодиода и запустить каналы ШИМ.

В листинге 3 приведены строки, которые выполняются в бесконечном цикле.

Эта часть программы позволяет осуществить преобразование входных сигналов с помощью АЦП, сохранить полученные данные в буфере, загрузить их в каналы ШИМ и передать через последовательный порт USART1 при нажатии пользовательской кнопки. Помимо этого, производится регулярное переключение зелёного светодиода, позволяющее визуально контролировать работу преобразователя. В бесконечном цикле также формируется задержка в 100 мс для удобства наблюдения за процессом преобразования. Эту задержку можно изменять в широком диапазоне в зависимости от условий задачи или вовсе исключить.

Написанную программу необходимо оттранслировать с помощью среды разработки Keil и загрузить в отладочную плату. Сразу после загрузки программа начнёт работать и преобразовывать аналоговые сигналы, поступающие по четырём входным каналам АЦП, в четыре выходных канала ШИМ. Индикатором нормальной работы будет служить мигающий зелёный светодиод. Кроме того, можно визуально контролировать результат преобразования по всем каналам с помощью терминальной программы при подключении персонального компьютера к отладочной плате через порт USART1 и нажатии пользовательской кнопки.

При необходимости можно изменить временны¢е параметры цифровых сигналов ШИМ с помощью перестройки блока синхронизации в генераторе кода STM32CubeMX с последующим формированием нового кода программы. При повторном формировании файлов проекта введённые в программу строки кода сохранятся, поскольку они расположены в защищённых участках между строками /* USER CODE BEGIN …*/ и /* USER CODE END …*/.

Если потребуется преобразовывать аналоговые сигналы с другим диапазоном напряжений, это легко сделать, изменив значения входных резистивных делителей сигналов.

Таким образом, широко распространённую отладочную плату STM32VLDISCOVERY можно превратить в 4-канальный преобразователь сигналов управления для систем автоматики.

Литература

Комментарии
Рекомендуем
Биометрические системы, информационные киоски (БИК), турникеты и шлюзы с АСО. Обзор оборудования, компонентов и особенностей установки электроника

Биометрические системы, информационные киоски (БИК), турникеты и шлюзы с АСО. Обзор оборудования, компонентов и особенностей установки

Повсеместно биометрическую идентификацию рассматривают как перспективный инструмент для быстрых и безопасных операций почти универсального (в самых различных сферах) применения. Несколько лет назад появились биометрические информационные киоски, турникеты и шлюзы. Эти модели постоянно совершенствуются. О новинках, связанных с расширением функционала и защиты современного оборудования, ставших возможными профессиональными усилиями разработчиков РЭА и производителей оборудования, предлагаем ознакомиться в нашем обзоре. Основной акцент в формате импортозамещения современной электроники сделан на серийные модели отечественных производителей.
04.09.2024 СЭ №6/2024 320 0
Сверхпроводимость при высоких температурах реальность и фальсификации. Часть 2 электроника

Сверхпроводимость при высоких температурах реальность и фальсификации. Часть 2

Одним из последних ярких примеров несостоявшегося открытия сверхпроводимости при нормальных условиях стала история с веществом LK-99, названным так по первым буквам фамилий руководителей проекта Сукбэ Ли и Джи-Хун Кима. Группа южнокорейских учёных летом 2023 года разместила на сайте arXiv подробные результаты своих исследований, подтверждающих сверхпроводимость при температуре 127°С и атмосферном давлении синтезированного ими вещества LK-99. Детальное описание экспериментов не вызывало сомнений у мировой научной общественности. Однако попытки объяснить эти результаты поставили в тупик многих экспертов в области сверхпроводимости. Эта информация привела к взрыву в сетях комментариев и вопросов к авторам. Десятки лабораторий во всём мире попытались повторить эксперимент группы Ли Сукбэ. Однако никому не удалось получить точно такие же результаты, какие были опубликованы в южнокорейских препринтах. Только совместные усилия лучших специалистов в области сверхпроводимости позволили установить, что LK-99 не является сверхпроводником. При этом резкий скачок удельного сопротивления объясняется фазовым переходом кристаллической структуры сульфида серы, содержащегося в виде примеси в образцах LK-99.
04.09.2024 СЭ №6/2024 248 0