在即時可用的應用程式中使用 PWM
重要
這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。
Azure Sphere 支持 Pulse Width Tab。 脈衝寬度調節是透過改變脈衝數位訊號的當班週期(時間與休息時間的比例)來達成。 脈衝寬度調節器(PWM)用於各種不同的應用,例如數字馬達控制、通訊和數位對模擬轉換。
本主題描述如何在即時可用的應用程式中使用 PVM (RTApp)。 如需在高階應用程式中使用 PVM 的相關信息,請參閱 在高階應用程式中使用 PWM。
注意
Azure Sphere OS 不會在啟動時重設周邊。 您的應用程式應該確保周邊在啟動或重新啟動后處於已知良好狀態。
即時核心上 PWM 的 MT3620 支援
本節說明只有在 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)。 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 控制器。 例如,下列這一行會指定 PWM 控制器 0,以 MT3620 參考開發板 (RDB) 為目標的 RTApp 中使用:
"Capabilities": {
"Pwm": [ "PWM-CONTROLLER-0" ] }
Azure Sphere 應用程式指令清單 有更多應用程式指令清單的詳細數據。
PWM 範例應用程式
GitHub 上的 CodethinkLabs 存放庫包含一些範例應用程式,示範如何在 Azure Sphere 即時可用的應用程式中使用 MT3620 支援的周邊。 具體來說, PWM_RTApp_MT3620_BareMetal 範例示範如何將 PWM 周邊併入即時可用的應用程式中。
PWMAudio 專案示範如何使用即時核心來產生 PWM(脈衝寬度調節)音訊。 此專案是 Azure Sphere 資源庫的一部分,這是未受管理腳本、公用程式和函式的集合。