当前位置: 首页 > backend >正文

TJA1445学习笔记(二)

文章目录

    • 前言
    • Failure handling
      • TXD dominant timeout
      • CAN transmitter enable/disable(TXEN_N) - TJA1445B only
      • Bus dominant timeout
      • VCC undervoltage
      • VIO undervoltage
      • VBAT undervoltage
      • Overtemperature
      • MCU reaction timeout
    • SPI interface
      • SPI error handling
      • SPI system reset
      • SPI register map
    • 总结

前言

上一篇文章介绍了TJA1445的一些功能,传送门:TJA1445学习笔记(一),本文接着介绍后面的部分,主要是故障,SPI通信及寄存器map

Failure handling

TJA1445集成了许多用于错误检测和处理的安全特性

TXD dominant timeout

引脚TXD上的低电平持续时间长于TXD释放总线到隐性状态,产生CAN故障中断(TXDDOM/TXD2DOM= 1),TXD主导状态可以通过can状态寄存器中的TXDDOMS/TXD2DOMS位读取.需要启用(TXDDOE /TXD2DOME = 1)

CAN transmitter enable/disable(TXEN_N) - TJA1445B only

在TJA1445B上,CAN transmitter 可以通过TXEN_N输入启用/禁用。GPIO引脚可以配置为附加的发送器启用/禁用信号

Bus dominant timeout

如果CAN总线上的主导状态持续时间长于to(dom)总线,则会产生CAN总线故障中断
BUSDOM = 1),如果启用(BUSDOME = 1;表38).总线的状态可以通过can状态寄存器中的位BUSDOM读取(表21)。请注意,此功能仅在正常模式和仅监听模式下可用LPL = 0时的模式

VCC undervoltage

TJA1445监控引脚VCC上的电源电压。使能后,当VCC降至欠压检测阈值Vuvd(VCC)以下时间大于tdet(uv)时,产生VCC欠压中断(UVCC = 1)(需要启用UVCCE = 1)。VCC欠压状态可以通过系统状态寄存器中的位UVCCS读取

VIO undervoltage

TJA1445监控引脚VIO上的电源电压。当VIO低于欠压检测阈值Vuvd(VIO)的时间超过tdet(uv)时,通过将模式控制位MC设置为Sleep,器件切换到Sleep模式。清除挂起的唤醒中断,启用唤醒源(位CWE, WPRE和WPFE设置)。然后,TJA1445等待唤醒请求

VBAT undervoltage

TJA1445监控引脚VBAT上的电源电压。当VBAT低于欠压检测阈值Vuvd(VBAT)为tdet(uv)时,直接切换到关断模式,位PO被设置

Overtemperature

TJA1445仅在MC = Normal时监测温度。当结温超过Tj(sd)时,设备从Normal模式切换到ListenOnly模式,需要使能OTE = 1。当结温低于关机释放阈值Tj (sd) rel时,器件恢复并切换回正常模式。当设备处于Normal或ListenOnly模式时,可以通过系统状态寄存器中的位OTS读取过温状态

MCU reaction timeout

当TJA1445由于唤醒或从Check_SNM模式从休眠模式进入待机模式时,MCU反应超时定时器启动。如果在tto(MCU)内检测到有效的SPI帧,则MCU反应计时器将复位。如果在tto(MCU)内未检测到有效的SPI帧,则触发MCU反应超时,并通过将模式控制位MC设置为睡眠模式切换到睡眠模式。清除挂起的唤醒中断,启用唤醒源(位CWE, WPRE和WPFE设置)。然后,TJA1445等待唤醒请求。

SPI interface

串行外设接口(SPI)提供与微控制器的通信链路。SPI被配置为全双工数据传输,所以当新的控制数据被传输时返回状态信息

该接口还提供了只读访问选项,允许应用程序在不更改寄存器内容的情况下回读寄存器

SPI使用四种接口信号进行同步和数据传输:

•SCSN: SPI片选;active LOW

•SCK: SPI时钟

•SDI: SPI数据输入

•SDO: SPI数据输出

位采样在时钟的下降沿上进行,数据在上升沿上移进/移出,如图9所示。
在这里插入图片描述
TJA1445中的SPI数据存储在许多专用的8位寄存器中。每个寄存器被分配一个唯一的12位地址。对于单个寄存器读或写操作,必须向TJA1445传输至少3个字节(24bit)。需要6个字节(48bit)来传输最多4个数据字节(参见图10)

