在支持实时的应用程序中使用 PVM

Azure Sphere 支持脉冲宽度调节。 脉冲宽度调节是通过改变脉冲数字信号的占空比 (时间与关闭时间) 来实现的。 脉冲宽度调节器 (PVM) 用于各种应用,例如数字电机控制、通信和数字到模拟转换。

本主题介绍如何在支持 RTApp) (实时应用程序中使用 PVM。 有关在高级应用程序中使用 PWM 的信息,请参阅 在高级应用程序中使用 PWM

注意

Azure Sphere OS 在启动时不会重置外围设备。 应用程序应确保外围设备在启动时或重启后处于已知良好的状态。

MT3620 对实时内核上的 PWM 支持

本部分介绍仅在 MT3620 上运行 Azure Sphere 时应用的 PWM 选项。

MT3620 支持的 PWM 功能在 MT3620 支持状态中列出。 MT3620 开发板用户指南介绍了引脚布局和引脚功能。

MT3620 有 12 个 PWM 通道,由 PWM0-PWM11 标识。 它们分为 3 组,共 4 个频道。 每个组都与 PWM 控制器 (PWM-CONTROLLER-0、PWM-CONTROLLER-1、PWM-CONTROLLER-2) 相关联。 通过 GPIO11 的 PWM 通道和 GPIO 引脚 GPIO0 映射到 MT3620 上的相同引脚。 如果应用程序使用 PWM 控制器,则分配与该控制器关联的所有引脚用作 PWM 输出。 它们都不能用于 GPIO。

有关 MT3620 的寄存器基址、中断数、时钟速率、采样频率和其他详细信息,请参阅 MT3620 数据表MT3620 M4 用户手册;如果问题仍然存在,你可以通过电子邮件 Azure.Sphere@avnet.com从 Avnet 请求详细信息。

PWM 硬件可配置为使用三种时钟频率之一:32 KHz、2 MHz (XTAL/13) 或 26 MHz (XTAL) 。 在实时 (RT) 核心上,实时应用程序 (RTApp) 可以选择将哪个时钟用作基准时钟。 不支持用户定义的基本频率。 但是,应用程序可以生成派生自所选基频率的信号频率。 有关示例,请参阅 Azure Sphere 库中PWMAudio 示例应用

应用程序清单设置

若要在 RTApp 中使用 PWM, Pwm 请将 功能添加到应用程序清单,并指定将在应用程序中使用的 PWM 控制器。 例如,以下行指定 PWM 控制器 0,用于面向 MT3620 参考开发板的 RTApp (RDB)

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

Azure Sphere 应用程序清单 提供了有关应用程序清单的更多详细信息。

PWM 示例应用程序

GitHub 上的 CodethinkLabs 存储库包含许多示例应用程序,这些示例应用程序演示如何在支持 Azure Sphere 实时的应用程序中使用 MT3620 支持的外围设备。 具体而言, PWM_RTApp_MT3620_BareMetal 示例演示如何在支持实时的应用程序中合并 PWM 外围设备。

PWMAudio 项目演示如何使用实时内核生成 PWM (脉冲宽度调节) 音频。 此项目是 Azure Sphere 库的一部分,该库是未经维护的脚本、实用工具和函数的集合。