從遠程物聯網 (IoT) 控制的車庫開門器和車窗到衛星推進控制器,無刷直流 (BLDC) 電機越來越多地用于許多不同的應用。對于 BLDC 電機,設計人員面臨的問題是驅動電機所需的控制算法很復雜,而且往往是專用的。這使得一般工程師很難在合理時間內啟動并運行這種電機。 開發人員通常只能選擇在微控制器上運行的基于軟件的解決方案(這是一種靈活的軟件解決方案,但也給微控制器帶來了計算負擔),或者使用專用集成電路 (IC)。后者封裝了完整的 BLDC 電機控制功能,并將 BLDC 控制從主機轉移到其中。 本文首先討論基于微控制器的軟件解決方案和專用硬件芯片解決方案之間的區別,隨后深入探討如何使用 Allegro MicroSystems 的 A4964KJPTR-T——專為簡化汽車應用 BLDC 電機控制而設計的電機驅動器。本文將展示如何與 A4964KJPTR-T 交互,以及一些避免意外行為的最佳做法。 BLDC 電機極簡介紹 BLDC 電機在廣泛的速度范圍內提供高效扭矩輸送,噪音小,沒有有刷電機的機械摩擦。BLDC 電機由電流而非電壓控制,用途廣泛,其形狀、尺寸和成本也因應用不同而各異。 例如,TRINAMIC Motion Control 的 QBL4208-41-04-006 是一款 24 V、4000 RPM 的電機,可提供高達 0.06 Nm 的扭矩(圖 1)。該電機很輕巧(0.662 lb),并為開發人員提供了多種電機控制選擇,如通過使用反電動勢 (BEMF) 的無傳感器操作,或使用能報告位置的內置傳感器。 圖 1:QBL4208-41-04-006 是一款 24 V、4000 RPM BLDC 電機,最高速度下可提供略高于 0.06 Nm 的扭矩。(圖片來源:TRINAMIC Motion Control GmbH) 如需更大扭矩,設計人員可以使用 QBL4208-41-04-025,這款電機也是來自 TRINAMIC Motion Control(圖 2)。這是一款 24 V、4000 RPM BLDC 電機,可提供略高于 0.25 Nm 的扭矩。 圖 2:TRINAMIC Motion Control 的 QBL4208-41-04-025 是一款 24 V、4000 RPM BLDC 電機,最高速度下可提供略高于 0.25 Nm 的扭矩。(圖片來源:TRINAMIC Motion Control GmbH) BLDC 電機通過三相線驅動,產生磁場,磁場再推動永久磁鐵,使定子移動并轉動電機。 理論上,這聽起來很容易,但實際上,驅動 BLDC 電機相當復雜,開發人員只能選擇使用軟件框架來驅動電機,或者選擇專用芯片解決方案。 軟件與專用芯片解決方案 在解決如何轉動 BLDC 電機的問題時,開發人員應該考慮若干因素。這些因素基本上可歸結為: · BOM 成本與人工成本 · 電路板復雜性與軟件復雜性 · 維護時間和成本 從硬件的角度來看,走軟件路線可能非常有吸引力,因為專用芯片解決方案會給 BOM 增加一些額外的成本。若不使用專用芯片,則能去掉該成本,花很少的錢去買微控制器,把所有控制算法放進該微控制器里。這似乎是雙贏的做法,但團隊往往沒考慮到該決定的全部后果。 是的,BOM 成本降低了,但微控制器上增加了額外負擔,要處理 BLDC 狀態數據并持續驅動電機。如果微控制器還要對其他傳感器進行采樣、與無線電通信以及控制其他設備,那么稍不注意,軟件開發和維護成本就可能突飛猛漲。 不過,微控制器中基于軟件的解決方案具備靈活性,因為團隊可以微調其電機控制算法。使用軟件也并不意味著事情總會趨于極度復雜。 例如,通常情況下,將電機控制算法移入微控制器會占用更多的 RAM,并需要大量閃存。然而,如果團隊使用專為電機控制而設計的微控制器,如 Texas Instruments 的 F280049CRSHSR 電機控制微控制器,算法已內置在微控制器 ROM 的庫中。這意味著向應用程序添加的額外代碼只有對庫進行訪問的函數調用,所有繁重的工作都由該庫完成。 不過,轉動 BLDC 電機不僅是軟件的問題,還需要硬件。圖 3 顯示了使用 C2000 微控制器的應用實例,其中 F280049CRSHSR 是該系列的成員。此圖說明了驅動 BLDC 電機所需的一切以及可選項。除了微控制器,還需要某種三相功率級,用來驅動 BLDC 電機的三個相位,使電機轉動。 圖 3:Texas Instruments 的 C2000 微控制器專為電機控制應用而設計。此圖為應用實例,中間是微控制器,其余為驅動 BLDC 電機的必需和可選電路。(圖片來源:Texas Instruments) 利用微控制器驅動電機無疑具有吸引力,但專用硬件解決方案怎么樣呢?我們來看看 Allegro MicroSystems 的 A4964KJPTR-T 電機驅動器芯片。 Allegro MicroSystems 的 A4964KJPTR-T 電機驅動器 Allegro MicroSystems 的 A4964KJPTR-T 電機驅動芯片是專用 BLDC 電機驅動器,其中包含了驅動電機所需的所有能力(圖 4)。該芯片專為汽車應用而設計,并與 N 溝道 MOSFET 搭配使用,具有無傳感器啟動和換向功能,因此需要的外部硬件極少。A4964KJPTR-T 的工作電壓范圍也很廣,從 5.5 V 至 50 V,不僅適用于汽車系統,而且幾乎涵蓋了所有標準應用。 A4964KJPTR-T 最引人注目的特性或許是,它能通過串行外設接口 (SPI) 與微控制器或中央電子控制單元 (ECU) 相連接,以配置電機運行的各種寄存器。顯然,該微控制器不需要像運行電機控制算法本身的微控制器那樣強大。 圖 4:A4964KJPTR-T BLDC 電機驅動器工作電壓為 5.5 V 至 50 V,提供無傳感器啟動和換向。電機速度可通過 SPI 或專用 PWM 信號進行配置。(圖片來源:Allegro MicroSystems) 另外,很有意義的是,A4964KJPTR-T 電機速度也可以在沒有 SPI 的情況下驅動,只需提供脈沖寬度調制 (PWM) 信號即可。它有非易失性存儲器可以存儲電機設置,上電時加載這些設置,允許只用 PWM 信號來控制電機。 從配置角度而言,A4964KJPTR-T 有 32 個可尋址 16 位寄存器,外加一個狀態寄存器。狀態寄存器很獨特,每次 SPI 讀/寫操作時傳輸前 5 位,以便軟件可以檢查一般狀態,了解是否有任何故障或問題。對芯片執行寫操作時,A4964KJPTR-T 不會回傳數據,因此可以讀取所有狀態寄存器。 在 32 個可尋址寄存器中,還有兩個特殊寄存器。寄存器 30 是只寫寄存器,寄存器 31 是只讀寄存器。只寫寄存器允許開發人員以 0 – 1023 之間的值設置需求輸入,即驅動電機的占空比速率。只讀寄存器的數據根據寫入寄存器 29(即回讀選擇寄存器)的請求數據而改變。該寄存器允許檢索各種遙測信息,例如: · 診斷 · 電機速度 · 平均供電電流 · 供電電壓 · 芯片溫度 · 需求輸入 · 應用的橋峰值占空比 · 應用的相位前移 除了這些特殊寄存器,其余 30 個寄存器允許對具體的電機應用進行調整,并允許使能或禁用故障,如限流和柵極驅動故障。 專用電機驅動器很有意義,其將運行電機所需的各種配置都存儲在幾十個配置寄存器中。這極大地消除了微控制器原本會產生的軟件開銷,也許更重要的是,還極大地降低了軟件開發和維護成本。驅動 BLDC 不過是發送 PWM(這不會造成微控制器的任何開銷),或者使能電機位并提供基于 SPI 的需求輸入來轉動 BLDC。 A4964KJPTR-T 使用技巧與訣竅 A4964KJPTR-T 的連接很簡單,以下是開發人員應牢記的幾個“技巧與訣竅”,可以簡化和加快他們的開發,例如: · 狀態寄存器在每次寫入芯片時都會通過 SPI 接口返回,而不是用作專門的可尋址寄存器。這意味著驅動代碼在寫入芯片時需要監控 SPI 總線 SDO 線路以獲得狀態信息。 · 故障信息包括在狀態寄存器中,但當微控制器提供地址訪問信息時,在前五位中可以看到每次 SPI 事務的芯片狀態概覽。此數據可用于確定是否出現任何問題。 · 存儲器映射中有兩個獨特的寄存器,一個只讀,一個只寫。這很簡單,但要注意不要試圖讀取只寫寄存器,這樣做會把讀序列中的任何偽數據寫入該寄存器中。 · 該芯片有非易失性存儲器,可用于存儲默認參數。這些參數被加載到 RAM 中,并在啟動時使用。為確保芯片最有效地啟動進入就緒狀態,應將“安全”啟動值寫入芯片。 · 如果終端設備在嘈雜或重輻射環境中使用,那么設計應用程序代碼定期重新確認配置數據是不錯的主意。芯片配置存儲在 RAM 中,這意味著它很容易受到宇宙射線、位反轉以及所有可能發生在電子產品中的奇怪、罕見事件的影響。 結語 用于汽車、物聯網或其他應用的 BLDC 電機實現相當普遍,但驅動會很復雜。為了應對軟件復雜性,開發人員可以使用專用 BLDC 電機驅動器,如 A4964KJPTR-T,其中封裝了所有電機控制功能。 雖然仍然需要軟件與芯片交互,但運行軟件的微控制器只需要設定配置設置,A4964KJPTR-T 就會負責驅動電機。嘗試使用 A4964KJPTR-T 時,開發人員會發現,遵循所提供的“技巧與訣竅”可以幫助節省不少時間,避免許多麻煩。 來源:Digi-Key 作者:Jacob Beningo |