第一个字节包含地址的8位最高有效位;第二个字节包含地址的4个最低有效位,一个“只读”位,一个2位有效载荷大小(PLS)和一个奇偶校验位。只读位必须为0表示写操作,1表示读操作。PLS表示传输的数据字节数:

• 00 - 1 data byte

• 01 - 2 data bytes

• 10 - 3 data bytes

• 11 - 4 data bytes

奇偶校验位包括地址位、只读位和PLS位在这里插入图片描述
在SPI数据读写操作中,引脚SDI接收到的前15位通过引脚SDO返回;位16返回为这15位计算的奇偶校验。在SPI协议的data阶段,寻址寄存器的内容通过SDO引脚返回

设备允许对不存在的寄存器进行写尝试。

SPI error handling

TJA1445可以检测多种SPI传输故障:

•收到错误的校验位

•时钟周期的数量小于24或不匹配基于期望值

•一个地址(> FFFh)检测收到了

•一个未定义的MC

•对锁定的寄存器写操作

•SPI消息未在超时时间内完成(SCSN HIGH),t to(SPI)

在所有情况下,一个SPI失败中断(提供SPIFE = 1)生成和整个消息将被忽略

当睡眠模式转换的必要条件(没有唤醒源启用或等待唤醒中断)不满足时,设备将不会切换到睡眠模式,即使MC = 0001。在奇偶校验错误或时钟周期过多的情况下,引脚SDO将处于LOW状态,直到SCSN上的下一个上升沿。当SPI消息的持续时间超过t(to)(SPI)时,SDO引脚变为high-Z

SPI system reset

系统复位可以通过SPI强制,导致设备通过引导模式和设置位PO重新启动。为了触发系统复位,通过将锁控制寄存器中的LKRST设置为0,使SPI能够对系统复位寄存器进行写访问;然后在0x80之后连续写入0x01到系统复位寄存器中的SFR位(参见表35)。两个SPI访问系统复位寄存器都应该是24位的。任何偏离此顺序的操作都将导致系统复位失败

当重置启动时,在通用内存(表45)中的信息在重置序列完成后仍然可用

SPI register map

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
具体的寄存器描述可用参考手册

总结

基于NXP官方驱动开发1445还是很方便的,基本不需要怎么手写代码~

http://www.xdnf.cn/news/19286.html

相关文章:

  • 咨询进阶——解读 目标管理实务:知识概述、管理概述和实施【附全文阅读】
  • 计算机视觉(四):二值化
  • MySQL面试集合
  • 【C++ 】STL详解(六)—手撸一个属于你的 list!
  • 力扣热题100:合并区间详解(Java实现)(56)
  • 在SAP系统中,如何查询已经被打上了删除标记的生产订单?
  • 数据结构(04)—— 栈和队列
  • [每周一更]-(第158期):构建高性能数据库:MySQL 与 PostgreSQL 系统化问题管理与优化指南
  • 【lua】元表、元方法 详解及应用
  • 【LeetCode_27】移除元素
  • Ubuntu中通过SSH克隆Windows的远程Git仓库(局域网中挺有用)
  • 对于牛客网—语言学习篇—编程初学者入门训练—复合类型:二维数组较简单题目的解析
  • Unity核心概念①
  • 准备机试--图【y总版】[重要]【最短路】
  • 三重积分的对称性
  • shell编程-核心变量知识
  • 面试专栏
  • Agent实战教程:LangGraph结构化输出详解,让智能体返回格式化数据
  • 第N个丑数
  • 文件夹和文件一键加密,保护你的隐私
  • CRM、ERP、HRP系统有啥区别?
  • 本地运行 Ollama 与 DeepSeek R1 1.5B,并结合 Open WebUI 测试
  • 安卓编程 之 线性布局
  • 数组去重【JavaScript】
  • 基于 MyBatis-Plus 拦截器实现锁定特殊数据(二)
  • kmp 算法
  • 42-Ansible-Inventory
  • 模式组合应用-组合模式
  • SpringAI应用开发面试剧本与技术知识全解析:RAG、向量数据库、多租户与企业落地场景
  • DbVisualizer:一款功能强大的通用数据库管理开发工具