TJA1145芯片开发

1、TJA1145硬件介绍

一款带有特定帧唤醒功能的CAN收发器芯片。部分支持CAN FD,功能很强大。

具体芯片手册参考官网:TJA1145A.fm (nxp.com.cn)

2、TJA1145寄存器介绍

寄存器偏多,主要分为一下几类:主控寄存器、收发控制和局域网寄存器、唤醒控制和状态寄存器、事件捕捉寄存器、标识寄存器。

 

主控寄存器:

0x01:模式控制寄存器,控制TJA1145的状态,Normal、Standby、Sleep三种

0x03:主状态寄存器,监控超温警告标志的状态,并确定TJA1145是否已进入正常模式。位FSMS指示最近转换到睡眠模式是由低电压事件还是由SPI命令触发。

0x04:系统事件使能寄存器,负责使能捕捉过温、SPI故障事件。这个按理来说应该分成事件捕捉一类。

0x06-0x09:TJA1145内部的内存,用户可以写四个字节的用户数据。

0x0A:锁寄存器:负责保护寄存器不被更改。

 

收发控制和局域网寄存器:

负责控制CAN的收发器部分。

0x20:CAN控制:是否过滤CAN FD帧,局域网配置标志位,选择唤醒使能、收发器状态

0x22:收发器状态寄存器:收发器状态、局域网错误状态、局域网状态、总线静默状态、电源支持状态、CAN失败状态:TXD超时问题。

0x23:传输事件使能寄存器:使能获取传输事件。使能CAN总线静默检测、CAN失败检测、CAN唤醒检测。

0x26:波特率设置

0x27-0x2A:特定帧唤醒的CAN ID

0x2B-0x2E:特定帧唤醒的ID掩码

0x2F:CAN帧控制寄存器:选择标准帧扩展帧、配置数据长度

0x68-0x6F:CAN报文掩码。

 

Wake引脚:

本地唤醒引脚,检测上升沿、下降沿。

0x4B:代表wake引脚的电压是否Vth。

0x4C:Wake引脚检测上升沿还是下降沿。

 

全局事件捕捉寄存器:

尤为重要,负责获取各种事件。

0x60:事件捕捉寄存器,判断并获取当前TJA1145的三种事件,分别是本地唤醒事件、传输事件、系统事件。

0x61:系统事件状态寄存器:主要包含过温警告事件、SPI故障事件

0x63:传输事件状态寄存器:包含局域网帧错误事件、CAN BUS事件、CAN故障事件、CAN唤醒事件

0x64:唤醒事件状态寄存器:上升沿唤醒、下降沿唤醒。

 

0x7E:标识寄存器,获取硬件的ID。

3、TJA1145配置

 要想配置TJA1145,需要了解硬件连接部分,即TJA1145和主芯片的连接。

下图是官方给的一个例程,需要耐住性子慢慢看一下,很简单。

首先BAT是12V电源,给TJA1145供电,连接3V、5V的电压转换器,又连接着Wake引脚。Wake引脚通过开关触发上升沿、下降沿来唤醒TJA1145,1145一旦被唤醒,INH输出引脚就会输出12V的电压,此信号会导通3V、5V的电压转换器,右边微控制器MCU的VCC就会上电工作。MCU工作后根据代码,通过SPI发送指令,配置相关寄存器,可以实现特定帧唤醒功能。配置成功后,通过SPI发送休眠指令让1145休眠。休眠后,INH这个引脚就会拉低,导致3V电压转换器断开,MCU掉电休眠。注意:此时BAT电不能断。休眠后,1145就会检测总线上的报文,符合特定帧的话,1145就会被唤醒,INH拉高,导通3V转换器,MCU上电工作。周而复始。

 3.1 SPI指令发送

SPI发送指令格式:7bit_address+1bit_cmd+8bit_data。

7个bit的寄存器地址,代表要操作的寄存器。1个bit的操作指令,0代表读,1代表写。8个bit数据代表写进去的值,或者读出来的数据。

3.2 配置流程

初始化部分:

1、解锁寄存器,获取硬件ID号。

2、配置全局事件使能寄存器,按照需求分别使能系统事件、wake引脚事件、传输事件。

3、配置CAN收发寄存器;包括唤醒CANID、帧类型、数据长度等。

4、配置CAN控制寄存器,使能CAN选择唤醒功能、设置局域网配置OK标示位。

5、配置主控制寄存器,进入Normal状态;上锁寄存器。

6、读取寄存器,判断寄存器数据是否符合配置。

轮询部分:

1、事件处理,如果有一些错误、非预期的状态出现,就要处理相关寄存器。或者简单粗暴,重新初始化。

2、状态处理,根据上层指令,切换当前1145的状态机。

4、未完待续

  • 27
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值