摘要
本篇筆記主要記錄基于恩智浦MPC5744P的電機(jī)FOC控制中電流的采樣。
準(zhǔn)備工作
ADC
恩智浦的MPC5744P,含有的ADC子模塊有四個(gè),我們使用ADC0的通道0,和ADC1的通道0來做電流的同步采樣,通過PWM觸發(fā)CTU,CTU事件觸發(fā)ADC電流采樣,在CTU的中斷中去獲取電流的ADC值,經(jīng)過濾波后就可以做電流算法的閉環(huán)控制,這個(gè)芯片的ADC 有兩種模式。
我們使用電機(jī)控制模式,使用內(nèi)部集成的CTU去觸發(fā)ADC轉(zhuǎn)換。也可以采用etimer去觸發(fā)ADC,這次我們采用CTU觸發(fā),配置ADC,CTU時(shí)鐘為80M.
CTU
CTU的利用可以減少CPU的負(fù)擔(dān),具體的描述可以參考手冊下面的描述
CTU框圖
因?yàn)樽鲭姍C(jī)控制,電流的同步采樣非常關(guān)鍵,根據(jù)這個(gè)框圖可以看到,PWM的重裝載可以作為觸發(fā)CTU,CTU產(chǎn)生ADC命令請求去ADC轉(zhuǎn)換。CTU操作的模式有觸發(fā)模式和順序模式。我們采用觸發(fā)模式。
這里需要注意的是CTU的FIFO是不同的,0和1用來做快速采樣,而2和3用來配置作為低速采樣。
配置和開發(fā)
在S32DS開發(fā)環(huán)境中配置CTU和ADC,
ADC配置
更多參數(shù)的配置請參考收據(jù)手冊,這個(gè)需要認(rèn)真閱讀手冊配置,可以參考例程。配置完成后,生成驅(qū)動,如果沒有錯(cuò)的話,我們這里需要完成CTU的中斷去獲取ADC值。
驅(qū)動添加
需要初始化ADC和CTU,添加相應(yīng)的代碼,使用生成的配置結(jié)構(gòu)體
然后還需要完成CTU的中斷,
轉(zhuǎn)換結(jié)果的獲取有兩種API, 可以根據(jù)自己需要選擇,第一種API
/ FUNCTION *********************************************************************
- Function Name : CTU_DRV_GetConvData
- Description : This function returns the conversion data result aligned according
- to the alignment parameter.
- Implements : CTU_DRV_GetConvData_Activity
- END**************************************************************************/
uint16_t CTU_DRV_GetConvData (const uint32_t instance, const uint32_t fifoIdx, ctu_data_align_t alignment)
第二種API
/ FUNCTION *********************************************************************
- Function Name : CTU_DRV_GetConvResult
- Description : This function gets the full conversion result information, with
- the conversion data aligned according to the alignment parameter.
- Implements : CTU_DRV_GetConvResult_Activity
- END**************************************************************************/
void CTU_DRV_GetConvResult (const uint32_t instance, const uint32_t fifoIdx, const ctu_data_align_t alignment, ctu_conv_result_t * const result)
兩種都可以正確獲取到ADC值,獲取到原始值以后還需要做一些濾波來處理,這些流給大家去實(shí)現(xiàn),因?yàn)槟愕膽?yīng)用不一樣,可能采取的濾波算法也不一樣。有時(shí)候還需要采用多種濾波算法實(shí)現(xiàn)對不同干擾的抗擾能力。
測試
添加完代碼,沒有問題后就可以編譯下載到板子上調(diào)試觀察,可以看到,正確實(shí)現(xiàn)了電流的多路采樣,可以采集多組值,測量下這里就給大家簡單觀察下打斷點(diǎn)采集到的結(jié)果。
同時(shí)CTU還有其他一些觸發(fā)源,大家也可以實(shí)驗(yàn)一下,也可以軟件觸發(fā)。但在電機(jī)控制中,為了達(dá)到同步和快速的電流采樣,都是用觸發(fā)同步采樣,提供給算法實(shí)施閉環(huán)控制。有興趣的可以多研究研究。
-
恩智浦
+關(guān)注
關(guān)注
14文章
5817瀏覽量
106322 -
adc
+關(guān)注
關(guān)注
98文章
6391瀏覽量
543762 -
電機(jī)
+關(guān)注
關(guān)注
142文章
8874瀏覽量
144850 -
FOC
+關(guān)注
關(guān)注
20文章
316瀏覽量
42567 -
MPC5744P
+關(guān)注
關(guān)注
1文章
9瀏覽量
8140
發(fā)布評論請先 登錄
相關(guān)推薦
評論