Современная электроника №2/2019
ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 37 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2019 Рис. 3. Окно USART1 генератора кода STM32CubeMX Рис. 4. Окно ADC1 генератора кода STM32CubeMX мические конденсаторы ёмкостью от 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 …*/ .
RkJQdWJsaXNoZXIy MTQ4NjUy