TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002

文章目录

    • 1. 前言
    • 2. 烧录数据准备
      • 2.1 OTP Wizard的下载与安装
      • 2.2 OTP Wizard的配置
      • 2.3 OTP寄存器烧录数据提取
    • 3. OTP烧录和仿真的流程
      • 3.1 OTP烧录流程
      • 3.2 OTP仿真流程
    • 4. 验证测试
      • 4.1 测试代码
      • 4.2 测试环境
      • 4.3 测试情况
    • 5. 参考资料

1. 前言

本篇文章是TLD7002学习笔记的第三篇,主要是介绍如何使用S32K144EVB烧录TLD7002-16ES。主要分为三部分,第一部分介绍OTP寄存器的烧录数据准备,第二部分介绍烧录和仿真OTP寄存器的流程,第三部分介绍烧录环境的搭建和测试情况。

在前面的学习笔记中有提到,想要正常控制TLD7002-16ES,需要预先对TLD7002-16ES进行OTP烧录。英飞凌官网是有针对TLD7002-16ES的OTP烧录板进行售卖的(如下图所示),但是价格比较昂贵。如果只是前期简单评估下,并不确定后续是否使用TLD7002-16ES,中小型客户很难进行购买。

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第1张图片

因此,笔者基于NXP的S32K144EVB-Q100官方评估板(如下图)实现了对TLD7002-16ES的OTP寄存器的在线烧录。读者如有需要,可以基于笔者文末提供的程序进行移植。

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第2张图片

2. 烧录数据准备

有关烧录数据的准备,笔者借用Infenion官方的上位机OTP Wizard,该工具可以在配置完相应的参数之后导出需要填入寄存器的数据。具体操作方式如下文。

2.1 OTP Wizard的下载与安装

OTP Wizard可以在Infenion官网获取,将下面的链接复制到浏览器打开:

  • OTP Wizard - Infineon Developer Center

选择最新的1.2.0版本进行下载安装。
TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第3张图片

