# 快速评估立功科技基于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快速入门

如果觉得本文对你有用,不妨给个一键三连!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/82984.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】 Model Sparsity Can Simplify Machine Unlearning

Model Sparsity Can Simplify Machine Unlearning 背景主要内容Contribution Ⅰ:对Machine Unlearning的一个全面的理解Contribution Ⅱ:说明model sparsity对Machine Unlearning的好处Pruning方法的选择sparse-aware的unlearning framework Experiments…

stm32控制蜂鸣器源代码(附带proteus线路图)

说明: 1 PB0输出0时,蜂鸣器发生; 2 蜂鸣器电阻值如果太大会导致电流太小,发不出声音; 3蜂鸣器额定电压需要设置得低一点,可以是2V,但不能高于3V,这更右上角的电阻值有关系&#x…

每天一道leetcode:剑指 Offer 34. 二叉树中和为某一值的路径(中等图论深度优先遍历递归)

今日份题目: 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例1 输入:root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSu…

数据结构 - 基本概念和术语

基础概念之间的关系大致如下: 一、数据、数据元素、数据项和数据对象 数据 > 数据对象 > 数据元素 > 数据项 类比数据库,这四个概念代表的含义如下所示: 数据:整个数据库的所有数据数据对象:这个数据库的…

数据结构之并查集

并查集 1. 并查集原理2. 并查集实现3. 并查集应用3.1 省份数量3.2 等式方程的可满足性 4. 并查集的优缺点及时间复杂度 1. 并查集原理 并查表原理是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。并查集的思想是用一个数组表示了整片森林&#xff0…

opencv进阶08-K 均值聚类cv2.kmeans()介绍及示例

K均值聚类是一种常用的无监督学习算法,用于将一组数据点分成不同的簇(clusters),以便数据点在同一簇内更相似,而不同簇之间差异较大。K均值聚类的目标是通过最小化数据点与所属簇中心之间的距离来形成簇。 当我们要预测…

[国产MCU]-W801开发实例-GPIO输入与中断

GPIO输入与中断 文章目录 GPIO输入与中断1、硬件准备2、软件准备3、驱动实现4、驱动测试W801的GPIO支持软件配置中断,中断触发方式包含:上升沿触发、下降沿触发、高电平触发、低电平触发。本文在前面[ 国产MCU]-W801开发实例-按键与GPIO输入的基础上实现GPIO中断配置。 1、硬…

【Linux网络】网络编程套接字 -- 基于socket实现一个简单UDP网络程序

认识端口号网络字节序处理字节序函数 htonl、htons、ntohl、ntohs socketsocket编程接口sockaddr结构结尾实现UDP程序的socket接口使用解析socket处理 IP 地址的函数初始化sockaddr_inbindrecvfromsendto 实现一个简单的UDP网络程序封装服务器相关代码封装客户端相关代码实验结…

跟着NC学作图 | 使用python绘制折线图

写在前面 今天分享一篇使用Python绘制折线图的教程,在我们前提的教程中,关于使用R语言绘制折线图的教程也很少,跟着PC学作图 | 小提琴图Tufte箱形图折线图的绘制教程也只有相关一部分。 Python自己也是一直在学习,那么也就顺带分…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)九:自定义组件封装下

一、本章内容 续上一张,本章实现一些自定义组件的封装,包括文件上传组件封装、级联选择组件封装、富文本组件封装等。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管

Azure VM上意外禁用NIC如何还原恢复

创建一个windows虚拟机,并远程连接管理员的方式打开powershell 首先查看虚拟网卡,netsh interface show interface 然后禁用虚拟网卡 ,netsh interface set interface Ethernet disable 去Azure虚拟机控制台,打开串行控制台 控制台中键入cmd,…

飞天使-jenkins进行远程linux机器修改某个文件的思路

文章目录 jenkins配置的方式jenkins中执行shell的思路 jenkins配置的方式 jenkins中执行shell的思路 下面的脚本别照抄,只是一个思路 ipall"$ips"# 将文本参数按行输出为变量 while IFS read -r line; doecho "$line" if [[ ! -z $line ]] &…

Redis数据结构之String

String 类型是 Redis 的最基本的数据类型,一个 key 对应一个 value,可以理解成与Memcached一模一样的类型。 String 类型是二进制安全的,意思是 Redis 的 String 可以包含任何数据,比如图片或者序列化的对象,一个 Redi…

使用 Apache Kafka 和 Go 将数据引入 OpenSearch

需要编写自定义集成层来满足数据管道中的特定要求?了解如何使用 Go 通过 Kafka 和 OpenSearch 实现此目的。 可扩展的数据摄取是OpenSearch等大规模分布式搜索和分析引擎的一个关键方面。构建实时数据摄取管道的方法之一是使用Apache Kafka。它是一个开源事件流平台…

常用消息中间件介绍

RocketMQ 阿里开源,阿里参照kafka设计的,Java实现 能够保证严格的消息顺序 提供针对消息的过滤功能 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积能力 RabbitMQ Erlang实现,非常重量级,更适…

ubuntu上使用osg3.2+osgearth2.9

一、介绍 在ubuntu上使用osgearth加载三维数字地球,首先要有osg和osgearth的库,这些可以直接使用apt-get下载安装,但是版本有些老,如果需要新版本的就需要自己编译。 #查看现有版本 sudo apt-cache madison openscenegraph #安装…

Vim在Mac电脑中的下载与安装方法:MacVim

本文介绍在Mac系统电脑中,下载、安装文本编辑器Vim软件(MacVim软件)的具体方法。 在Mac系统电脑中,原本就带有一个非图形界面的Vim;只要我们在终端中,输入如下的代码,就可以查看系统自带的非图形…

探索Perfetto:开源性能追踪工具的未来之光

探索Perfetto:开源性能追踪工具的未来之光 1. 引言 A. 介绍Perfetto的背景和作用 随着移动应用、桌面软件和嵌入式系统的不断发展,软件性能优化变得愈发重要。在这个背景下,Perfetto作为一款开源性能追踪工具,日益引起了开发者…

VR全景加盟项目如何开展?如何共赢VR时代红利?

VR全景作为一个新兴蓝海项目,相信有着很多人刚接触VR行业的时候都会有这样的疑问:VR全景加盟后项目如何开展?今天,我们就从项目运营的三个阶段为大家讲解。 一、了解项目时 目前VR全景已经被应用到各行各业中去,学校、…

JAVA设计模式总结之23种设计模式

一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计…