共用方式為


在高階應用程式中使用 PVM

重要

這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。

本主題描述如何存取裝置脈衝寬度調變器(PVM),以在 Azure Sphere 高階應用程式中使用。

脈衝寬度調節是透過改變脈衝數位訊號的當班週期(時間與休息時間的比例)來達成。 脈衝寬度調變器可用於各種不同的應用,例如數字馬達控制、通信和數位對模擬轉換。

若要在 Azure Sphere 應用程式中使用 PVM,您必須包含必要的頭檔與 Pwm 功能,並指定應用程式將存取之 PWM 通道的控制器。

PWM_HighLevelApp範例示範如何在 MT3620 裝置上的簡單數位對模擬轉換應用程式中使用 PWM。

PWM 需求

使用 PVM 的應用程式必須包含適當的頭檔,並將 PWM 設定新增至 應用程式指令清單

所有應用程式都必須 設定其目標硬體 ,並包含對應的硬體定義頭檔。

標頭檔

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

將 「path-to-your-target-hardware.h」 取代為硬體頭文件的路徑。

應用程式指令清單設定

應用程式指令清單中的 PWM 設定會列出應用程式所存取的 PWM 控制器。 若要設定這些設定,請將功能新增 Pwm 至應用程式指令清單,然後將每個 PWM 控制器新增至功能。 Azure Sphere 應用程式指令清單 有更多詳細數據。

在您的程式代碼中,使用為硬體定義的常數來識別 PWM 控制器。 當您建置應用程式時,編譯程式會將這些值轉譯為原始值。

例如,以下是以 MT3620 參考開發板 (RDB) 為目標之應用程式的應用程式指令清單摘錄。

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

下列摘錄顯示如何在以 Avnet MT3620 Starter Kit 為目標的應用程式中指定相同的 PWM 控制器:

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

PWM 存取

Azure Sphere 高階應用程式可以藉由呼叫 Applibs PWM API 來存取 PWM。

開啟 PWM 控制器

若要開啟要存取的 PWM 控制器,請呼叫 PWM_Open ,並以參數形式傳遞要開啟的控制器標識碼。 如果呼叫成功,將會傳回檔案描述元。 否則會傳回 -1。

設定 PWM 通道的狀態

若要設定或更新 PWM 通道的狀態,請呼叫 PWM_Apply。 您會將下列參數傳遞至 PWM_Apply:

  • PWM_Open所傳回的檔案描述元

  • 要更新的 PWM 通道;此值與平臺相依

  • 要套用至通道的期間、工作週期和極性

  • 是否啟用或停用通道

注意

期間和工作週期的最小和最大限制與裝置相依。 例如,在 MT3620 高階核心上,PWM 會以固定基底頻率 2 MHz 執行,並在 16 位開啟/關閉比較緩存器時執行。 這會強制使用 500 ns 的週期解析,且有效最大期間約為 32.77 毫秒。 如需詳細資訊,請參閱特定裝置的數據工作表。

MT3620 支援

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 對應至 MT3260 上的相同針腳。 如果您的應用程式使用 PWM 控制器,則會配置與該控制器相關聯的所有針腳,以作為 PWM 輸出使用。 它們無法用於任何其他周邊類型。