簡介
本文介紹如何使用 Flagchip FC4150 的外設對無刷電機進行應用。使用 Spark_FOC_2R 示例程序,完成 PWM 、ADC 的同步觸發採樣演示。
硬體平台:旗芯微 FC4150 DEMO BOARD V1 開發板
軟體平台:Spark_FOC_2R
1、(PMSM) 無刷電機介紹
無刷電機是由電動機主體和驅動器組成的機電一體化產品,硬體採用三相橋的驅動方式,軟體則需要 FOC (磁場矢量)控制,將直流電壓轉化為三相相位相差 120° 的交流電壓,使用外置傳感器或軟體觀測器算法進行對電機角度的精確控制。
對於 FOC 控制來講,硬體上需要 MCU 集成支持 3 相中心對齊互補輸出的 PWM、多個支持 PWM 同步採樣的高速 ADC,對電流採樣後進行的一些 Clarke、Park 變換算法和SVPWM 的生成則需要 FPU、DSP 等外設的支持來加快算法的處理速度。
2、FC4150 外設配合
FC4150 需要配置的外設有 FTU (PWM)、ADC、Ptimer、Trgsel、FPU 等。
在 FOC 控制中 FTU 需要產生中心對齊的 PWM 信號,在重新裝載計數值時,FTU 支持產生重新裝載的觸發信號用於通知 2 個 Ptimer 開始計時,當 Ptimer 計時到 PWM 的中心點時,Ptimer 產生觸發信號通知 ADC 進行採樣,採樣完成後發生 ADC 採樣完成中斷得到三相電流,FOC 算法函數開始計算下一周期各個通道的 PWM 占空比,從而完成對電機的磁場定向控制。
3、程序分析
3.1 Main 函數概述
- main 函數:
3.2 Peripheral_Init 函數下的外設配置簡要分析
- ADC1_2_Init 函數:初始化兩個 ADC 序列轉換配置,採用 Pimer 觸發轉換,開啟 ADC0 中斷讀取轉換結果。
- ADC0_IRQHandler 函數:不使用 SDK 中的 ADCx_Intterupt_Callback 函數,節省處理時間。
- PTIEMR_Init 函數:配置 Ptimer 的計數時間,使其剛好在 PWM 的中心點觸發 ADC 採樣。
Ptimer 0、1 的通道配置:
- TEST_Trigger_FTURELOAD_OR_PTIMER_to_ADC_time 函數:對觸發時機進行驗證
- DRV_PWM_Init 函數:生成三相中間對齊的互補 PWM ,並配置死區時間與 Fault 故障保護。
4、實驗現象
Spark_FOC_2R 的 Demo 中使用了 20Khz ,死區時間為 1us 中心對齊的互補 PWM,將 DRV_PWM_Init 函數內的 TEST PWM DUTY 取消注釋,並在初始化時調用TEST_Trigger_FTURELOAD_OR_PTIMER_to_ADC_time 函數,使用示波器觀察 PWM 與觸發時機是否正確。
▲ 圖 1 PWM 頻率測試波形
▲ 圖 2 死區時間測試波形
▲ 圖 3 各個外設配合觸發 ADC 轉換的波形
5、總結
本文介紹了基於旗芯微 FC4150 DEMO BOARD V1 開發板對 (PMSM)無刷電機的驅動外設配置進行了演示操作,如需 Spark_FOC_2R 軟體包,可以聯繫我們郵箱: atu.sh@wpi-group.com,更多的外設應用請參考 FC4150_SDK_V_1_2_1 SDK 包。
6、參考文獻
(1) FC4150 Reference Manual V3.0
歡迎在博文下方留言評論,我們會及時回復您的問題。如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com
作者:Better Yang / 楊琰傑
評論