Поделиться через


Использование ШИМ в приложениях с поддержкой реального времени

Azure Sphere поддерживает пульсовую модуляцию ширины. Широтно-импульсная модуляция достигается путем изменения рабочих циклов (отношение времени от времени к нерабочему времени) импульсного цифрового сигнала. Импульсно-широкие модуляторы (ШИМ) используются в широком спектре приложений, таких как цифровое управление двигателем, связь и преобразование цифро-аналоговых сигналов.

В этом разделе описывается использование ШИМ в приложениях с поддержкой реального времени (RTApp). Сведения об использовании ШИМ в высокоуровневых приложениях см. в статье Использование ШИМ в высокоуровневых приложениях.

Примечание

Ос Azure Sphere не сбрасывает периферийные устройства при запуске. Приложения должны убедиться, что периферийные устройства находятся в известном состоянии при запуске или после перезапуска.

Поддержка MT3620 для ШИМ в ядрах в режиме реального времени

В этом разделе описываются параметры ШИМ, которые применяются только при запуске Azure Sphere в MT3620.

Функции PWM, поддерживаемые MT3620, перечислены в разделе Состояние поддержки MT3620. Руководство пользователя на плате разработки MT3620 описывает макет и функции закрепления.

MT3620 имеет 12 ШИМ-каналов, определяемых PWM0-PWM11. Они организованы в 3 группы по 4 каналам. Каждая группа связана с контроллером ШИМ (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Каналы PWM и контакты GPIO от GPIO0 до GPIO11 сопоставляют с теми же контактами на MT3620. Если приложение использует контроллер ШИМ, все контакты, связанные с этим контроллером, выделяются для использования в качестве выходных данных ШИМ. Ни один из них не может использоваться для GPIO.

Сведения о регистрации базовых адресов, номера прерываний, частоту тактов, частоту выборки и другие сведения о MT3620 см. в таблице MT3620 и руководстве пользователя MT3620 M4. Если остались вопросы, вы можете запросить сведения из Avnet, отправив Azure.Sphere@avnet.comпо электронной почте .

Оборудование PWM можно настроить для использования одной из трех тактовых частот: 32 кГц, 2 МГц (XTAL/13) или 26 МГц (XTAL). В ядрах реального времени (RT) приложение реального времени (RTApp) может выбрать, какие часы использовать в качестве базовых. Определяемые пользователем базовые частоты не поддерживаются. Однако приложение может создавать частоты сигналов, производные от выбранной базовой частоты. Пример см. в примере приложения PWMAudio в коллекции Azure Sphere.

Параметры манифеста приложения

Чтобы использовать ШИМ в RTApp, необходимо добавить Pwm возможность в манифест приложения и указать контроллеры ШИМ, которые будут использоваться в приложении. Например, в следующей строке указан контроллер ШИМ 0 для использования в RTApp, предназначенном для эталонной платы разработки MT3620 (RDB):

"Capabilities": {
   "Pwm": [ "PWM-CONTROLLER-0" ] }

Манифест приложения Azure Sphere содержит дополнительные сведения о манифесте приложения.

Примеры приложений PWM

Репозиторий CodethinkLabs на сайте GitHub содержит ряд примеров приложений, демонстрирующих использование периферийных устройств, поддерживаемых MT3620, в приложениях с поддержкой реального времени Azure Sphere. В частности, в примере PWM_RTApp_MT3620_BareMetal показано, как включить периферийное устройство ШИМ в приложение с поддержкой реального времени.

В проекте PWMAudio показано, как использовать ядра реального времени для создания звука ШИМ (пульсовая модуляция ширины). Этот проект входит в коллекцию Azure Sphere, коллекцию неуправляемых скриптов, служебных программ и функций.