# 快速评估立功科技基于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.mzph.cn/news/41447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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:/…

lvs-dr模式

一,数据包流向: 1,cilent向目标vip发出请求,dir接收,此时ip报头数据帧头信息。 2,dir根据负载均衡算法给rs(rip),将rip所在网卡的mac地址作为目标的mac地址,发…

vscode如何汉化

首先我们到vscode官网下载 链接如下: Visual Studio Code - Code Editing. Redefined 根据自己需要的版本下载就好 下载并且安装完毕之后 运行vscode 然后按快捷键 CTRLSHIFTX 打开安装扩展界面 搜索简体中文 安装就可以了 谢谢大家观看

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隧道代理的使用与优化

哈喽&#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的…

无涯教程-Perl - setpwent函数

描述 此功能将枚举设置(或重置)到密码条目集的开头。应该在第一次调用getpwent之前调用此函数。 语法 以下是此函数的简单语法- setpwent返回值 此函数不返回任何值。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perlwhile(($name, $passwd, $uid, $gid, $quota, …

C++写文件,直接写入结构体

C写文件&#xff0c;直接写入结构体 以前写文件都是写入字符串或者二进制再或者就是一些配置文件&#xff0c;今天介绍一下直接写入结构体&#xff0c;可以在软件参数较多的时候直接进行读写&#xff0c;直接将整个结构体写入和读取&#xff0c;看代码&#xff1a; #include&…

tomcat中的BIO与NIO发展

tomcat中的NIO发展 前言 Tomcat目前支持BIO&#xff08;阻塞 I/O&#xff09;、NIO&#xff08;非阻塞 I/O&#xff09;、AIO&#xff08;异步非阻塞式IO&#xff0c;NIO的升级版&#xff09;、APR&#xff08;Apache可移植运行库&#xff09;模型&#xff0c;本文主要介绍NI…

设计模式——适配器模式

引入实例 说起适配器其实在我们的生活中是非常常见的&#xff0c;比如&#xff1a;学校的宿舍的电压都比较低&#xff0c;而有的学生想使用大功率电器&#xff0c;宿舍的就会跳闸&#xff0c;然而如果你使用一个适配器&#xff08;变压器&#xff09;就可以使用了&#xff08;…

深入理解linux内核--块设备驱动程序

块设备的处理 块设备驱动程序上的每个操作都涉及很多内核组件&#xff1b;其中最重要的一些如图14-1所示。 例如&#xff0c;我们假设一个进程在某个磁盘文件上发出一个read()系统调用 ——我们将会看到处理write请求本质上采用同样的方式。 下面是内核对进程请求给予回应的一…

煤矿调度IP语音对讲广播模块一键求助对讲矿用调度通信系统SIP语音对讲求助终端

硬件接口描述 SV-2101VP/ SV-2103VP系列网络音频模块&#xff0c;所有外部连接采用端子&#xff0c;电源采用2.0mm的端子&#xff0c;网络采用标准RJ45连接器&#xff0c;其他都是1.25mm的连接器。 端口类型定义 P ———— 电源 AI ———— 模拟输入&#xff08;在这里是音…

微信小程序前后端开发快速入门(完结篇)

这篇是微信小程序前后端快速入门完结篇了&#xff0c;今天利用之前学习过的所有知识做一个新的项目「群登记助手v1.0」小程序。 整体技术架构&#xff1a;小程序原生前端小程序云开发。 经历了前面教程的学习&#xff0c;大家有了一定的基础&#xff0c;所以本次分享重心主要是…

Ubuntu服务器service版本初始化

下载 下载路径 官网&#xff1a;https://cn.ubuntu.com/ 下载路径&#xff1a;https://cn.ubuntu.com/download 服务器&#xff1a;https://cn.ubuntu.com/download/server/step1 点击下载&#xff08;22.04.3&#xff09;&#xff1a;https://cn.ubuntu.com/download/server…