在高階應用程式中使用 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 輸出使用。 它們無法用於任何其他周邊類型。