大多數微控制器至少有一個脈沖寬度調制 (PWM) 外設,以方波形式生成多個波形。這些 PWM 輸出可用于驅動同步負載,例如機械系統中的步進電機和電源轉換器的功率 MOSFET。對于這些負載,要使目標負載正常工作,PWM 波形必須精確同步,這一點非常重要。
如果 PWM 外設未經過仔細編程,它可能偶爾會在波形之間產生相位延遲,從而導致在波形邊沿未正確對齊時失去同步。這些相位延遲將會降低負載的驅動效率,從而浪費功率并可能產生過多的熱量。對于常見的 PWM 外設,可以啟用或禁用某個 PWM,但同時會導致其他 PWM 輸出發生相位延遲。
這對于小規格電池供電型物聯網 (IoT) 應用而言尤其是個問題。在此類應用中,單個具有 16 或 32 路輸出的 PWM 外設被用于控制多個外部負載。這類物聯網應用中的相位延遲可能浪費電池電量。而且,由于未檢測到相位延遲,物聯網端點的網絡診斷可能會遺漏這些延遲。
本文將討論微控制器 PWM 外設的一些應用,以及在這類應用中,哪些情況下使 PWM 波形保持同步非常重要。然后介紹 Maxim Integrated 的一款微控制器,其中具有一個專為防止這類應用中丟失波形同步的脈沖串外設,最后討論如何配置此外設以確保目標負載得到高效的驅動。
微控制器 PWM 外設及其目標負載
大多數通用微控制器至少有一個 PWM 外設,用于生成規則的重復方波。PWM 驅動可用于許多負載——從簡單負載到更復雜的機械驅動系統。
發光二極管 (LED) 是可通過 PWM 信號高效驅動的簡單負載示例之一,尤其是在需要對彩色 LED 進行調光的應用中。與通過改變正向直流電流來為 LED 調光相比,PWM 調光可以更精確地保持光線質量,而不會明顯改變顏色。一個 PWM 外設可以輕松驅動一個或多個 LED。如果將這些 LED 用作操作員的視覺指示燈,則兩個或多個 LED 之間的相位差不太明顯。但如果將這些 LED 用于更復雜的應用,例如多個 LED 以光調制的形式將數據傳輸到受光器,則 LED 同步可能是非常重要的設計考慮因素。
微控制器 PWM 的另一種簡單負載是通過電機驅動器 IC 驅動的直流電機。盡管通過改變直流電機兩端的電壓可以輕松改變直流電機的速度,但 PWM 控制可以更精確地控制電機旋轉。如果將速度傳感器用于閉環控制系統,則可以更精確地保持電機速度。如果使用兩個或更多個直流電機并且它們必須一起運行,則可能有必要對 PWM 波形進行同步,以便在電機之間保持精確的速度控制。
驅動雙極步進電機
當驅動雙極步進電機時,設計情況變得更加復雜。雙極步進電機由兩個可逆的電流繞組驅動(圖 1)。每個繞組需要兩個 PWM,因此需要四個 PWM。
圖 1:雙極步進電機由兩個電流繞組(表示為紅色和綠色線圈)驅動旋轉,這兩個繞組可承載每個方向上的電流。通過控制繞組中電流的相位和持續時間,可以輕松控制電機的速度和位置。(圖片來源:Digi-Key)
如圖 1 所示,紅色和綠色線圈表示的兩個電流繞組必須按正確的順序驅動,才能使電機正常工作。在每個波形變化時,圖 2 所示的序列驅動雙極步進電機一整步。
圖 2:雙極步進電機上的兩個線圈必須根據上圖進行分別驅動,才能使電機在每次波形變化時運動一整步。首先在一個方向上驅動每個線圈中的電流;接下來線圈空閑;然后以相反方向驅動電流。(圖片來源:Digi-Key)
電機的每一步都從每個波形轉換開始。如圖 2 所示,繞組兩端的電壓極性以及因此流過每個繞組的電流,在每一步都會發生變化。任何 PWM 信號中的相位延遲都可能導致電機打滑,從而造成扭矩損失,尤其在低速運轉時。
當微控制器具有僅使用四個輸出的 PWM 外設時,可以輕松控制步進電機,只需適度留意維持同步。但如果使用同一 PWM 外設來控制多個負載,則情況會變得更加復雜。例如,一個 16 輸出 PWM 可能將四個 PWM 輸出分配給步進電機,而將其他 PWM 輸出分配給其他負載,例如直流電機或 LED。使用適當的寄存器配置 PWM 輸出的頻率和占空比后,將在每個 PWM 的啟用/禁用寄存器中設置一個位。在 Arm? 微控制器中,固件可通過使用位綁定來設置相應的位。但是,位綁定會對目標寄存器執行讀取/修改/寫入 (RMW) 操作。如果有其他 PWM 輸出編程為在 RMW 操作期間開始或結束,則可能導致無法預測的結果,在某些情況下,甚至可能按與固件控制相反的方式啟用或禁用 PWM。
Maxim Integrated 利用以 120 兆赫茲 (MHz) 頻率運行的 MAX32650 Arm Cortex?-M4F 微控制器解決了這一問題。它具有廣泛的外設,包括三個標準 SPI 接口、一個四通道 SPI、三個 UART、兩個 I2C 端口、一個帶物理層 (PHY) 的 USB 2.0 高速接口、六個 32 位定時器,以及一個 AES-256 加密單元(圖 3)。
圖 3:Maxim Integrated 的 MAX32650 基于 120 MHz Arm Cortex-M4F,具有面向高性能物聯網邊緣計算應用的全系列外設和存儲器選項。(圖片來源:Maxim Integrated)
MAX32650 具有 3 MB 的閃存和 1 MB 的 SRAM,面向需要邊緣計算的復雜物聯網 (IoT) 端點。MAX32650 還具有一個 16 輸出脈沖串外設,可以生成復雜的 PWM 信號。它可以生成具有可配置頻率和 50% 占空比的方波,以及基于長度可達 32 位的可編程位模式的脈沖串。
防止相位延遲
脈沖串發生器可以使用 32 位 PTG_ENABLE 寄存器單獨啟用或禁用 16 個 PWM 輸出中的任何一個。向任意位位置寫入 1 將啟用該脈沖串,使其按配置運行。寫入 0 將停止脈沖串時鐘和邏輯,將輸出凍結在當前邏輯狀態。該寄存器與大多數微控制器中的啟用/禁用寄存器具有相同的 RMW 限制,因此不建議使用位綁定。
為了保持波形之間的相位同步,MAX32650 的脈沖串外設支持一種獨特的功能,當使用 32 位寄存器 PTG_SAFE_EN 時稱為“安全啟用”,而當使用 32 位寄存器 PTG_SAFE_DIS 時則稱為“安全禁用”。其中每個寄存器的高 16 位均未使用,建議這些未使用的位置始終寫入零。
為了安全地啟用任何輸出,固件會將 1 寫入 PTG_SAFE_EN 中的相應位位置。這還會立即設置這些輸出在 PTG_ENABLE 中的位位置,從而啟動 PWM 輸出。向 PTG_SAFE_EN 中的任何位位置寫入 0 對任何脈沖串輸出都沒有影響。
為了安全地禁用任何輸出,固件會將 1 寫入 PTG_SAFE_DIS 中的相應位位置。這還會立即清除這些輸出在 PTG_ENABLE 中的位位置,從而停止 PWM 輸出。向 PTG_SAFE_DIS 中的任何位位置寫入 0 對任何脈沖串輸出都沒有影響。
寫入這些寄存器不會執行 RMW。安全啟用/禁用功能允許立即啟動或停止一個或多個脈沖串,同時保證任何其他脈沖串都不會受到影響。PTG_SAFE_EN 和 PTG_SAFE_DIS 寄存器不支持位綁定。
再次參考圖 1 中的雙極步進電機,脈沖串輸出 0 和 1 可用于 A 和 B 對應的綠色電流繞組,脈沖串輸出 2 和 3 則可以用于 C 和 D 對應的紅色電流繞組。由于圖 2 中的波形包含死點,因此適合使用脈沖串功能來編程一種模式,并能配置為在沒有固件干預的情況下重復任意次數。
設置后,可通過將 0000000Fh 寫入 PTG_SAFE_EN 來啟動電機。這會同時啟動脈沖串輸出 0 到 3,在不影響任何其他正在運行的脈沖串輸出的情況下啟動電機。通過將 0000000Fh 寫入 PTG_SAFE_DIS,可停止電機。這兩項操作都不會影響任何其他正在運行的脈沖串。
如果需要啟用或禁用其他 12 個脈沖串輸出中的任意一個,也可以使用這兩個寄存器安全地控制它們。只要不將 1 寫入這些寄存器的低四位位置,步進電機的操作就不會受到影響。這與使用具有 RMW 的標準啟用寄存器完全不同,使用 RMW 時,輸出可能會卡頓,從而引起相移,這可能對扭矩產生不利影響。安全啟用/禁用功能類似于一種原子操作,因此可確保步進電機高效運行,不會浪費功率,并始終保持最大扭矩。
微控制器輸出引腳沒有足夠的能力驅動步進電機,因此需要電機驅動器或 H 橋。Allegro MicroSystems 的 A3909GLYTR-T 是雙 H 橋驅動器,可驅動需要 4 至 18 伏電壓以及每個電流繞組高達 1 安培 (A) 電流的電機(圖 4)。
圖 4:Allegro MicroSystems 的 A3909 是雙 H 橋驅動器,可為步進電機線圈提供高達 1 A 的拉出和灌入電流。(圖片來源:Allegro MicroSystems)
A3909 具有熱關斷保護、過流保護和短路保護功能。每個輸入 (INx) 驅動相應的輸出 (OUTx)。MAX32650 PWM 可以將脈沖串輸出 0 和 1 連接到輸入 IN1 和 IN2(綠色),以通過 OUT1 和 OUT2 驅動綠色線圈,以及將脈沖串輸出 2 和 3 連接到 IN3 和 IN4(紅色),以通過 OUT3 和 OUT4 驅動紅色線圈。這使 A3909 能夠直接驅動步進電機。
A3909 還支持有用的高阻抗功能。如果 H 橋的兩個輸入均為邏輯 0 的時間超過一毫秒 (ms),則兩個輸出都將置于高阻抗狀態。這適用于允許電機慣性滑行的情況,或任何要求輸出為高阻抗的步進電機步階。再次參考圖 2,任何處于空閑狀態的波形部分都將因置于高阻抗狀態而獲益。這可防止電流線圈在電機由另一個電流線圈步進時干擾電機的運行,因此會提高效率。
如果所有四個輸入(兩對)均保持低電平的時間超過 1 ms,那么很顯然,兩個輸出對都將進入如上所述的高阻抗狀態。規格書中稱此為休眠模式,因為同時還有一些內部電路也會處于低功耗狀態。
總結
常見的微控制器外設往往包括用于驅動外部負載(例如電機和功率 MOSFET)的 PWM 功能。但由于某些情況下在 PWM 啟用寄存器上執行位操作可能會導致不可預測的結果,因此微控制器供應商正在使用新的 PWM 外設來解決此問題,這些外設提供的功能可以安全地啟用和禁用單個 PWM 輸出,而不會干擾其他 PWM 輸出,從而防止偶爾出現相位延遲和失去同步。
評論
查看更多