Бөлісу құралы:


Использование ШИМ в высокоуровневых приложениях

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

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

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

В примере PWM_HighLevelApp показано, как использовать ШИМ в простом приложении преобразования цифро-аналогового преобразования на устройстве MT3620.

Требования к PWM

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

Все приложения должны задать целевое оборудование и включить соответствующий файл заголовка определения оборудования.

Файлы заголовков

 #include <applibs/pwm.h>
 #include "path-to-your-target-hardware.h"

Замените path-to-your-target-hardware.h путем к файлу заголовка для оборудования.

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

Параметр PWM в манифесте приложения перечисляет контроллеры ШИМ, к которым обращается приложение. Чтобы настроить эти параметры, добавьте Pwm возможность в манифест приложения, а затем добавьте в нее каждый контроллер ШИМ. Манифест приложения Azure Sphere содержит дополнительные сведения.

В коде используйте константы, определенные для оборудования, для идентификации контроллеров ШИМ. Компилятор преобразует эти значения в необработанные значения при сборке приложения.

Например, ниже приведен фрагмент манифеста приложения для приложения, предназначенного для эталонной платформы разработки (RDB) MT3620.

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

В следующем фрагменте показано, как указать тот же контроллер ШИМ в приложении, которое предназначено для начального комплекта Avnet MT3620:

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

Доступ к PWM

Высокоуровневые приложения Azure Sphere могут получить доступ к ШИМ, вызывая API-интерфейсы ШИМ Applibs.

Открытие контроллера ШИМ

Чтобы открыть контроллер ШИМ для доступа, вызовите PWM_Open и передайте в качестве параметра идентификатор открываемого контроллера. В случае успешного вызова будет возвращен дескриптор файла. В противном случае будет возвращено значение -1.

Настройка состояния канала ШИМ

Чтобы задать или обновить состояние канала ШИМ, вызовите PWM_Apply. В PWM_Apply передаются следующие параметры:

  • Дескриптор файла, возвращенный PWM_Open

  • Канал PWM для обновления; это значение зависит от платформы

  • Период, жизненный цикл и полярность, применяемые к каналу

  • Включение или отключение канала

Примечание

Минимальные и максимальные ограничения для периода и жизненного цикла зависят от устройства. Например, на высокоуровневом ядре MT3620 ШИМ выполняются с фиксированной базовой частотой 2 МГц с 16-разрядными регистрами сравнения. При этом разрешение в течение длительного цикла составляет 500 нс, а действующий максимальный период составляет примерно 32,77 мс. Дополнительные сведения см. в таблице данных конкретного устройства.

Поддержка MT3620

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

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