Расширение программного обеспечения STMicroelectronics UM3469 X-CUBE-ISO1

Введение
Пакет расширения программного обеспечения X-CUBE-ISO1 для STM32Cube работает на базе STM32 и включает прошивку для X-NUCLEO-ISO1A1. Это программное обеспечение представляет собой простое в использовании решение для разработки базового ПЛК на базе X-NUCLEO. Расширение основано на программной технологии STM32Cube, что упрощает переносимость между различными микроконтроллерами STM32.
Программное обеспечение поставляется с реализацией, работающей на плате расширения X-NUCLEO-ISO1A1, подключенной к плате разработки NUCLEO-G071RB (или NUCLEO-G0B1RE или NUCLEO-G070RB). Далее в документе для простоты будет упоминаться только NUCLEO-G071RB.
Плата X-NUCLEO-ISO1A1 предназначена для поддержки объединения двух плат с соответствующими настройками перемычек для расширения возможностей ввода и вывода.
Акронимы и Аббревиатуры
Таблица 1. Список сокращений
| Акроним | Описание |
| ПЛК | Программируемый логический контроллер |
| API | Интерфейс прикладного программирования |
| ШИМ | Широтно-импульсная модуляция |
| GPIO | Универсальный ввод/вывод. |
| ХЭЛ | Уровень аппаратной абстракции |
| PC | Персональный компьютер |
| FW | Прошивка |
Что такое STM32Cube?
STM32Cube™ представляет собой инициативу STMicroelectronics, призванную облегчить жизнь разработчиков за счёт сокращения трудозатрат, времени и стоимости разработки. STM32Cube охватывает линейку микросхем STM32.
STM32Cube версии 1.x включает в себя:
- STM32CubeMX — графический инструмент конфигурирования программного обеспечения, позволяющий генерировать код инициализации на языке C с помощью графических мастеров.
- Комплексная встроенная программная платформа, специфичная для каждой серии (например, STM32CubeG0 для серии STM32G0), которая включает в себя:
- встроенное программное обеспечение уровня абстракции STM32Cube HAL, обеспечивающее максимальную переносимость всего портфолио STM32
- согласованный набор компонентов промежуточного программного обеспечения, таких как RTOS, USB, TCP/IP и графика
- все встроенные программные утилиты с полным набором exampлес.
Архитектура STM32Cube
Решение прошивки STM32Cube построено на трех независимых уровнях, которые могут легко взаимодействовать друг с другом, как показано на схеме ниже.

Программное расширение X-CUBE-ISO1 для STM32Cube
Надview
Прошивка для промышленной платы расширения ввода/вывода X-NUCLEO-ISO1A1, разработанной на основе сред и библиотек STM32, использует высокопроизводительный микроконтроллер плат STM32 Nucleo для управления цифровыми входами и выходами со встроенной диагностикой и динамическим ограничением тока, а также для генерации ШИМ-сигналов. Она обеспечивает комплексную настройку и управление платой, включая фреймворки для стандартных и альтернативных состояний, макросы для настройки значений предварительного делителя и определения портов и выводов GPIO.
Поддерживает различные sampПримеры использования приложений, такие как зеркалирование цифрового входа для выхода, связь UART через плату Nucleo, обнаружение неисправностей, тестовые случаи и генерация ШИМ, которые можно использовать напрямую и которые можно легко настраивать и расширять.
API предоставляет широкий набор функций для управления цифровыми входами/выходами, обнаружения неисправностей и обновления состояния платы, а также настройки конфигурации для одновременной работы двух плат в различных режимах. Доступны специальные функции API для инициализации, запуска, остановки и настройки ШИМ-сигналов для цифровых выходных каналов.
Пакет поддержки платы включает функции управления и мониторинга контактов GPIO, подключенных к IPS1025H-32, а также считывания состояния контактов GPIO, подключенных к CLT03-2Q3, через цифровой изолятор.
Конфигурация и инициализация основаны на STM32CubeMX, а разработка и отладка поддерживаются инструментами STM32CubeIDE, IAR Systems и Keil®.
Архитектура
Прошивку X-NUCLEO-ISO1A1 можно разделить на несколько отдельных функциональных блоков, каждый из которых отвечает за различные аспекты работы системы:

