• 方案介紹
    • MCXA153 電機(jī)控制應(yīng)用框架
    • 目錄
    • 1.軟件
    • 2.硬件
    • 3. 設(shè)置
    • 4.結(jié)果
    • 5. 應(yīng)用概述
    • 6. 常見(jiàn)問(wèn)題解答
    • 7. 支持
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【代碼庫(kù)】基于MCXA153 電機(jī)控制應(yīng)用框架

06/11 09:07
159
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

gs-mcxa153-motor-control-application-framework-main.zip

共1個(gè)文件

MCXA153 電機(jī)控制應(yīng)用框架

 

電機(jī)控制框架是根據(jù)客戶需求設(shè)計(jì)的,旨在提供一個(gè)簡(jiǎn)單易用的示例,用于構(gòu)建更復(fù)雜的解決方案。本示例幾乎涵蓋了運(yùn)行基于三相電逆變器應(yīng)用程序所需的所有功能。重要外設(shè)無(wú)需額外的 API,所有操作均在底層完成。本示例提供了兩個(gè)中斷、ADC 采樣、FreeMASTER 和 RTCESL 庫(kù)的實(shí)現(xiàn)。?本示例本身并不支持電機(jī)旋轉(zhuǎn)。它是開(kāi)發(fā)能夠旋轉(zhuǎn)電機(jī)的應(yīng)用程序的基礎(chǔ)。?更多詳情,請(qǐng)參閱應(yīng)用程序概述。

主板:FRDM-MCXA153

 

類(lèi)別:電機(jī)控制

 

外設(shè):ADC、時(shí)鐘、GPIO、PWM、定時(shí)器、UART

 

工具鏈:MCUXpresso IDE

 

目錄

 

  1. 軟件
  2. 硬件
  3. 設(shè)置
  4. 結(jié)果
  5. 應(yīng)用程序概述
  6. 常見(jiàn)問(wèn)題解答
  7. 支持
  8. 發(fā)行說(shuō)明

1.軟件

 

2.硬件

 

3. 設(shè)置

 

要運(yùn)行示例軟件,需要將 FRDM-MC-LVPMSM 插入 FRDM-MCXA153 開(kāi)發(fā)板。如果沒(méi)有 FRDM-MC-LVPMSM,軟件可以工作,但由于功率級(jí)缺少電壓偏移,ADC 的模擬測(cè)量將無(wú)法給出正確的數(shù)值。您可以在 IDE 和/或 FreeMASTER 中調(diào)試軟件。

3.1 步驟 1

 

將項(xiàng)目導(dǎo)入 MCUXpresso IDE。

3.2 第 2 步

 

構(gòu)建項(xiàng)目并將其刷入 FRDM-MCXA153 板。

3.2 步驟 3

 

從motor_control文件夾運(yùn)行 FreeMASTER .pmpx 項(xiàng)目并連接到電路板

在某些情況下,需要在刷機(jī)后或計(jì)算機(jī)從睡眠狀態(tài)喚醒后拔出/插入 EVK USB。修改代碼后,F(xiàn)reeMASTER 彈出窗口會(huì)更改為在 MAP 文件中接受。

4.結(jié)果

 

您可以觀察實(shí)時(shí)模擬值,并根據(jù)連接到 FRDM-MC-LVPMSM 板的電源電平正確測(cè)量直流總線電壓。將 設(shè)置ui16Run為 1 后,應(yīng)該可以明顯看到校準(zhǔn)程序正確檢測(cè)并減去了電流通道上的偏移量。

5. 應(yīng)用概述

 

5.1 外設(shè)初始化

 

初始化函數(shù)位于mcperiphinit.c源文件中。

5.2 端口和引腳

 

基本引腳初始化使用該工具生成的board/pinmux.c源文件中的BOARDInit_Pins函數(shù)。

5.3 脈寬調(diào)制

 

