0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

立功科技基于S32K324的TMS方案介绍

CHANBAEK 来源:Auto FAE进阶之路 作者: Yingming 2023-11-22 11:37 次阅读

1前言

最近和一些做汽车水泵/风机的客户交流时,都提到要预研TMS(热管理域控制器)方案。希望使用一个高性能的车规MCU,同时控制三个无刷电机(水泵/风扇)、多个有刷电机(空调风门)和多个步进电机(空调出风口/进气格栅/电子膨胀阀)。

NXP主推的S32K3系列中的双核MCU---S32K324(主频160MHz * 2)能够符合该要求,正好笔者手上有一套立功科技的基于S32K324的TMS方案评估板---S32K3_TriMotor,所以记录下使用的过程,方便申请了该评估板的读者快速上手。

2立功科技的TMS方案介绍

2.1 介绍资料

关于立功科技的TMS方案的特点和演示视频,如下两篇文章介绍的比较详细,推荐阅读。

2.2 简要介绍

对立功科技的TMS方案进行下简要介绍。

  • 整体的方案框图如下:

图片

  • 功能特性:
    • 支持三个BLDC的无感FOC速度电流双闭环控制;
    • 针对热管理系统支持多路温度、电压电流采集;
    • 支持多路直流有刷电机有感位置控制;
    • 支持多路步进电机微步控制;
    • 支持多路High Side阀门控制;
    • 完善的保护功能,过压欠压,过流、限流、堵转、过温、缺相保护等;
    • 上位机FreeMASTER已适配,三电机独立配置界面。
  • 优势亮点:
    • 控制效率高,极大提高热量的能量利用效率;
    • 器件集成化,极大精简电子系统布局;
    • 大幅减少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安装

  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. 设置两个电机的目标速度,并打开电机,运行一段时间之后的界面如下图:图片
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16248

    浏览量

    345605
  • 步进电机
    +关注

    关注

    149

    文章

    2991

    浏览量

    146435
  • 热管理
    +关注

    关注

    11

    文章

    401

    浏览量

    21500
  • 无刷电机
    +关注

    关注

    57

    文章

    768

    浏览量

    45233
  • 立功科技
    +关注

    关注

    0

    文章

    21

    浏览量

    4543
收藏 人收藏

    评论

    相关推荐

    Lockstep core in S32K344即使有2个内核也不能同时处理双重任务?

    我对解耦核心(S32K324)和锁步核心(S32K344)有疑问Lockstep core in S32K344 即使有2个内核也不能同时处理双重任务? 如果我的应用程序需要性能和较低的安全性,那么
    发表于 03-14 08:37

    S32K324中的ADC可以用于两个不同的模拟输入吗?

    S32K324中,我从参考手册中了解到有 72 个 ADC 通道(标准和精度)。我附上相关部分的截图。 在 S32K324 的信号表 excel 中,我可以看到一些 ADC 被分配到两个不同的引脚
    发表于 03-14 09:52

    S32K324如何从gpio读取数据?

    对于 S32K324,如何从gpio读取数据?
    发表于 03-17 06:14

    如何获得s32k324 gpio引脚配置?

    我可以获得 s32k324 gpio 引脚配置吗?它不在参考手册中。无法理解用户按钮和 LED。请帮忙
    发表于 03-20 07:20

    如何在S32DS中设置以太网VLAN ID?

    我想在 S32K324 上设置以太网 VLAN ID,但在LWIP 示例和 S32DS 外设 UI中找不到任何信息。是否有关于如何设置以太网 VLAN ID 的示例或文档?
    发表于 03-20 06:49

    S32DS 3.4版本配置工具生成代码错误是怎么回事?如何修改?

    S32DS版本是3.4,安装了Update3,RTD是2.0.1版本,芯片使用的S32K324,创建新的工程,工程本身编译正常,但是打开配置工具,外设部分报错,提示代码生成失败,工程完全新建,无其他修改
    发表于 04-03 06:42

    S32k324 DMA S/G模式能否继续?

    S32k324在测试DMA scatter-gather 功能时,我发现dma 不能循环移动数据。DMA 将在第一次工作,然后 CSR_ESG 将变为 0,并且 dma 将不会循环回到第一个元素地址
    发表于 04-04 07:43

    S32K3xx中哪些情况会导致adc自检算法返回失败?

    我正在测试 S32K324 芯片上的 ADC 自检功能。为了测试ADC出错时能检测到ADC,在硬件电路上人为将ADC Reference high voltage设置为0来模拟ADC故障,但是ADC
    发表于 04-04 08:33

    请问有没有S32K324内核间中断通信的demo?

    请问有没有S32K324内核间中断通信的demo。
    发表于 05-18 07:43

    请问S32K344支持的最大SPI速率是多少?

    314、S32K324S32K344、S32K322 和S32K342 支持高达20 Mbps 的数据速率,S32K312 和
    发表于 05-18 10:47

    S32DSV3.5能否从IPCF V3.7.0导入适用于S32K324的IPCF例程?

    S32DSV3.5能否从IPCF V3.7.0导入适用于S32K324的IPCF例程?
    发表于 05-19 07:07

    S32K324重置失败和缓存问题如何处理?

    最近在用S32K324开发ECU时遇到了两个问题。 1. 在用PEmicro和S32DS调试软件时,通过上位机(CAN协议)发送报文复位程序。无论我使用哪种复位方法(API
    发表于 06-01 06:47

    s32k324控制器PWM输出占空比显示出2.7到3%的差异是什么原因造成的?

    嗨,我正在研究 nxp s32k324 控制器。PWM 输出占空比显示出 2.7 到 3% 的差异。当我们给出 0x4000 时,我们期望一个占空比为 50% 的 PWM 输出,但我们得到一个占空比
    发表于 06-09 06:32

    基于TI TMS320DM642平台的H.324可视电话设计

    TI TMS320DM642 芯片运算能力达4800MIPs,时钟频率600MHz,具有强大的多媒体数字信号处理能力。本文提出了一种TI TMS320DM642 平台上H.324 可视电话的设计
    发表于 06-20 08:52 19次下载

    LM324K 四路运算放大器

    电子发烧友网为你提供TI(ti)LM324K相关产品参数、数据手册,更有LM324K的引脚图、接线图、封装手册、中文资料、英文资料,LM324K真值表,LM324K管脚等资料,希望可以
    发表于 11-02 18:21
    LM<b class='flag-5'>324K</b> 四路运算放大器