# 快速評估立功科技基于S32K324的TMS方案

文章目錄

    • 1.前言
    • 2.立功科技的TMS方案介紹
      • 2.1 介紹資料
      • 2.2 簡要介紹
    • 3.S32K3_TriMotor評估板測試
      • 3.1 環境搭建
        • S32 Design Studio for S32 Platform 3.4安裝
        • RTD 2.0.0安裝
        • Freemaster 3.2
      • 3.2 例程測試
      • 3.3 例程適配
      • 3.4 雙核燒錄
      • 3.5 測試

1.前言

最近和一些做汽車水泵/風機的客戶交流時,都提到要預研TMS(熱管理域控制器)方案。希望使用一個高性能的車規MCU,同時控制三個無刷電機(水泵/風扇)、多個有刷電機(空調風門)和多個步進電機(空調出風口/進氣格柵/電子膨脹閥)。

NXP主推的S32K3系列中的雙核MCU—S32K324(主頻160MHz * 2)能夠符合該要求,正好筆者手上有一套立功科技的基于S32K324的TMS方案評估板—S32K3_TriMotor,所以記錄下使用的過程,方便申請了該評估板的讀者快速上手。

2.立功科技的TMS方案介紹

2.1 介紹資料

關于立功科技的TMS方案的特點和演示視頻,如下兩篇文章介紹的比較詳細,推薦閱讀。

  • 熱管理域控制器方案:三電機控制實戰

  • 【解決方案】單芯片TMS域控方案,熱管理應用新趨勢

2.2 簡要介紹

對立功科技的TMS方案進行下簡要介紹。

  • 整體的方案框圖如下:

  • 功能特性:

    • 支持三個BLDC的無感FOC速度電流雙閉環控制;
    • 針對熱管理系統支持多路溫度、電壓電流采集;
    • 支持多路直流有刷電機有感位置控制;
    • 支持多路步進電機微步控制;
    • 支持多路High Side閥門控制;
    • 完善的保護功能,過壓欠壓,過流、限流、堵轉、過溫、缺相保護等;
    • 上位機FreeMASTER已適配,三電機獨立配置界面。
  • 優勢亮點:

    • 控制效率高,極大提高熱量的能量利用效率;
    • 器件集成化,極大精簡電子系統布局;
    • 大幅減少MCU、線束等數量,降低車輛生產成本;
    • 多個系統集成,方便系統管理;
    • 響應速度快,增強安全性。

3.S32K3_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安裝

  1. S32DS 3.4下載地址為:https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=S32DS-3-4,瀏覽器打開并登錄NXP賬號,選擇如下版本:

  1. 點擊Previous選擇S32DS3.4版本。

  2. 選擇windows版本的安裝包并下載。

  3. 點擊License Keys,在彈出的界面找到激活碼并保存好,在安裝時會用上。(一個激活碼最多使用101臺機器)

  4. 點擊安裝包進行安裝,安裝過程中需要輸入激活碼時使用前面保存的激活碼即可,并選擇online激活的方式。

RTD 2.0.0安裝

  1. 打開S32DS 3.4,選擇好workspace,并勾選作為默認工作區。

  2. 等待S32DS 3.4檢查更新。

  3. 更新檢查完之后,會彈出可更新以及已安裝的組件。勾選S32K3 RTD AUTOSAR 4.4 Version 2.0.0,點擊install/update。同時去掉always show的勾選,這樣就不會每次打開彈出更新檢查的界面。

  4. 所有相關的組件都會自動加入更新列表,點擊next,再點擊finish進行更新。

  5. 更新完之后重啟下S32DS 3.4,點擊Help->S32DS Extensions and Updates

  6. 點擊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 例程測試

  1. 解壓立功科技提供的例程,名稱為:
  • MCTPTX1AK324_Triple_PMSM_RDB_230526a.zip
  1. 將解壓后的文件夾復制到S32DS 3.4的workspace,并復制其所在的路徑。

  2. 打開S32DS 3.4,按下圖方式打開例程。

  3. 兩個工程分別是內核0和內核1的工程,依次選擇兩個工程并點擊Debug Flash,如果工程ok,會在控制臺看到編譯生成的elf文件。

  1. 雙擊打開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 例程適配

目前筆者手上有兩個參數不同的電機,需要對立功科技提供的例程進行一些適配工作才能正常運轉。具體適配工作如下:

  1. 結合兩個電機M1、M2的參數,使用MCAT工具配置生成對應的文件,分別為M1_PMSM_appconfig.hM1_PMSM_appconfig.h,并添加到內核0工程下的src/config文件夾下:

  2. 然后將M1_PMSM_appconfig.hM1_PMSM_appconfig.h中的宏定義分別加上M1和M2前綴,方便后續調用。

  3. 整個例程中需要用到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);
  1. MCAT初始化函數改起來比較方便,只需要將內部的賦值宏定義加上M1或者M2的前綴即可。