使用eFlexPWM模塊驅(qū)動(dòng)三相電壓源逆變器。PWM 頻率在?peripheral_init.h.?文件中通過(guò)設(shè)置PWM_FREQ定義進(jìn)行配置。根據(jù)此頻率值,可以通過(guò)預(yù)處理器值計(jì)算PWM_MODULOeFlexPWM 模塊。PWM
配置為以對(duì)稱(chēng)、中心對(duì)齊模式運(yùn)行。這是通過(guò)將INIT寄存器值設(shè)置為-MODULO/2并將VAL1寄存器值設(shè)置為 來(lái)實(shí)現(xiàn)的MODULO/2 – 1。死區(qū)時(shí)間值寄存器 DTCNTn 根據(jù) 進(jìn)行配置M1_PWM_DEADTIME。 VAL4寄存器用作 ADC 的觸發(fā)事件,以在零矢量(所有底部開(kāi)關(guān)都處于開(kāi)啟狀態(tài))期間對(duì)分流電阻電壓降進(jìn)行采樣。ADC 的觸發(fā)輸出在寄存器中啟用PWM_TCTRL_OUT_TRIG_EN。

5.4 模數(shù)轉(zhuǎn)換器

 

ADC0 模塊在框架中初始化。啟用時(shí)鐘后,使用默認(rèn)校準(zhǔn)功能。大多數(shù)情況下,用戶需要更新或調(diào)整通道采樣序列。為此,我們準(zhǔn)備了額外的支持性定義,以幫助理解此類(lèi) ADC 的命令配置。

5.4.1 ADC命令

 

對(duì)命令序列低級(jí)編碼的主要誤解在于通過(guò)配置 CMDL 和 CMDH 寄存器來(lái)對(duì)實(shí)際命令和下一個(gè)命令的偏移量進(jìn)行編號(hào)。為此,在mcxa153lowleveladc.h 文件中定義了實(shí)際命令 (ACTCMDx) 和下一個(gè)命令 (NEXTCMDy) 。使用它們可以使用戶更清晰地理解低級(jí)配置,因?yàn)槠屏勘欢x名稱(chēng)所掩蓋。根據(jù)參考手冊(cè),還創(chuàng)建了其他定義來(lái)表達(dá)配置參數(shù),請(qǐng)參閱 mcxa153lowleveladc.h

```
ADC0->CMD[ACTCMD1].CMDL = ADCCMDLADCH(20U)
| ADC
CMDLCTYPE(CMDLCTYPESINGLEENDEDA)
| ADC
CMDLMODE(CMDLMODE_STANDARD);

ADC0->CMD[ACTCMD1].CMDH = ADCCMDHCMPEN(0)
| ADC
CMDHWAITTRIG(0)
| ADCCMDHLWI(0)
| ADCCMDHSTS(CMDHSAMPLETIME35)
| ADC
CMDHAVGS(CMDHAVERAGE1)
| ADC
CMDHLOOP(0)
| ADC
CMDHNEXT(NEXTCMD2);
```

5.4.2 ADC FIFO

 

初始化的重要部分是FIFO配置。MCXA153有一個(gè)FIFO,用于存儲(chǔ)ADC通道的結(jié)果。

了解結(jié)果 FIFO 中的結(jié)果數(shù)量非常重要。為此,還需要為 ADC 中斷設(shè)置正確的水印。建議在讀取 FIFO 之前讀取 FIFO 中的結(jié)果數(shù)量,并將其與配置的預(yù)期轉(zhuǎn)換次數(shù)進(jìn)行比較。

5.4.3 LPCMP

 

低功耗比較器設(shè)置為連續(xù)模式。MSEL 多路復(fù)用器設(shè)置為內(nèi)部 8 位 DAC。PSEL 多路復(fù)用器設(shè)置為通道 3,在本例中為直流總線電流。LPCMP 輸出作為故障信號(hào)路由至 eFlexPWM 模塊。

5.4.4 定時(shí)器

 

Ctimer 0 用作帶中斷的慢循環(huán)(1kHz)周期定時(shí)器。

5.4.5 輸入復(fù)用器

 

該多路復(fù)用器允許在外設(shè)之間路由信號(hào)。在項(xiàng)目中,它使用引腳工具進(jìn)行配置。路由信號(hào)顯示為“n/a”引腳。