2.2 OTP Wizard的配置

  1. 安装完OTP Wizard之后,打开该软件,点击OTP Read/Write选项卡,出现OTP Management子选项卡,填写待烧录的器件地址和OTP配置组的名字(自定义),如下图所示。

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第4张图片

  1. 切换到PWM_DC GPIO0/1子选项卡,配置如下图所示,
  • 左边一列用于设置GPIN1直接控制时,16个通道各自的PWM占空比;
  • 右边-列用于设置进入fail-safe模式或者GPIN0直接控制时,16个通道各自的PWM占空比

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第5张图片

  1. 切换到SAFE_ST-ISET-PWM-PHASE子选项卡,配置如下图所示,
  • 左边一列用于设置16通道各自的电流;
  • 右边第一行用于设置进入fail-safe模式时,16个通道是否打开;
  • 右边第二行用于设置每个通道的移相功能是否开启;
  • 右边第三行用于设置出现故障时去抖循环次数(Diag.Debounce Config.)以及是否使能低功耗初始化模式。

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第6张图片

  1. 切换到CFG0 to CFG7子选项卡,配置如下图所示,
  • CFG0部分用于配置PWM的频率、移相时间以及GPIN0,GPIN1的相关配置;
  • CFG1部分用于配置诊断开启的阈值(VDEN)、诊断采用的延时以及故障引脚的使能;
  • CFG2部分用于配置是否使能相邻管脚之间的短路诊断;
  • CFG3部分用于配置单颗LED短路阈值,该电压需要高于最大单颗LED正向电压,低于最小LED串正向电压。
  • CFG4部分配置LED的阳极连接到VLED还是VS;
  • CFG5和CFG6部分配置GPIN0、GPIN0直接控制时,16个通道是否打开;
  • CFG7部分配置看门狗超时时间,输出通道的电源短路阈值,错误管理配置等功能

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第7张图片

  1. 切换到CFG8 to CFG11子选项卡,配置如下图所示,
  • CFG8部分配置热降额以及负载分流功能
  • CFG9部分配置HSLI总线的参数
  • CFG10部分配置热降额的参考源以及相关的GPIN0引脚电压,用于外接NTC时使用
  • CFG11部分用于存放用户自定义的数据

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第8张图片

  1. 切换到Read-only registers子选项卡,使用保存快捷建(crtl+s),关闭弹出的选择保存路径,可以看到上位机计算出的CRC值。
  • 该CRC值由地址为0x83到地址为0xA5的OTP寄存器值通过CRC算法计算而来,用于保护这部分OTP寄存器数据的完整性,CRC值会存放到地址为0xA6的寄存器中。
  • 该CRC算法的初始值为0xFFFF,多项式为0x1021。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpY8qHwq-1687997858172)(https://files.mdnice.com/user/23173/0ac05524-cfef-4545-873b-524a937164b5.png)]

  1. 保存配置文件到自己选定的位置。

上文展示的配置参数用于对着笔者自己做的demo板情况,读者需要根据自己实际应用的情况选择合适自己的参数。如果想要对参数有更进一步的了解,可以详细阅读文末的参考资料。

2.3 OTP寄存器烧录数据提取

用记事本打开刚才保存的配置文件,拉倒最下方,如下图所示,在HEX_DATA_16BIT后面有40组数据,对应着地址从0x83到0xAA的40个OTP寄存器的值(16bit),将这部分数据摘取出来,后面的程序需要用到。

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第9张图片

3. OTP烧录和仿真的流程

TLD7002-16ES的OTP寄存器也支持仿真。如果芯片紧张的情况下,可以使用仿真对OTP寄存器进行配置。仿真的情况下,芯片掉电之后对OTP寄存器的配置就会丢失。

OTP烧录和仿真的硬件电路基本一致。给VS供电,使用MCU的io口控制GPIN0,通过HSLI总线接口发送命令进行OTP烧录或者OTP仿真;区别主要是VS的供电范围不一样,OTP烧录需要VS电压在15.5V到20V,而OTP仿真只需要VS电压在6V到20V即可。

OTP烧录和仿真的软件流程也非常类似。下面分别介绍OTP烧录和仿真流程。

3.1 OTP烧录流程

OTP烧录流程如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ao2Oek3x-1687997858173)(https://files.mdnice.com/user/23173/104293d3-ab0e-4695-8c07-5daaf33b7aee.png)]

  • 首先发两次进行INIT模式的命令,用于同步滚动计数器;
  • 然后修改帧间隔为50us,减少烧录流程的时间;
  • 然后发送进入OTP模式的命令,等待1ms之后然后拉高GPIN0;
  • 接着写入OTP烧录秘钥0xA47B到地址为0x81寄存器OTP_WRITE中,此时芯片进入OTP编程模式;
  • 接着将之前保存的烧录数据按顺序写入0x83到0xAA的寄存器中,因为OTP烧录需要一些时间,建议发送命令之后多等待一些时间(间隔时间参考流程图)。
  • 等烧录完成后,拉低GPIN0,并让芯片进入INIT模式;
  • 清除芯片的故障,读取OTP_STATUS寄存器,确认OTP烧录的情况;
  • 如果OTP烧录OK,切换芯片进入OTP模式,然后读取0x83到0xAA的OTP寄存器数据,和需要写入的数据对比是否一致;
  • 最后再读取下OTP_STATUS寄存器。

3.2 OTP仿真流程

OTP仿真流程如下图:

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第10张图片

OTP仿真流程和烧录流程类似,主要是进入OTP仿真模式需要写入的值和写入的寄存器不一样,相应流程就不赘述了。

4. 验证测试

4.1 测试代码

测试代码已上传到gitee,链接如下:

  • https://gitee.com/Yingming_Cai/s32-k144_-tld7002_-otp_-programming

4.2 测试环境

整个测试环境的框图如下所示:

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第11张图片

  • S32K144EVB的供电和TLD7002-16ES的供电来源于统一路经;
  • S32K144的PTD4控制TLD7002-16ES的GPIN0;
  • S32K144的PTB0、PTB1通过CAN SBC(UJA1169)连接到TLD7002-16ES的HSLI总线

因为S32K144EVB板子上原本是PTE4、PTE5连接到UJA1169,这两个引脚没法复用为LPUART,所以需要将PTB0,PTB1连接到PTE4、PTE5。

4.3 测试情况

整个程序的功能为:

  • 按下SW2会进行OTP烧录或者OTP仿真(通过开关宏定义USE_EMULATE实现);
  • 按下SW3会进行OTP读取。
  • 通过OPENSDA连接电脑打印OTP烧录、仿真以及读取的信息。

OTP仿真时的串口打印情况如下:

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第12张图片

OTP烧录时的串口打印情况如下:

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002_第13张图片

通过打印的信息可知,烧录是成功的,并且多次读取OTP寄存器的值,和预期写入的值是一致的。

5. 参考资料

  • Application Note: Infineon-TLD7002-16ES OTP (Chinese)

  • User Manual: Infineon-TLD7002-16ES-UM-v01_20-EN

你可能感兴趣的:(车灯,TLD7002)