- Конфигурация и управление платой:
- Board_config.h file Содержит макросы для настройки платы на работу в режимах по умолчанию, альтернативных режимах или в обоих режимах. Также содержит определения значений предварительного делителя частоты, портов и контактов GPIO.
- Этот блок обеспечивает правильную настройку платы для требуемых условий эксплуатации и наличие всех необходимых аппаратных конфигураций.
- Варианты использования приложения:
- Файлы st_iso_app.h и st_iso_app.c fileсодержат примеры использования приложений, предназначенные для тестирования различных функций платы.
- К таким вариантам использования относятся цифровое зеркалирование входа-выхода, тесты на обнаружение неисправностей и генерация ШИМ-сигнала.
- ExampПредусмотрены конфигурации для одновременной работы двух плат в разных режимах, демонстрирующие универсальность и гибкость прошивки.
- Функции API:
- Файлы iso1a1.h и iso1a1.c fileпредоставляют полный набор API для поддержки различных функций.
- Эти API включают функции управления цифровым вводом/выводом, обнаружения неисправностей и обновления состояния платы.
- API-интерфейсы разработаны так, чтобы быть простыми и интуитивно понятными, что позволяет пользователям легко взаимодействовать с доской и выполнять необходимые операции.
- Управление ШИМ-сигналом:
- Pwm_api.h и pwm_api.c fileсодержат специальные функции API, связанные с генерацией сигналов ШИМ.
- Эти функции позволяют инициализировать, настраивать, запускать и останавливать ШИМ-сигналы для цифровых выходных каналов.
- Функциональность ШИМ не является выбором по умолчанию. Для её включения была изменена конфигурация платы. Подробнее см. раздел 3.5: API.
- Пакет поддержки совета директоров:
- Пакет поддержки совета директоров включает в себя: fileдля управления и мониторинга контактов GPIO, подключенных к IPS1025H-32, а также для считывания состояния контактов GPIO, подключенных к CLT03-2Q3.
- ips1025h_32.h и ips1025h_32.c files предоставляют функции для установки, сброса и обнаружения неисправностей на контактах GPIO, подключенных к IPS1025H-32.
- Clt03_2q3.h и clt03_2q3.c files предоставляют функции для считывания состояния контактов GPIO, подключенных к CLT03-2Q3.
Демонстрационная прошивка реализует несколько простых вариантов использования для демонстрации возможностей системы. Эти варианты использования и пользовательские API реализуются согласованно, обеспечивая бесперебойную работу и точные результаты. Архитектура разработана с учётом лёгкости расширения, что позволяет пользователям добавлять новые функции и варианты использования по мере необходимости. Предусмотрена конфигурация по умолчанию для работы одной платы с цифровыми промышленными портами ввода-вывода. Перемычки также необходимо установить в режим по умолчанию, как описано в таблице 2. Цифровой вход, зеркалирование цифрового выхода (DIDO) — это вариант использования приложения прошивки по умолчанию.
Структура папок

