1前言
最近和一些做汽車水泵/風機的客戶交流時,都提到要預研TMS(熱管理域控制器)方案。希望使用一個高性能的車規MCU,同時控制三個無刷電機(水泵/風扇)、多個有刷電機(空調風門)和多個步進電機(空調出風口/進氣格柵/電子膨脹閥)。
NXP主推的S32K3系列中的雙核MCU---S32K324(主頻160MHz * 2)能夠符合該要求,正好筆者手上有一套立功科技的基于S32K324的TMS方案評估板---S32K3_TriMotor,所以記錄下使用的過程,方便申請了該評估板的讀者快速上手。
2立功科技的TMS方案介紹
2.1 介紹資料
關于立功科技的TMS方案的特點和演示視頻,如下兩篇文章介紹的比較詳細,推薦閱讀。
2.2 簡要介紹
對立功科技的TMS方案進行下簡要介紹。
- 整體的方案框圖如下:
- 功能特性:
- 優勢亮點:
- 控制效率高,極大提高熱量的能量利用效率;
- 器件集成化,極大精簡電子系統布局;
- 大幅減少MCU、線束等數量,降低車輛生產成本;
- 多個系統集成,方便系統管理;
- 響應速度快,增強安全性。
3S32K3_TriMotor評估板測試
立功科技的S32K3_TriMotor有兩種配套程序,
- 一套用于客戶前期評估,基于NXP官方的S32K324三電機例程進行移植(主要是適配外圍的三相驅動),簽訂保密協議后免費提供。
- 一套用于客戶量產使用,需要付費購買。
3.1 環境搭建
使用S32K3_TriMotor對應的免費例程需要準備的環境如下:
- IDE:S32 Design Studio for S32 Platform 3.4 或 3.5
- 軟件包:RTD 2.0.0
- 調試器:Jlink(推薦安裝下J-Flash V7.70a) 或 multilink
- 調試工具:Freemaster 3.2
推薦使用S32DS 3.5 + RTD 2.0.0,但是筆者在S32DS 3.5已經安裝了RTD 3.0.0,如果安裝RTD 2.0.0會導致原本基于RTD 3.0.0的工程不可用。所以后文使用S32DS 3.4 + RTD 2.0.0進行演示,S32DS 3.5 + RTD 2.0.0類似。
S32 Design Studio for S32 Platform 3.4安裝
- S32DS 3.4下載地址為: https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=S32DS-3-4 ,瀏覽器打開并登錄NXP賬號,選擇如下版本:
- 點擊Previous選擇S32DS3.4版本。
- 選擇windows版本的安裝包并下載。
- 點擊 License Keys ,在彈出的界面找到激活碼并保存好,在安裝時會用上。(一個激活碼最多使用101臺機器)
- 點擊安裝包進行安裝,安裝過程中需要輸入激活碼時使用前面保存的激活碼即可,并選擇online激活的方式。
RTD 2.0.0安裝
- 打開S32DS 3.4,選擇好workspace,并勾選作為默認工作區。
- 等待S32DS 3.4檢查更新。
- 更新檢查完之后,會彈出可更新以及已安裝的組件。勾選S32K3 RTD AUTOSAR 4.4 Version 2.0.0,點擊install/update。同時去掉always show的勾選,這樣就不會每次打開彈出更新檢查的界面。
- 所有相關的組件都會自動加入更新列表,點擊next,再點擊finish進行更新。
- 更新完之后重啟下S32DS 3.4,點擊Help->S32DS Extensions and Updates
- 點擊Installed,查看已安裝的組件是否齊全。
Freemaster 3.2
Freemaster 3.2的下載地址如下, https://www.nxp.com/design/software/development-software/freemaster-run-time-debugging-tool:FREEMASTER ,選擇3.2版本即可(筆者試過2.5版本打開例程的.pmpx文件會有問題)。
3.2 例程測試
- 解壓立功科技提供的例程,名稱為:
- MCTPTX1AK324_Triple_PMSM_RDB_230526a.zip
- 將解壓后的文件夾復制到S32DS 3.4的workspace,并復制其所在的路徑。
- 打開S32DS 3.4,按下圖方式打開例程。
- 兩個工程分別是內核0和內核1的工程,依次選擇兩個工程并點擊Debug Flash,如果工程ok,會在控制臺看到編譯生成的elf文件。
- 雙擊打開S32K_PMSM_Sensorless.pmpx文件(如果無法打開,可以先打開freemaster,再選擇File->Open Project,選擇對應的工程),整體界面如下:
立功科技提供的免費例程用于驅動三個參數相同的電機,只需要在MCAT界面輸入對應的電機參數、電流環參數、速度環參數等,在Output File界面就可以更新/生成工程需要的PMSM_appconfig.h文件。
關于MCAT界面的參數,NXP官網有一份應用筆記AN4642詳細介紹如何使用和修改。鏈接為:*https://www.nxp.com/webapp/Download?colCode=AN4642&location=null*
關于電機本體參數的測試方法,可以參考NXP官網的AN4680應用筆記,鏈接為:*https://www.nxp.com/webapp/Download?colCode=AN4680&location=null*
3.3 例程適配
目前筆者手上有兩個參數不同的電機,需要對立功科技提供的例程進行一些適配工作才能正常運轉。具體適配工作如下:
- 結合兩個電機M1、M2的參數,使用MCAT工具配置生成對應的文件,分別為M1_PMSM_appconfig.h和 M1_PMSM_appconfig.h ,并添加到內核0工程下的src/config文件夾下:
- 然后將M1_PMSM_appconfig.h和M1_PMSM_appconfig.h中的宏定義分別加上M1和M2前綴,方便后續調用。
- 整個例程中需要用到MCAT生成的參數有如下四個函數,都在mianc.c中定義的:
static tBool CalcOpenLoop(openLoopPospe_t *openLoop, tFloat speedReqRamp);
static void M1_MCAT_Init(motorControl_t *pMC);
static void M2_MCAT_Init(motorControl_t *pMC);
static void M3_MCAT_Init(motorControl_t *pMC);
- MCAT初始化函數改起來比較方便,只需要將內部的賦值宏定義加上M1或者M2的前綴即可。
M1_MCAT_Init函數修改
M2_MCAT_Init函數修改
- CalcOpenLoop函數實現如下所示,里面調用了WEL_MAX變量,但是因為三個電機的狀態機中都使用了該函數,但是函數參數中沒有和WEL_MAX參數相關的,無法實現每個電機的狀態機調用的是匹配自己的WEL_MAX。
static tBool CalcOpenLoop(openLoopPospe_t *openLoop, tFloat speedReqRamp)
{
openLoop- >wRotEl = speedReqRamp;
openLoop- >thRotEl = MLIB_Mul(MLIB_ConvertPU_FLTF32(GFLIB_IntegratorTR_F32(MLIB_ConvertPU_F32FLT(MLIB_Div(speedReqRamp, WEL_MAX)),
&(openLoop- >integ))),
FLOAT_PI);
return (true);
}
- 所以需要修改下CalcOpenLoop函數,同時調用該函數的地方也需要做相應的修改。整個的調用關系如下圖:
- 同時在MCAT初始化函數的最后進行對應電機的WEL_MAX參數賦值以及增加結構體的成員:
static void M1_MCAT_Init(motorControl_t *pMC)
{
......
pMC- >MotorParamInof.Wel_Max = M1_WEL_MAX; //增加
}
static void M1_MCAT_Init(motorControl_t *pMC)
{
......
pMC- >MotorParamInof.Wel_Max = M2_WEL_MAX; //增加
}
- 然后保存編譯,生成新的內核0的elf文件。
3.4 雙核燒錄
- 將使用jlink連接PC和demo板,打開j-flash,選擇S32K324,如下圖。
- 點擊Open data file,選擇M0內核的elf文件。
- 等待M0內核的elf加載完之后,選擇Merge data file,選擇M1內核的elf文件。
- 兩個elf合并成功會在log窗口有提示,接著點擊connect,成功之后按F7燒錄即可。
3.5 測試
將demo板連接上M1和M2電機,注意代碼中的M1,M2電機參數要和實際硬件連接的匹配上,然后按如下步驟進行測試。
- 使用freemaster打開pmp文件;
- 選擇剛剛編譯的內核0的elf文件;
- 將PC和評估板通過USB-TypeC線連接上,并在freemaster界面選擇對應的COM口(如果只顯示為串行設備,沒有XR的字樣,需要裝一下驅動);
- 忽略彈出的警告,并點擊Go按鈕連接評估板;
- 設置兩個電機的目標速度,并打開電機,運行一段時間之后的界面如下圖:
-
mcu
+關注
關注
146文章
17824瀏覽量
360180 -
步進電機
+關注
關注
152文章
3155瀏覽量
149112 -
熱管理
+關注
關注
11文章
468瀏覽量
22281 -
無刷電機
+關注
關注
60文章
876瀏覽量
47071 -
立功科技
+關注
關注
0文章
30瀏覽量
6260
發布評論請先 登錄
s32k324使用HSE進行AES加密遇到的疑問求解
s32k324調試時出現MemManage和HardFault怎么解決?
Lockstep core in S32K344即使有2個內核也不能同時處理雙重任務?
S32K324中的ADC可以用于兩個不同的模擬輸入嗎?
如何在S32DS中設置以太網VLAN ID?
S32DS 3.4版本配置工具生成代碼錯誤是怎么回事?如何修改?
S32k324 DMA S/G模式能否繼續?
S32K3xx中哪些情況會導致adc自檢算法返回失敗?
S32DSV3.5能否從IPCF V3.7.0導入適用于S32K324的IPCF例程?
S32K324重置失敗和緩存問題如何處理?
s32k324控制器PWM輸出占空比顯示出2.7到3%的差異是什么原因造成的?
立功科技汽車防盜方案介紹

評論