在支持实时的应用程序中使用 PVM
重要
这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。
Azure Sphere 支持脉冲宽度调制。 通过改变脉冲数字信号的占空比(通断时间比)来实现脉冲宽度调制。 脉冲宽度调制器 (PWM) 广泛用于各种应用程序中,例如数字电机控制、通信和数-模转换。
本主题介绍了如何在支持实时的应用程序 (RTApp) 中使用 PWM。 有关如何在高级应用程序中使用 PWM 的信息,请参阅在高级应用程序中使用 PWM。
注意
Azure Sphere OS 在启动时不重置外围设备。 应用程序应确保在启动时或重启后外围设备处于已知良好状态。
MT3620 对实时核心上的 PWM 的支持
本部分介绍了仅当在 MT3620 上运行 Azure Sphere 时才适用的 PWM 选项。
MT3620 支持状态中列出了 MT3620 支持的 PWM 功能。 MT3620 开发板用户指南介绍了引脚布局和引脚功能。
MT3620 具有 12 个 PWM 通道,分别标识为 PWM0-PWM11。 这些通道被分成 3 组,每组 4 个通道。 每组都与一个 PWM 控制器相关联(PWM-CONTROLLER-0、PWM-CONTROLLER-1、PWM-CONTROLLER-2)。 PWM 通道和 GPIO 引脚 GPIO0 通过 GPIO11 映射到 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 控制器。 例如,下面的行指定在以 MT3620 参考开发板 (RDB) 为应用目标的 RTApp 中使用 PWM 控制器 0:
"Capabilities": {
"Pwm": [ "PWM-CONTROLLER-0" ] }
Azure Sphere 应用程序清单 包含有关应用程序清单的更多详细信息。
PWM 示例应用程序
GitHub 上的 CodethinkLabs 存储库包含一些示例应用程序,这些应用程序演示了如何在支持实时的 Azure Sphere 应用程序中使用 MT3620 支持的外设。 具体而言, PWM_RTApp_MT3620_BareMetal 示例演示如何在支持实时的应用程序中合并 PWM 外围设备。
PWMAudio 项目演示如何使用实时核心生成 PWM(脉冲宽度调节)音频。 此项目是 Azure Sphere 库的一部分,它是未映射的脚本、实用工具和函数的集合。