В программный пакет входят следующие папки:
- Документация содержит скомпилированный HTML. file созданный из исходного кода, с подробным описанием программных компонентов и API.
- Драйверы содержат:
- папку STM32Cube HAL, расположенную в подпапках STM32G0xx_HAL_Driver. Эти fileЗдесь они не описываются, поскольку они не относятся только к программному обеспечению X-CUBE-ISO1, а поступают непосредственно из фреймворка STM32Cube.
- папка CMSIS, содержащая стандарт интерфейса программного обеспечения микроконтроллера Cortex® fileс арм. Эти files — это независимый от производителя уровень аппаратной абстракции для процессоров серии Cortex®-M. Эта папка также не изменилась из фреймворка STM32Cube.
- папка BSP, содержащая коды для компонентов IPS1025H-32 и CLT03-2Q3, а также API, относящиеся к X-NUCLEO-ISO1A1.
- Приложение содержит папку пользователя, в которой находится файл main.c file, вариант использования приложения file, st_iso_app.c и board_config.h file, предоставленный для платформы NUCLEO-G071RB.
Папка BSP
Программное обеспечение X-CUBE-ISO1 использует два разных компонента files, которые находятся внутри BSP/Components:
IPS1025
ips1025h_32.h и ips1025h_32.c files обеспечивают комплексную реализацию драйвера для выводов GPIO, подключенных к IPS1025H-32, включая полный набор функций для управления всеми выводами и обнаружения неисправностей. files реализует функции инициализации устройства, установки и сброса состояния канала, обнаружения неисправностей и управления функциями ШИМ. Драйвер поддерживает несколько устройств и каналов, предоставляя полный набор функций как для отдельных каналов, так и для групп.
CLT03
Clt03_2q3.h и clt03_2q3.c fileРеализовать полнофункциональный драйвер для выводов GPIO, подключенных к CLT03-2Q3, с полным набором функций для считывания состояний всех выводов. Драйвер обеспечивает функции инициализации устройства, считывания состояния отдельных каналов и получения информации о состоянии всех каналов одновременно. Он поддерживает несколько конфигураций устройств и отслеживает внутреннее состояние для эффективного управления каналами.
API-интерфейсы программного обеспечения X-CUBE-ISO1 делятся на два основных источника: files, которые находятся внутри подпапки ISO1A1:
ISO1A1
ISO1A1 files включают в себя полный набор функций API, предназначенных для настройки платы, взаимодействия компонентов и управления неисправностями. Эти функции облегчают операции чтения и записи, обнаружения неисправностей и обновления, а также включают в себя различные вспомогательные утилиты для поддержки основных функций API. Кроме того, fileобеспечивают функциональность управления светодиодами, инициализации GPIO, обработки прерываний и связи UART.
API ШИМ
API ШИМ предоставляет функции для инициализации, настройки, запуска и остановки ШИМ-сигналов. Он позволяет устанавливать частоту и скважность ШИМ для указанных выводов таймера, обеспечивая точное управление операциями ШИМ.
Папка приложений
Папка приложения содержит основные fileнеобходимые для прошивки, включая заголовки и исходный код files. Ниже приведено подробное описание files в этой папке:
- board_config.h: Макросы конфигурации для платы.
- main.c: Основная программа (код example, основанный на библиотеке для ISO1A1).
- st_iso_app.c: Функции приложения для тестирования и настройки платы.
- stm32g0xx_hal_msp.c: процедуры инициализации HAL.
- stm32g0xx_it.c: Обработчик прерываний.
- syscalls.c: Реализации системных вызовов.
- sysmem.c: Управление системной памятью.
- system_stm32g0xx.c: Инициализация системы.
Ресурсы, необходимые для программного обеспечения
Устройство Nucleo управляет платой X-NUCLEO-ISO1A1 и взаимодействует с ней через порты GPIO. Для этого требуется использовать несколько портов GPIO для ввода, вывода и обнаружения неисправностей промышленных устройств ввода-вывода, содержащихся в плате X-NUCLEO-ISO1A1. Подробнее и о конфигурации перемычек см. в руководстве пользователя оборудования UM3483.
Конфигурация платы (board_config.h)
Board_config.h file Определяет используемые ресурсы и конфигурационные макросы для настройки программного обеспечения в соответствии с конфигурацией платы. Поддерживается поддержка до двух плат (например, стекирование двух плат).
Конфигурация ПО ПО УМОЛЧАНИЮ соответствует плате расширения X-NUCLEO-ISO1A1, перемычки которой находятся в положениях по умолчанию. Чтобы настроить ПО для X-NUCLEO-ISO1A1 с настройками по умолчанию, раскомментируйте макрос BOARD_ID_DEFAULT в файле board_config.h. file.
Конфигурация программного обеспечения ALTERNATE задается путем раскомментирования макроса BOARD_ID_ALTERNATE в файле board_config.h. file и изменение положения перемычек на плате.
Чтобы использовать две платы одновременно в стековой конфигурации, раскомментируйте макросы BOARD_ID_DEFAULT и BOARD_ID_ALTERNATE и убедитесь, что перемычки одной платы находятся в положении по умолчанию, а другой — в альтернативном положении. Обратите внимание, что использование обеих плат в одинаковой конфигурации (как в положении по умолчанию, так и в альтернативном) не рекомендуется и может привести к нежелательному поведению.
При использовании только одной платы убедитесь, что программное обеспечение настроено только на одну конфигурацию, а макрос, соответствующий другой конфигурации, прокомментирован.

Предварительные скейлеры
Значения предварительного делителя частоты можно настроить в файле board_config.h для достижения различных диапазонов частот ШИМ-выхода, установив соответствующие макросы. Чтобы использовать значение предварительного делителя частоты, раскомментируйте соответствующий макрос и закомментируйте остальные. По умолчанию используется DEFAULT_PRESCALAR.
- ПРЕДДЕЛИТЕЛЬ_1
- ПРЕДДЕЛИТЕЛЬ_2
- DEFAULT_PRESCALER
Значения предварительного делителя частоты используются только при использовании таймеров и не требуются для каких-либо базовых операций ввода-вывода. Значения макросов предварительного делителя частоты и соответствующие им диапазоны частот можно найти в документации к коду или в самом коде.
Светодиод сердцебиения
Мы можем настроить зелёный пользовательский светодиод D7 на мигание в режиме пульсации для проверки правильности подключения к плате NUCLEO-G071RB. Макрос HEARTBEAT_LED (если не закомментирован) мигает зелёным светодиодом на плате X-NUCLEO-ISO1A1 при её подключении к NUCLEO. Он горит 1 секунду и гаснет 2 секунды, время регулируется таймерами. Если светодиод не используется или вызывается какая-либо функция, связанная со светодиодами, макрос следует раскомментировать.
Конфигурация входов и выходов GPIO
Каждая плата X-NUCLEO-ISO1A1 оснащена двумя входными и двумя выходными портами. Возможности платы можно расширить, установив две платы X-NUCLEO-ISO1A1 друг на друга, что позволит использовать четыре цифровых порта ввода и четыре цифровых порта вывода. Предоставляемое программное обеспечение включает в себя комплексные API-интерфейсы, упрощающие чтение, настройку и очистку портов. Кроме того, API позволяют одновременно настраивать, читать и очистку всех портов. Подробная информация о функциях API доступна в документации по коду, а также в разделе API настоящего документа.

