TJA1145休眠唤醒调试

目录

  • 项目场景:
    • TJA1145引脚图
  • 问题描述
    • SPI链路验证
    • 休眠唤醒
      • 休眠唤醒配置
      • 唤醒报文配置
      • 代码
  • 相关寄存器:
    • 模式寄存器
    • 使能CAN唤醒
    • 设置唤醒边沿检测
    • 事件状态及捕获寄存器
  • CANFD报文不会被识别为有效的唤醒帧

项目场景:

最近开发过程中,选择了这颗芯片,踩了很多坑,总算是把这个芯片的休眠唤醒功能pass了,在这里做一个技术总结,希望可以帮到有需要的人!由于时间紧只关注了用到的部分,如有错误还请指正。

TJA1145引脚图

TJA1145
INH:JTA1145 唤醒输出引脚,用于控制开关电源芯片使能
SDO,SDI,SCK,SCSN:通过SPI读写TJA1145寄存器
参考SPI基础知识了解更多SPI知识
WAKE:TJA1145唤醒输入引脚,可配置唤醒信号边沿(上升沿,下降沿)


问题描述

SPI链路验证

TJA1145是通过SPI通信来配置相关寄存器的,所以首先要保证MCU和TJA1145之间的通信正常,这个可以通过读取设备ID来验证,时钟极性和时钟相位为:CPOL = 0 CPHA = 1
时钟极性

CLK空闲时刻为低电平,数据在下降沿采样

Device ID

需要注意的是,读写数据时:地址字节的最低位:0为写,1为读。
写数据最低位为0
sendBuf[0] = (addr << 1U) | 0U;
sendBuf[1] = data;读数据最低位为1
sendBuf[0] = (addr << 1U) | 1U;
sendBuf[1] = 0x00;

休眠唤醒

一般来说唤醒有KL15唤醒 和 CAN唤醒:
KL15唤醒:指钥匙点火(ACC)信号,输入高时给MCU供电
CAN唤醒:检测到唤醒报文时 INH引脚拉高,使能电源芯片给MCU供电

CAN唤醒即Normal模式和Sleep模式之间的切换,正常收发报文处于Normal模式,休眠时处于Sleep模式,由于INH引脚在Sleep模式时为低,所以在MCU属于休眠状态时TJA1145也需要在Sleep模式,以防止异常唤醒MCU

status
根据上图可以看出 Normal模式切换为Sleep模式需要满足三个条件:
1、MC = sleep
2、没有等待的唤醒事件
3、至少要有一个常规唤醒源
即 在切换到睡眠模式前,必须至少启用一个常规唤醒事件,并清除所有事件状态位
sleep

休眠唤醒配置

①CAN唤醒需要启用 Partial Networking
PN
②使能CAN选择性唤醒 成功配置部分网络寄存器
20
③设置数据速率为500k
3
④配置帧控制寄存器:识别格式为标准帧,不关注数据字段长度和内容
4
⑤使能CAN唤醒检测、使能唤醒pin脚上升沿检测
5
⑥清除所有事件状态位
6

唤醒报文配置

①唤醒ID设置
ID

TJA1145只能标准帧唤醒,所以用到地址0x29、0x2A

②设置唤醒ID为0x7A4
1

根据文档,0x29的bit7~bit2用来表示标准帧的bit5 ~bit0,
即0x29的bit7~bit2为100100,向0x29写入 100100 00(0x90)
2
根据文档,0x2A的bit4 ~bit0用来表示标准帧的bit10 ~bit6,
即0x2A的bit4~bit0为11110,向0x29写入 00011110(0x1E)
3
过滤

代码