5.5 ADC 結(jié)果處理

 

為了更好地理解 ADC 的功能,本例中將 ADC 結(jié)果存儲(chǔ)在 32 位變量中,以便觀察其他狀態(tài)位。然后,32 位結(jié)果被屏蔽ADC_RESFIFO_D_MASK并存儲(chǔ)到 16 位變量中。對(duì)于特定結(jié)果,需要減去一個(gè)偏移量,并使用 RTCESL 移位至完整的 16 位范圍。ADC 結(jié)果存儲(chǔ)在AdcGetResults()函數(shù)中并進(jìn)行調(diào)節(jié)。

5.6 應(yīng)用狀態(tài)機(jī)

 

應(yīng)用程序狀態(tài)機(jī)實(shí)現(xiàn)為指向該應(yīng)用程序狀態(tài)函數(shù)的指針數(shù)組。

```
typedef void (tPointerFcn)(void); / pointer to function */

static tPointerFcn AppStateMachineFast[] = {AppInitFast,AppStopFast,AppStartFast,AppRunFast,AppErrorFast};
```

main.c源代碼 中有兩個(gè)狀態(tài)機(jī)調(diào)用:AppStateMachineSlow在 CTIMER ISR(慢循環(huán))中 AppStateMachineFast在 ADC ISR(快循環(huán))中

具體的狀態(tài)機(jī)函數(shù)位于motor_control.c中,除快速循環(huán)的 INIT、STOP 和 RUN 狀態(tài)外,大多數(shù)函數(shù)為空。狀態(tài)由ui8MotorState用于兩個(gè)狀態(tài)機(jī)的變量控制和指示。狀態(tài)變量的更改嚴(yán)格在轉(zhuǎn)換函數(shù)中完成。轉(zhuǎn)換函數(shù)不屬于數(shù)組指針,它們是獨(dú)立的,并且易于根據(jù)用戶所需的轉(zhuǎn)換進(jìn)行重寫(xiě)和更新。

在快速循環(huán)的 INIT 狀態(tài)下,有一個(gè)變量初始化的示例。在快速循環(huán)的 Stop 狀態(tài)下,應(yīng)用程序正在等待ui16Run > 0條件。然后,它會(huì)轉(zhuǎn)換到 START 狀態(tài)。START 狀態(tài)用于例如對(duì)齊目的,根據(jù)狀態(tài)圖,它會(huì)轉(zhuǎn)到 RUN 狀態(tài)。

6. 常見(jiàn)問(wèn)題解答

 

尚未發(fā)現(xiàn)針對(duì)該項(xiàng)目的常見(jiàn)問(wèn)題解答。

7. 支持

 

項(xiàng)目元數(shù)據(jù)

 

董事會(huì)徽章

類(lèi)別徽章

周邊徽章 周邊徽章 周邊徽章 周邊徽章 周邊徽章 周邊徽章

工具鏈徽章

來(lái)源:恩智浦appcodehub

  • gs-mcxa153-motor-control-application-framework-main.zip
    下載
恩智浦

恩智浦

恩智浦半導(dǎo)體創(chuàng)立于2006年,其前身為荷蘭飛利浦公司于1953年成立的半導(dǎo)體事業(yè)部,總部位于荷蘭埃因霍溫。恩智浦2010年在美國(guó)納斯達(dá)克上市。恩智浦2010年在美國(guó)納斯達(dá)克上市。恩智浦半導(dǎo)體致力于打造全球化解決方案,實(shí)現(xiàn)智慧生活,安全連結(jié)。

恩智浦半導(dǎo)體創(chuàng)立于2006年,其前身為荷蘭飛利浦公司于1953年成立的半導(dǎo)體事業(yè)部,總部位于荷蘭埃因霍溫。恩智浦2010年在美國(guó)納斯達(dá)克上市。恩智浦2010年在美國(guó)納斯達(dá)克上市。恩智浦半導(dǎo)體致力于打造全球化解決方案,實(shí)現(xiàn)智慧生活,安全連結(jié)。收起

查看更多

相關(guān)推薦