Здесь префикс DI обозначает цифровой входной порт, а DO — цифровой выходной порт. Для альтернативной конфигурации программа использует те же соглашения об именовании с добавлением суффикса _alt.
В следующей таблице приведены макросы GPIO, определенные в программном обеспечении и соответствующие различным портам ввода-вывода:
Таблица 2. GPIO, выделенные для конфигураций программного обеспечения по умолчанию и альтернативных конфигураций
| Имя | Функция | Конфигурация по умолчанию | Альтернативная конфигурация |
| ВХОДНОЙ ПИН-КОД | Входной контакт 1 | GPIOC, IA0_IN_1_PIN | GPIOD, IA0_IN_1_PIN |
| Входной контакт 2 | GPIOD, IA1_IN_2_PIN | GPIOC, IA1_IN_1_PIN | |
| ВЫХОДНОЙ ПИН | Выходной контакт 1 | GPIOC, QA0_CNTRL_1_PIN | GPIOD, QA0_CNTRL_1_PIN |
| Выходной контакт 2 | GPIOC, QA1_CNTRL_2_PIN | GPIOC, QA1_CNTRL_2_PIN | |
| Штифт неисправности | Неисправный контакт 1 | GPIOC, FLT1_QA0_2_OT_PIN | GPIOD, FLT1_QA0_1_OT_PIN |
| Неисправный контакт 2 | GPIOC, FLT2_QA0_2_OL_PIN | GPIOD, FLT2_QA0_1_OL_PIN | |
| Неисправный контакт 3 | GPIOC, FLT1_QA1_2_OT_PIN | GPIOC, FLT1_QA1_1_OT_PIN | |
| Неисправный контакт 4 | GPIOC, FLT2_QA1_1_OL_PIN | GPIOD, FLT2_QA1_2_OL_PIN | |
| МАКРОС КОНФИГУРАЦИИ | BOARD_ID_DEFAULT | BOARD_ID_ALTERNATE |
Таймеры и ШИМ
Таймеры можно использовать в прошивке X-CUBE-ISO1 для генерации ШИМ-сигналов для определённых выводов. По умолчанию таймеры не инициализируются, за исключением TIM3. Соответствующие таймеры следует инициализировать до генерации ШИМ-сигналов, а соответствующие выходные порты должны быть инициализированы в режиме ШИМ.
Для обычных операций ввода/вывода GPIO нет необходимости настраивать таймер или выходной порт, так как это уже реализовано по умолчанию. Однако, если выходные контакты переведены в режим ШИМ, их необходимо перенастроить в режим GPIO для использования в качестве контактов GPIO.
Примечание: Когда выходные контакты используются для генерации ШИМ, выход GPIO отключается, и обе функции не могут быть реализованы одновременно. Чтобы снова включить GPIO после использования ШИМ, можно вызвать API-функцию ST_ISO_BoardConfigureDefault() или ST_ISO_InitGPIO() для настройки всех портов как GPIO одновременно, либо ST_ISO_Init_GPIO() с конкретным портом GPIO и контактом.
Как упоминалось выше, программа также использует один таймер по умолчанию, TIM3, который используется для синхронизации пользовательских светодиодов, часов и UART. По умолчанию он настроен на период 1 секунда.
В следующей таблице приведены таймеры, доступные для каждого контакта в нашем коде:
Таблица 3. Таймеры, доступные для каждого контакта
| Имя пин-кода | Представление программного обеспечения | Таймер | Таймерный канал | Альтернативная функция |
| QA0_CNTRL_1_PIN | QA_0 | ТИМ2 | ТИМ_КАНАЛ_4 | GPIO_AF2_TIM2 |
| QA1_CNTRL_2_PIN | QA_1 | ТИМ1 | ТИМ_КАНАЛ_3 | GPIO_AF2_TIM1 |
| QA0_CNTRL_2_PIN | QA_0_ALT | ТИМ1 | ТИМ_КАНАЛ_4 | GPIO_AF2_TIM1 |
| QA1_CNTRL_1_PIN | QA_1_ALT | ТИМ17 | ТИМ_КАНАЛ_1 | GPIO_AF2_TIM17 |
Дополнительные утилиты прошивки
Прошивка включает в себя дополнительные утилиты для расширения функциональности оценочной платы X-NUCLEO-ISO1A1. Некоторые из них описаны ниже.
УАПП
Функция связи UART позволяет осуществлять мониторинг и отладку состояния платы в режиме реального времени с помощью таких компьютерных утилит, как TeraTerm, PuTTY и других подобных приложений. Программное обеспечение обеспечивает передачу данных через UART, встроенный в плату NUCLEO-G071RB. Функция `ST_ISO_UART` отправляет подробную информацию о состоянии платы через UART, включая время работы системы, конфигурацию прошивки и состояние неисправности. Эти данные могут быть viewредактирование с помощью любого приложения последовательного порта, например, TeraTerm. Функция `ST_ISO_APP_DIDOandUART` объединяет операции цифрового ввода/вывода с UART-коммуникацией, передавая состояние всех входных и выходных каналов с заданными интервалами. Ниже приведены параметры конфигурации и…ampПример отображения данных в TeraTerm. Имя порта может различаться в зависимости от системы и используемого последовательного порта.