uint8_t CanTrcv_119_TJA1145_ReadOneReg(uint8_t addr) {status_t stdRet;uint8_t sendBuf[2] = {0};uint8_t RxBuf[2] = {0};sendBuf[0] = (addr << 1U) 

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

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

相关文章

mysql报错Access denied for user ‘root‘,navicat可以连接mysql,spring不能连mysql

首先修改配置文件跳过验证&#xff0c;编辑你自己挂载的配置文件的位置 #查找my.cnf位置 sudo find / -name "my.cnf"编辑mysql配置文件 vim /opt/soft/mysql/conf/my.cnf #在[mysqld]下面添加 skip_grant_tables#重启mysql docker restart mysql#进入容器 docke…

在 Windows 环境下安装mysql步骤(MySQL)

文章目录 一、下载 MySQL二、解压安装包到磁盘三、配置环境&#xff08;管理员权限&#xff09;四、安装 MySQL&#xff08;管理员权限&#xff09; 一、下载 MySQL 如下图&#xff1a;为你的电脑下载对应操作系统的 MySQL 安装包 二、解压安装包到磁盘 三、配置环境&#x…

抽象工厂模式(大话设计模式)C/C++版本

抽象工厂模式 C 参考&#xff1a;https://www.cnblogs.com/Galesaur-wcy/p/15927110.html #include <iostream> using namespace std;// 抽象产品Department ,定义具体产品的公共接口 class Department { public:virtual ~Department() default;virtual void Insert()…

CC2500和CC1101移植说明

主要通过如何移植、移植注意、关于芯片配置、如何生成导出配置四大步骤来说明CC2500和CC1101移植 首先通过下图1这个宏进行选择 如何移植 要移植的部分在 CC2500_hal.c 和 CC2500_hal.h中, 搜索 "//移植" 就可以定位到 库 所需的依赖, 需要根据 您的环境实现这些…

(done) 什么是 perplexity 困惑度?

参考&#xff1a;https://www.youtube.com/watch?vB_2bntDYano 困惑度 perplexity 是一种用来衡量语言模型性能的度量&#xff0c;类似于交叉熵。 困惑度越低越好&#xff0c;越低说明一个模型越好。 一个典型的公式在下面&#xff1a;

Python学习打卡:day06

day6 笔记来源于&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了 目录 day648、函数综合案例49、数据容器入门50、列表的定义语法51、列表的下标索引1、列表的下标&#xff08;索引&#xff09;2、列表的下标&#xff08…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(四)

第四节 质量非数据资料分析的基础工具 1 关 联 图 2.1 概念 所谓关联图&#xff0c;就是对关系复杂而相互纠缠的问题&#xff0c;依据原因—结果或目的一手段等关系&#xff0c; 在逻辑上用箭头把各要素之间的因果关系连接起来&#xff0c;厘清复杂问题、整理语言文字资料…

技术转管理,是灾难还是奇迹?

深耕技术or转战管理&#xff1f;this is a question! 如果你还没有想好&#xff0c;那请继续往下看&#xff01; 技术专家&#xff1a;技术前瞻者、方案构建者、难题破解者、团队聚核者 管理专家&#xff1a;战略规划者、高效组织者、变革引领者、团队建设者 特点和重心都不在…

iPad键鼠充电otg转接器 | LDR6020解决方案

随着科技的快速发展&#xff0c;iPad已经成为我们日常生活中不可或缺的一部分。它不仅是一个娱乐工具&#xff0c;更是一个高效的生产力工具。为了更好地满足用户的需求&#xff0c;iPad支持在充电的同时连接鼠标和键盘&#xff0c;极大地提升了使用的便捷性和效率。 iPad键鼠同…

干部选拔任用的六条原则

在干部选拔任用的过程中&#xff0c;为确保选拔出的干部能够真正符合党和人民的期望&#xff0c;必须遵循以下六条原则&#xff1a; 一、党管干部原则 党管干部原则是指在整个干部选拔任用过程中&#xff0c;党要发挥总揽全局、协调各方的领导作用&#xff0c;确保选拔出的干…

省去烦恼!轻松实现一台电脑登录多个微信号的秘诀揭秘!

你知道如何在同一台电脑上登录多个微信号&#xff0c;并实现聚合聊天吗&#xff1f; 今天&#xff0c;我将分享一个多微管理神器——个微管理系统&#xff0c;帮助你解决这一问题&#xff01; 1、多号同时登录&#xff0c;聚合聊天 无论你有多少个微信号&#xff0c;都可以一…

2024年【安全生产监管人员】试题及解析及安全生产监管人员考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全生产监管人员试题及解析是安全生产模拟考试一点通总题库中生成的一套安全生产监管人员考试试题&#xff0c;安全生产模拟考试一点通上安全生产监管人员作业手机同步练习。2024年【安全生产监管人员】试题及解析及…

智慧停车场定位导航系统的实现与优化

随着城市车辆数量的激增&#xff0c;大型停车场的运营挑战日益严峻。维小帮停车场导航定位系统通过集成先进的室内定位技术和大数据分析&#xff0c;为停车场提供了一套高效、便捷的导航定位服务方案&#xff0c;有效解决了停车难、找车难、管理难等问题。 一、系统核心功能的…

Zookeeper: 配置参数解读

Zookeeper中的配置文件zoo.cfg中参数含义解读如下&#xff1a; tickTime&#xff1a;通信心跳时间&#xff0c;Zookeeper服务器与客户端心跳时间&#xff0c;单位毫秒。 initLimit: LF初始通信时限 Leader和Follower初始连接时能容忍的最多心跳数。 syncLimit: LF同步通信时…

dos下命令行批量修改文件名

1、文件夹下执行获取所有文件名: dir *.* /b > AAA.txt 2、复制aaa.txt文件内容&#xff0c;在excel 下加工成这种格式&#xff08;多行脚本&#xff09;&#xff1a; rename IMG_1561.JPG 20240614会考_005.jpg 3、执行多行脚本

STM32学习和实践笔记(35):内部温度传感器实验

1.STM32F1内部温度传感器介绍 1.1 STM32F1内部温度传感器简介 STM32F1内部含有一个温度传感器&#xff0c;可用来测量 &#xff08;STM32芯片的&#xff09;CPU 及周围的温度(TA)。&#xff08;实际并不用来测周围的温度&#xff0c;仅用来测试CPU的温度&#xff09; 此温度传…

以keepalived为例说明程序不能正常被gdb调试的原因

现象 通过gdb att $keepalived_pid发起对当前运行keepalived的调试&#xff1b; 在放行keepalived继续执行后&#xff0c;想通过CtrlC按键中断执行&#xff0c;观察下被调试程序的当前内部状态&#xff0c; 但是&#xff0c;在终端输入CtrlC后&#xff0c;导致keepalived被调…

通过语言大模型来学习LLM和LMM(四)

一、大模型学习 新的东西&#xff0c;学习的东西就是多&#xff0c;而且最简单最基础的都需要学习&#xff0c;仿佛一点基础知识都要细嚼慢咽&#xff0c;刨根问底&#xff0c;再加上一顿云里雾里的吹嘘&#xff0c;迷迷糊糊的感觉高大上。其实就是那么一回事。再过一段时日&a…

【Mongodb-02】springboot整合mongodb(详解)

springBoot整和mongodb 一&#xff0c;springboot整合mongodb1&#xff0c;依赖加入2&#xff0c;yml文件配置3&#xff0c;_class 字段过滤(可选)4&#xff0c;实体类定义5&#xff0c;索引创建6&#xff0c;数据插入6.1&#xff0c;insert方式6.2&#xff0c;使用save的方式实…

awtk如何实现键盘和输入框

1.创建默认键盘 新建窗体-keyboard 2.新建编辑框 3.设置编辑框属性 4.点击编辑框即可打开默认键盘&#xff0c;若想修改键盘样式可以在默认键盘修改或自定义键盘 5.获取输入字符 widget_t* wifi_edit widget_lookup(win, "edit", TRUE);//获取单行编辑控件 widge…