M1_MCAT_Init函數修改

M2_MCAT_Init函數修改

  1. 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);
}
  1. 所以需要修改下CalcOpenLoop函數,同時調用該函數的地方也需要做相應的修改。整個的調用關系如下圖:

  2. 同時在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; //增加
}

  1. 然后保存編譯,生成新的內核0的elf文件。

3.4 雙核燒錄

  1. 將使用jlink連接PC和demo板,打開j-flash,選擇S32K324,如下圖。

  2. 點擊Open data file,選擇M0內核的elf文件。

  3. 等待M0內核的elf加載完之后,選擇Merge data file,選擇M1內核的elf文件。

  4. 兩個elf合并成功會在log窗口有提示,接著點擊connect,成功之后按F7燒錄即可。

3.5 測試

將demo板連接上M1和M2電機,注意代碼中的M1,M2電機參數要和實際硬件連接的匹配上,然后按如下步驟進行測試。
測試現場

  1. 使用freemaster打開pmp文件;
  2. 選擇剛剛編譯的內核0的elf文件;
  3. 將PC和評估板通過USB-TypeC線連接上,并在freemaster界面選擇對應的COM口(如果只顯示為串行設備,沒有XR的字樣,需要裝一下驅動);
  4. 忽略彈出的警告,并點擊Go按鈕連接評估板;
  5. 設置兩個電機的目標速度,并打開電機,運行一段時間之后的界面如下圖:

關于freemaster詳細的操作,可以參考之前的文章:

  • FreeMASTER快速入門

如果覺得本文對你有用,不妨給個一鍵三連!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41447.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41447.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法概述-Java常用算法

算法概述-Java常用算法 1、算法概念2、算法相關概念3、算法的性能評價4、算法應用歸納 1、算法概念 廣泛算法定義:算法是模型分析的一組可行性的、確定的和有窮的規則。 經典算法特征:有窮性、確切性、輸入、輸出和可行性。 常用的算法包括遞推、遞歸、窮…

maven如何建立JavaWeb項目并連接數據庫,驗證登錄

這里是建立建立web項目:Maven如何創建Java web項目(純干貨版)!!!_明天更新的博客-CSDN博客 我們主要演示如何連接數據庫驗證登錄。 1.在webapp目錄下創建我們的登錄頁面:index.jsp 還需要再…

Android漏洞之戰——整體加殼原理和脫殼技巧詳解

一、前言 為了幫助更加方便的進行漏洞挖掘工作,前面我們通過了幾篇文章詳解的給大家介紹了動態調試技術、過反調試技術、Hook技術、過反Hook技術、抓包技術等,掌握了這些可以很方便的開展App漏洞挖掘工作,而最后我們還需要掌握一定的脫殼技巧…

opencv基礎:幾個常用窗口方法

開始說了一些opencv中的一些常用方法。 namedWindow方法 在OpenCV中,namedWindow函數用于創建一個窗口,并給它指定一個名字。這個函數的基本語法如下: import cv2cv2.namedWindow(窗口名稱, 標識 )窗口名稱:其實窗口名稱&…

Azure創建自定義VM鏡像

創建一個虛擬機,參考 https://blog.csdn.net/m0_48468018/article/details/132267096,入站端口開啟80,22 進行遠程遠程連接 使用CLI命令部署NGINX,輸入如下命令 sudo su apt-get update -y apt-get install nginx git -y最后的效果 4. 關閉…

非結構化數據庫-MinIO基本集成

是什么 MinIO 是一個高性能的分布式對象存儲服務,適合存儲非結構化數據,如圖片,音頻,視頻,日志等。對象文件最大可以達到5TB。 安裝啟動 mkdir -p /usr/local/minio cd /usr/local/minio# 下載安裝包 wget https:/…

pandas.errors.ParserError: Error tokenizing data. C error: out of memory

目錄 用pandas讀入數據的時候發現數據讀入時出錯了,數據量感覺也不是很大 十萬多條數據。電腦內存是16個G。報錯信息為:“ pandas.errors.ParserError: Error tokenizing data. C error: out of memory” 想想不對啊 昨天都可以順利的讀入,現…

你真的掌握了 Python 的七種參數了嗎?

不知道為什么網上總有人說 Python 的參數類型有 4 種啊,5 種啊,殊不知其實有 7 種。Python 的 7 種參數分別是 默認參數、位置參數、關鍵字參數、可變長位置參數、可變長關鍵字參數、僅位置參數 和 僅關鍵字參數。小白可能沒見過“可變長參數”&#xff…