Конфигурация режима вывода ввода-вывода
Утилита настройки режима выводов ввода-вывода позволяет пользователям настраивать входные и выходные порты платы с помощью функции ST_ISO_BoardConfigure(). Эта функция поддерживает настройку двух выходных портов (QA0, QA1) и двух входных портов (IA0, IA1) в режиме ввода/вывода, режима ШИМ-вывода или режима ввода прерываний. Изменяя параметры и вызывая эту функцию, пользователи могут легко настроить конфигурацию портов ввода-вывода платы в соответствии со своими потребностями.
В режиме ввода/вывода утилита инициализирует выводы GPIO для выполнения цифровых операций общего назначения. В режиме ШИМ-вывода она настраивает таймеры для точного управления ШИМ-сигналом. В режиме прерывания утилита настраивает выводы для обработки прерываний, обеспечивая адаптивное событийное программирование.
Обработка прерываний
Для обработки сигналов FAULT программное обеспечение использует соответствующие линии прерываний, что позволяет реализовать адаптивное событийное программирование. С этими прерываниями можно связать настраиваемый обработчик через
Функция HAL_GPIO_EXTI_Rising_Callback определена в API. Программное обеспечение включает функции инициализации выводов GPIO в режиме прерываний через функцию ST_ISO_BoardConfigure и настройки определенных действий в обработчиках EXTI IRQ. Это позволяет пользователям настраивать реакцию платы на внешние события, обеспечивая эффективное управление различными аварийными ситуациями и триггерами.
API-интерфейсы
Программный API X-CUBE-ISO1 предоставляет полный набор функций для управления и мониторинга платы X-NUCLEO-ISO1A1, включая генерацию ШИМ-сигналов и работу с портами GPIO. API разработан для простоты использования и интеграции в различные приложения, обеспечивая гибкость и контроль над функционалом платы.
Программный API X-CUBE-ISO1 определён в папке BSP/ISO1A1. Его функции имеют префикс ST_ISO. API доступен приложениям через файлы iso1a1.c и pwm_api.c. files — это комбинация констант, структур данных и функций.
SampПриложения встроенного ПО используют эти API для демонстрации некоторых возможных вариантов использования этих функций.
Программный пакет X-CUBE-ISO1 предоставляет два набора API:
- API ISO1A1
- API ШИМ
API ISO1A1
API ISO1A1 определен в файлах iso1a1.h и iso1a1.c. files. Он предоставляет функции для настройки и управления платой ISO1A1, включая операции ввода-вывода GPIO и обнаружение неисправностей.
Ключевые функции
- ST_ISO_BoardConfigureDefault: настраивает порты ввода-вывода платы с конфигурацией GPIO по умолчанию.
- ST_ISO_BoardConfigure: настраивает режим входных и выходных портов платы.
- ST_ISO_BoardInit: инициализирует аппаратное обеспечение платы.
- ST_ISO_BoardMapInit: инициализирует функциональность платы на основе конфигурации дескрипторов каналов.
- ST_ISO_GetFWVersion: возвращает текущую версию прошивки.
- ST_ISO_GetChannelHandle: извлекает дескриптор канала для указанного имени канала.
- ST_ISO_InitGPIO: инициализирует указанный вывод GPIO с заданным идентификатором модуля.
- ST_ISO_InitInterrupt: инициализирует указанный вывод GPIO как прерывание с заданным идентификатором модуля.
- ST_ISO_EnableFaultInterrupt: инициализирует контакты GPIO ошибки в режиме прерывания.
- ST_ISO_SetChannelStatus: устанавливает статус указанного канала.
- ST_ISO_SetOne_DO: Устанавливает один цифровой выходной канал.
- ST_ISO_ClearOne_DO: Очищает один цифровой выходной канал.
- ST_ISO_WriteAllChannels: записывает данные на все цифровые выходные каналы.
- ST_ISO_GetOne_DI: Получает состояние одного цифрового входного канала.
- ST_ISO_ReadAllChannel: считывает состояние всех входных каналов.
- ST_ISO_ReadAllOutputChannel: считывает состояние всех выходных каналов.
- ST_ISO_ReadFaultStatus: считывает состояние неисправности со всех портов обнаружения неисправностей.
- ST_ISO_ReadFaultStatusPolling: Тестирует обнаружение неисправностей плат в режиме опроса.
- ST_ISO_DisableOutputChannel: отключает вывод для этого канала.
- ST_ISO_UpdateBoardStatusInfo: обновляет информацию о состоянии платы.
- ST_ISO_UpdateFaultStatus: обновляет статус ошибки для определенного канала.
- ST_ISO_BlinkLed: мигает указанным светодиодом с заданной задержкой и количеством повторений.
- ST_ISO_UART: отправляет информацию о состоянии платы через UART.
- ST_ISO_SwitchInit: инициализирует компоненты коммутатора.
- ST_ISO_SwitchDeInit: деинициализирует экземпляр коммутатора.
- ST_ISO_DigitalInputInit: инициализирует компоненты цифрового входа.
- ST_ISO_DigitalInputDeInit: деинициализирует экземпляр цифрового входа.
API ШИМ
API ШИМ определено в файлах pwm_api.h и pwm_api.c. files. Он предоставляет следующие функции для инициализации и управления ШИМ-сигналами для определенных контактов.
- ST_ISO_Init_PWM_Signal: Инициализирует таймеры и специальный контакт для сигнала ШИМ.
- ST_ISO_Set_PWM_Frequency: устанавливает частоту ШИМ для определенного контакта.
- ST_ISO_Set_PWM_Duty_Cycle: устанавливает рабочий цикл ШИМ для определенного контакта.
- ST_ISO_Start_PWM_Signal: запускает сигнал ШИМ на определенном контакте.
- ST_ISO_Stop_PWM_Signal: останавливает сигнал ШИМ на определенном выводе.
Чтобы запустить ШИМ-сигнал на соответствующем канале, сначала вызовите функцию ST_ISO_Init_PWM_Signal, затем установите нужную частоту и скважность, вызвав ST_ISO_Set_PWM_Frequency и
Соответственно, выполняются функции ST_ISO_Set_PWM_Duty_Cycle, после чего можно запустить сигнал ШИМ, вызвав функцию ST_ISO_Start_PWM_Signal, и остановить, вызвав функцию ST_ISO_Stop_PWM_Signal.
Функцию необходимо вызывать с соответствующим именем контакта и доступными таймерами, подробная информация о которых приведена в таблице 3. Различные выходные каналы можно настроить на разные частоты и рабочие циклы; изменение частоты или рабочего цикла не влияет на другие, они остаются неизменными.
Подробную техническую информацию о API, доступных пользователю, можно найти в скомпилированном HTML. file находится внутри папки «Документация» программного пакета, где полностью описаны все функции и параметры.
Описание приложения
Демонстрационное приложение реализует несколько простых вариантов использования. st_iso_app и board_config files играют ключевую роль в настройке и использовании платы и её прикладных функций. Перед использованием этих функций убедитесь, что конфигурация платы и программного обеспечения синхронизированы.
Функции приложения (st_iso_app.h и st_iso_app.c)
Функции приложения имеют префикс ST_ISO_APP; это функции верхнего уровня, видимые пользователю, который вызывает функции API для их реализации. Функции приложения можно вызывать в файле main.c. file для их функционирования.
- Выбор варианта использования: пользователь может раскомментировать нужный макрос варианта использования в файле st_iso_app.c. fileФункция ST_ISO_APP_SelectUseCaseMacro(), вызываемая в main.c, инициализирует этот вариант использования, а функция ST_ISO_APP_SelectedFunction() реализует его в main.c. Такой подход позволяет легко настраивать режим работы, просто изменяя определения макросов, гарантируя выполнение соответствующей функциональности в зависимости от выбранного варианта использования. По умолчанию выбран вариант использования DIDO, и пользователю не нужно вносить какие-либо изменения в код для его реализации.
- Зеркальное отображение цифрового входа на цифровой выход (ST_ISO_APP_UsecaseDIDO): эта функция считывает состояние всех входных каналов и записывает его на все выходные каналы. Она полезна для зеркального отображения цифровых входов на цифровые выходы.
- Зеркальное отображение цифрового входа на цифровой выход с помощью UART (ST_ISO_APP_DIDOandUART): Эта функция зеркалирует цифровые входы на цифровые выходы, аналогично функции ST_ISO_APP_UsecaseDIDO. Кроме того, она передает состояние платы через интерфейс UART на устройство Nucleo, позволяя отслеживать состояние. viewчерез последовательный порт с использованием таких приложений, как Tera Term.
- Функция тестового случая (ST_ISO_APP_TestCase): эта функция выполняет серию тестов и действий в зависимости от конфигурации платы. Она проверяет состояние неисправности, считывает состояние двух цифровых входных каналов и выполняет действия на основе их значений. Эта функция помогает быстро оценить производительность и функциональность платы, а также получить визуальную обратную связь с помощью различных шаблонов светодиодной индикации. Убедитесь, что макрос HEARTBEAT_LED находится в файле board_config.h. file прокомментирован для соблюдения правильных схем работы светодиодов.
- Генерация ШИМ (ST_ISO_APP_PWM _OFFSET): эта функция запускает ШИМ-сигнал на обоих выходных каналах с частотой 1 Гц и коэффициентом заполнения 50%. Она инициализирует ШИМ-сигнал, устанавливает частоту и коэффициент заполнения, а также запускает ШИМ-сигнал для указанного идентификатора платы. ШИМ-сигнал генерируется со смещением между двумя каналами, поэтому они не совпадают по фазе.
- Тест обнаружения неисправностей (ST_ISO_APP_FaultTest): эта функция оценивает обнаружение неисправностей путем управления встроенными диагностическими контактами интеллектуального модуля вывода IPS1025 в режиме опроса или прерывания. Она настраивает режим обнаружения неисправностей, инициализирует обнаружение неисправностей и обновляет структуру состояния неисправностей на основе выбранного режима. Эта функция критически важна для обеспечения надежности и безопасности платы, поскольку она эффективно обнаруживает и обрабатывает неисправности. В режиме опроса состояние неисправности обновляется каждую секунду с помощью таймера и отражается в структуре defaultBoardFaultStatus или alternativeBoardFaultStatus. В режиме прерывания состояние неисправности обновляется только при возникновении неисправности, что запускает программное обеспечение для очистки соответствующего выходного порта.
- Тест изменения ШИМ (ST_ISO_APP_PwmVariationTest): Эта функция предназначена для тестирования изменения ШИМ (широтно-импульсной модуляции) сигналов на различных выходных каналах в зависимости от конфигурации платы. Она инициализирует сигналы ШИМ как для стандартной, так и для альтернативной конфигурации платы, устанавливая их частоту 100 Гц и начальный коэффициент заполнения 0%. Затем функция изменяет коэффициент заполнения от 0% до 100% с шагом 5% и обратно от 100% до 0% с шагом 5% с задержкой 2 секунды между каждым шагом. Это контролируемое изменение позволяет наблюдать и оценивать поведение сигнала ШИМ на каналах QA_0 и QA_1 для стандартной платы и QA_0_ALT и QA_1_ALT для альтернативной платы.
Следуя этим конфигурациям и используя предоставленные функции приложения, вы сможете эффективно настроить и использовать плату X-NUCLEO-ISO1A1 для различных демонстрационных случаев использования.
Руководство по настройке системы
Описание оборудования
Платформа STM32 Nucleo
Платы разработки STM32 Nucleo предоставляют пользователям доступный и гибкий способ тестирования решений и создания прототипов с использованием любой линейки микроконтроллеров STM32.
Поддержка подключения Arduino® и разъемы ST Morpho позволяют легко расширять функциональность открытой платформы разработки STM32 Nucleo с помощью широкого спектра специализированных плат расширения на выбор.
Плата STM32 Nucleo не требует отдельных датчиков, поскольку в нее встроен отладчик/программатор ST-LINK/V2-1.
Плата STM32 Nucleo поставляется с обширной программной библиотекой HAL STM32 вместе с различным пакетным программным обеспечением, напримерampлес.

