在高階應用程式中使用 PWM

本主題說明如何存取裝置脈衝寬度調製器 (PWM) 在 Azure 球體高層級應用程式中使用。

脈衝寬度調製是透過將負載迴圈 (時間與休假時間的比) 脈衝數位訊號來達成。 Pulse 寬度模組器可用於數位運動控制、通訊和數位對類比轉換等各種應用程式中。

若要在 Azure 球體應用程式中使用 PWM,您必須包含所需的頁首檔案和 Pwm 功能,並指定應用程式將存取的 PWM 通道控制器。

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

PWM 需求

使用 PWM 的應用程式必須包含適當的頁首檔案,並將 PWM 設定新增至 應用程式資訊清單

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

頁首檔案

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

將「path-to-your-target-hardware.h」取代為硬體頁首檔案的路徑。

應用程式資訊清單設定

應用程式資訊清單中的 PWM 設定會列出應用程式存取的 PWM 控制器。 若要設定這些設定,請將該 Pwm 功能新增至應用程式資訊清單,然後將每個 PWM 控制器新增至該功能。 Azure 球體 應用程式資訊清單 有更多詳細資料。

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

例如,以下是針對針對 MT3620 參考開發面板 (RDB) 之應用程式資訊清單的摘要。

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

下列摘要說明如何在針對 Avnet MT3620 Starter Kit的應用程式中指定相同的 PWM 控制器:

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

PWM 存取權

Azure 球體高層級應用程式可以透過呼叫 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 會透過 GPIO11 將 GPIO0 釘選到 MT3260 上的相同圖釘。 如果您的應用程式使用 PWM 控制器,則會配置所有與該控制器相關聯的圖釘做為 PWM 輸出使用。 它們無法用於任何其他周邊類型。