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

news2024/10/5 12:52:59

文章目录

    • 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,中小型客户很难进行购买。

OTP Programmer board

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

S32K144EVB-Q100

2. 烧录数据准备

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

2.1 OTP Wizard的下载与安装

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

  • OTP Wizard - Infineon Developer Center

选择最新的1.2.0版本进行下载安装。
OTP Wizard

2.2 OTP Wizard的配置

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

OTP Management子选项卡

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

PWM_DC GPIO0/1子选项卡

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

SAFE_ST-ISET-PWM-PHASE子选项卡

  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部分配置看门狗超时时间,输出通道的电源短路阈值,错误管理配置等功能

CFG0-CFG7子选项卡

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

CFG8 to CFG11子选项卡

  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),将这部分数据摘取出来,后面的程序需要用到。

烧录数据

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仿真流程如下图:

OTP仿真流程

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

4. 验证测试

4.1 测试代码

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

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

4.2 测试环境

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

测试环境

  • 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仿真时的串口打印情况如下:

OTP仿真LOG

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

OTP烧录LOG

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

5. 参考资料

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

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

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

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

相关文章

设计模式第18讲——中介者模式

目录 一、什么是中介者模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构 5.1 抽象中介者(Mediator)——LogisticsCenter 5.2 抽象同事类(Colleague)——Participant 5…

Beego之Bee安装(Windows)以及创建,运行项目

一.简介 Bee是什么? bee工具是一个为了协助快速开发 Beego 项目而创建的项目,通过 bee 可以很容易的进行 Beego 项目的 创建、热编译、开发、测试和部署 Beego中文文档 Beego中文文档: Beego简介 安装前提 在安装bee之前,首先得提前安装好Go的…

【T3】打开财务报表提示不能登陆到服务器,请检查服务器配置。

【问题描述】 在使用畅捷通T3软件的时候, 打开【财务报表】提示:不能登陆到服务器(GUPR7FM),请检查服务器配置。 但是打开【总账系统】,填制凭证、查看报表等操作都正常。 【解决方法】 由于操作【总账系…

【Java高级编程】Java反射机制

Java反射机制 1、反射的概述1.1、本章的主要内容1.2、关于反射的理解1.3、体会反射机制的“动态性”1.4、反射机制能提供的功能1.5、相关API 2、Class类的理解与获取Class的实例2.1、Class类的理解2.2、获取Class实例的几种方式2.3、总结:创建类的对象的方式2.4、Cl…

生产者与消费者问题

本篇文章我们使用C探讨一下生产者与消费者问题. 1. 多线程的引入 我们学习了操作系统, 知道了进程和线程的概念, 但是如果不进行代码实战的话, 会很难理解它们. 特别是编程的初学者(比如我), 在了解了进程和线程后通常会感到疑惑: 多线程怎么用? 为啥我平时写代码没有使用到…

ATM机项目实战——准备

项目介绍 大概功能: 实现一个模拟ATM机存款、取款、转账功能的一个系统,可以查看打印交易明细,后台用户可以管理用户账户卡信息。 适合人群: 在校计算机专业的大学生,愿意从事JAVA开发的人群,具体基础的…

记一次系统的jar包本地化方案

重在思路 行内容器环境,tomcat版本是8.5,导致jar包冲突,优先调用了jar包中的方法,致使同名同路径下,改写的类方法失效,报java.lang.NoSuchMethodError错误,删除对应class后需要重新更新jar包到行内maven私服仓库,流程复杂,且不清楚哪些地方依然有重写方法的地方,设置tomcat加载…

基于SSM+jsp的二手车交易网站设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

DBeaver mysql socks5 代理

DBeaver mysql socks5 代理 测试连接报错 Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.切换代理,连接成功 参考 DBeaver 文档 代理配置

谈一谈面试算法的几个常见误区

下一篇我们就开始梳理面试算法的体系了,今天呢,有个问题有必要谈一下——如何正确对待算法,如何征服算法。 目录 1.如何平常心对待算法 2.关于准备算法面试的一些误区 1.如何平常心对待算法 在老师之前算法班的群里,有位同学分…

vue3创建项目(五)vite配置端口号

Vue3配置代理跨域和服务端口等配置,可以在 vite.config.js 进行配置。(类似用 vue-cli 的 vue.config.js) https://cn.vitejs.dev/config/第一步:首先在根目录下面创建vue.config.js import { defineConfig } from vite import vue from vite…

CubeMx打不开/不兼容大于java8的解决方案

最近在学习stm32,需要用到cubemx,但是软件都装好了却死活打不开 最后才发现是java版本的问题,cubemx只支持java8(至少java14,16,17,20亲测都不行) 于是便把java8又装了回来,但是又有新问题 不知道为什么,即便环境变量已…

Hologres弹性计算在OLAP分析上的实践和探索

作者:王奇 阿里云Hologres研发 简介: 1、本文介绍了OLAP分析在大数据分析中的位置 2、分析并介绍目前大数据OLAP遇到的分析性能、资源隔离、高可用、弹性扩缩容等核心问题 3、解析阿里云Hologres是如何解决极致性能、弹性、业务永续、性价比等核心刚需的…

从0到1 关于MySQL的数据库和表

一个字:细腻。 目录 1. 下载和安装MySQL及其可视化工具 2. 启动MySQL和客户端连接 3. 创建和查看数据库和表 1. 下载和安装MySQL及其可视化工具 下载和安装MySQL推荐博客: mysql数据库安装(详细)_体会!的博客-CSD…

Idea部署 web项目时出现404问题

新手开发过程中发布项目可能会遇到这种问题,看到404,证明代码没有问题,地址有问题。 解决方法:(此解决方法适用于,发布程序后首页能正常显示的情况下,点击任何菜单直接404) 先看发布…

【NoSQL之 Redis配置与优化】

目录 一、关系数据库与非关系型数据库1、关系型数据库和非关系型数据库区别(1)数据存储方式不同(2)扩展方式不同(3)对事务性的支持不同 2、非关系型数据库产生背景总结 二、Redis简介1、Redis 具有以下几个…

数据库实验—触发器

为Students创建一触发器,并给出正反实例的SQL语句:当插入或修改一条学生记录时,确保此学生的入学年龄在14~40岁之间。 create trigger TRIGGER_Stu on Students for insert , update as declare age int select ageyear(getdate())-year(Sbir…

微信小程序——二维码推广海报

&#x1f60a;博主&#xff1a;爱学习的Akali King &#x1f60a;本文核心&#xff1a;本地图片和接口返回二维码制作一体化canvas海报 目录 创建一个画布通过canvas API绘制图像细节1 长按保存细节2 创建一个画布 在微信小程序中&#xff0c;我们使用<canvas>标签来创建…

微信小程序web-view嵌入uni-app H5页面,通过H5页面跳转其他小程序如何操作?

1、H5页面代码 wx.miniProgram.reLaunch({ url: /pages/index/index?appId${您的微信小程序appId} });//触发小程序刷新页面获取appId 微信小程序appId查看方法&#xff1a; 1&#xff09;有后台登录权限的情况下&#xff1a;登录微信公众平台后&#xff0c; 微信公众平台微信…

linux——在VMware Workstation中配置固定IP

第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a; 切换到root用户下&#xff1a;用vim打开文件&#xff0c;进行上面五处修改。 改动后的文件为&#xff1a;