Информация о плате STM32 Nucleo доступна по адресу www.st.com/stm32nucleo
Плата расширения X-NUCLEO-ISO1A1
X-NUCLEO-ISO1A1 — это оценочная плата с изолированным промышленным входом/выходом, предназначенная для расширения платы STM32 Nucleo и обеспечения функциональности микро-ПЛК. Две платы X-NUCLEO-ISO1A1 можно установить друг на друга поверх платы STM32 Nucleo, выбрав соответствующие перемычки на плате расширения для предотвращения конфликтов в интерфейсах GPIO. Сертифицированные по UL1577 цифровые изоляторы STISO620 и STISO621 обеспечивают изоляцию между логическими компонентами и компонентами технологического процесса. Два входа верхнего плеча с ограничением тока со стороны технологического процесса реализованы через CLT03-2Q3. CLT03-2Q3 обеспечивает защиту, изоляцию и энергосберегающую индикацию состояния для промышленных условий, отвечая таким стандартам, как IEC61000-4-2, IEC61000-4-4 и IEC61000-4-5. Каждый из ключей верхнего плеча IPS1025H-32/HQ-32 обеспечивает защищённый выходной ток до 5.6 А с функциями диагностики и интеллектуального управления. Они могут управлять ёмкостной, резистивной или индуктивной нагрузкой. X-NUCLEO-ISO1A1 позволяет быстро оценить состояние встроенных микросхем с помощью программного пакета X-CUBE-ISO1.