lvs-dr模式

一,數據包流向: 1,cilent向目標vip發出請求,dir接收,此時ip報頭數據幀頭信息。 2,dir根據負載均衡算法給rs(rip),將rip所在網卡的mac地址作為目標的mac地址,發…

深入解析Spring基本概念和核心思想

文章目錄 基本概念IoCIoc容器IoC理解IoC的步驟Spring中使用ioc的步驟 AopAop的理解Aop的步驟 控制反轉誰控制誰? 控制什么?為何叫反轉(對應于正向)?哪些方面反轉了?為何需要反轉? 依賴什么是依賴(按名稱理解、按動詞理解)? 誰依賴于誰? 為什么需要依賴? 依賴什么東西?…

vscode如何漢化

首先我們到vscode官網下載 鏈接如下: Visual Studio Code - Code Editing. Redefined 根據自己需要的版本下載就好 下載并且安裝完畢之后 運行vscode 然后按快捷鍵 CTRLSHIFTX 打開安裝擴展界面 搜索簡體中文 安裝就可以了 謝謝大家觀看

npm ERR!Cannot read properties of null(reading ‘pickAlgorithm’)報錯問題解決

當在使用npm包管理器或執行npm命令時,有時候會遇到“npm ERR!Cannot read properties of null(reading ‘pickAlgorithm’)”這個錯誤提示,這是一個常見的npm錯誤。 這個錯誤提示通常說明在使用npm包管理器時,執行了某個npm命令,…

學習筆記整理-正則表達式-01-認識正則

一、基本認識 1. 什么是正則表達式 正則表達式(regular expression)描述了字符串"構成模式",經常被用于檢查字符串是否符合預定的格式要求。 用一個例子快速演示正則表達式基本使用方法:檢查某個字符串是否是6位數字 // 要檢查的字符串va…

第五課:聯合體或共用體 Union

功能描述:聯合體或共用體 Union 的介紹及使用方法 一、Union 簡介 共同體(union)也稱為聯合體,它能在同一個內存空間中存儲不同的數據類型(不是同時存儲),其典型的用法是,設計一種表…

Vue3 —— watchEffect 高級偵聽器

該文章是在學習 小滿vue3 課程的隨堂記錄示例均采用 <script setup>&#xff0c;且包含 typescript 的基礎用法 前言 Vue3 中新增了一種特殊的監聽器 watchEffect&#xff0c;它的類型是&#xff1a; function watchEffect(effect: (onCleanup: OnCleanup) > void,o…

整理mongodb文檔:find方法查詢數據

個人博客 整理mongodb文檔:find方法查詢數據 求關注&#xff0c;求批評&#xff0c;求指出&#xff0c;如果哪兒不清晰&#xff0c;請指出來&#xff0c;謝謝 文章概敘 如題&#xff0c;本文講的是如何用find查詢數據&#xff0c;如何在數組、字段、對象中查詢&#xff0c;以…

自然語言處理技術:NLP句法解析樹與可視化方法

自然語言處理(Natural Language Processing,NLP)句法解析樹是一種表示自然語言句子結構的圖形化方式。它幫助將句子中的每個詞匯和短語按照語法規則連接起來,形成一個樹狀結構,以便更好地理解句子的語法結構和含義。句法解析樹對于理解句子的句法關系、依存關系以及語義角…

Python實現輕量級WEB服務器接收HTTP提交的RFID刷卡信息并回應驅動讀卡器顯示播報語音

本示例使用的設備&#xff1a;RFID網絡WIFI無線TCP/UDP/HTTP可編程二次開發讀卡器POE供電語音-淘寶網 (taobao.com) # -*- coding: utf-8 -*- import time import datetime import socket import threading#將中文信息轉換編碼&#xff0c;顯示文字、TTS語音都需要轉換-------…

從入門到精通Python隧道代理的使用與優化

哈嘍&#xff0c;Python爬蟲小伙伴們&#xff01;今天我們來聊聊如何從入門到精通地使用和優化Python隧道代理&#xff0c;讓我們的爬蟲程序更加穩定、高效&#xff01;今天我們將對使用和優化進行一個簡單的梳理&#xff0c;并且會提供相應的代碼示例。 1. 什么是隧道代理&…

SpringCloud Gateway:status: 503 error: Service Unavailable

使用SpringCloud Gateway路由請求時&#xff0c;出現如下錯誤 yml配置如下&#xff1a; 可能的一種原因是&#xff1a;yml配置了gateway.discovery.locator.enabledtrue&#xff0c;此時gateway會使用負載均衡模式路由請求&#xff0c;但是SpringCloud Alibaba刪除了Ribbon的…