Настройка оборудования
Необходимы следующие аппаратные компоненты:
- Одна платформа разработки STM32 Nucleo (рекомендуемый код заказа: NUCLEO-GO71RB)
- Одна промышленная плата расширения цифрового выхода (код заказа: X-NUCLEO-ISO1A1)
- Один кабель USB типа A - Micro USB для подключения STM32 Nucleo к ПК
- Внешний источник питания (24 В) и соответствующие провода для питания платы расширения X-NUCLEO-ISO1A1.
Настройка программного обеспечения
Для настройки подходящей среды разработки для создания приложений для STM32 Nucleo, оснащенного платой расширения X-NUCLEO-ISO1A1, необходимы следующие программные компоненты:
- X-CUBE-ISO1: расширение для STM32Cube, предназначенное для разработки приложений, требующих использования платы X-NUCLEO-ISO1A1. Прошивка X-CUBE-ISO1 и соответствующая документация доступны на www.st.com
- Инструментарий разработки и компилятор: программное обеспечение расширения STM32Cube поддерживает три следующие среды:
- Набор инструментов IAR Embedded Workbench для ARM® (IAR-EWARM)
- НастоящийView Набор инструментов для разработки микроконтроллеров (MDK-ARM-STM32)
- STM32CubeIDE.
Настройка платы
Плата должна быть настроена с соответствующими настройками перемычек, как указано в руководстве пользователя оборудования (UM3483). Тщательное соблюдение этих рекомендаций крайне важно для обеспечения корректной работы и предотвращения потенциальных проблем.
Руководство по настройке системы
В этом разделе описывается, как настроить различные аппаратные компоненты перед разработкой и выполнением приложения на плате STM32 Nucleo, NUCLEO-G071RB с платой расширения X-NUCLEO-ISO1A1.


Настройка пакета расширения X-CUBE-ISO1
X-NUCLEO-ISO1A1 необходимо настроить с помощью определённых положений перемычек в зависимости от конфигурации вашей платы. Подробности можно найти в руководстве по аппаратному обеспечению.
- Шаг 1. Подключите плату расширения X-NUCLEO-ISO1A1 к STM32 Nucleo через морфоразъемы.
Если вы используете две доски, лежащие друг на друге, сложите их, как показано на рисунке 11. - Шаг 2. Подключите плату STM32 Nucleo к ПК с помощью USB-кабеля через USB-разъем CN1 для питания платы.
- Шаг 3. Включите плату(ы) расширения X-NUCLEO-ISO1A1, подключив разъём J1 к источнику питания постоянного тока 24 В. При использовании нескольких плат убедитесь, что питание подано на обе платы.
- Шаг 4. Откройте предпочитаемый вами набор инструментов (MDK-ARM от Keil, EWARM от IAR или STM32CubeIDE).
- Шаг 5. Откройте проект программного обеспечения и внесите необходимые изменения в board_config.h. file в соответствии с конфигурацией используемых плат.
- Шаг 6. Установите соответствующий макрос варианта использования в st_iso_app.c file или вызовите требуемый вариант использования с помощью функции ST_ISO_APP_SelectUseCase в main.c file наряду с любой другой желаемой функцией.
- Шаг 7. Постройте проект, чтобы скомпилировать все files и загрузить скомпилированный код в память платы STM32 Nucleo.
- Шаг 8. Запустите код на плате STM32 Nucleo и проверьте ожидаемое поведение.
История изменений
Таблица 4. История изменений документа
| Дата | Пересмотр | Изменения |
| 14-мая-2025 | 1 | Первоначальный выпуск. |
ВАЖНОЕ УВЕДОМЛЕНИЕ – ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ
STMicroelectronics NV и ее дочерние компании («ST») оставляют за собой право вносить изменения, исправления, улучшения, модификации и усовершенствования в продукцию ST и/или в этот документ в любое время без предварительного уведомления. Покупатели должны получить последнюю соответствующую информацию о продукции ST перед размещением заказов. Продукция ST продается в соответствии с условиями продажи ST, действующими на момент подтверждения заказа.
Покупатели несут исключительную ответственность за выбор, отбор и использование продукции ST, и ST не несет ответственности за помощь в применении или конструкцию продукции покупателей.
Компания ST не предоставляет никаких лицензий, явных или подразумеваемых, на какие-либо права интеллектуальной собственности.
Перепродажа продукции ST с условиями, отличными от изложенных в настоящем документе, аннулирует любую гарантию, предоставленную ST на такую продукцию.
ST и логотип ST являются товарными знаками ST. Дополнительную информацию о товарных знаках ST см. на сайте www.st.com/trademarks. Все остальные названия продуктов или услуг являются собственностью их соответствующих владельцев.
Информация в этом документе заменяет информацию, ранее предоставленную в предыдущих версиях этого документа.
© 2025 STMicroelectronics – Все права защищены
Документы/Ресурсы
![]() |
Расширение программного обеспечения STMicroelectronics UM3469 X-CUBE-ISO1 [pdf] Руководство пользователя X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 X-CUBE-ISO1 Программное расширение, UM3469, X-CUBE-ISO1 Программное расширение, Программное расширение |

