摘要
本篇笔记主要记录基于恩智浦的CAN驱动开发和测试过程中使用英飞凌带功能安全的CAN收发器时候遇到的问题 。
准备工作
安装S32DS for PA, 因为我们在S32DS下开发 。
安装S32DS 的SDK,我们使用最新版3.0.3
问题提出
恩智浦的控制器局域网络CAN,跟我们之前使用的恩智浦 KV,等系列的结构基本是一样的,本次在开发过程中在使用英飞凌收发器时候,之前开发的可以正常通信的工程无法通信 。英飞凌的是比较新的一颗料,主要用于汽车上带功能安全的CAN通信网络,比一般的收发器复杂,有多种操作模式,如,睡眠模式,正常模式,监听模式等,正常操作模式中需要将EN脚和NSTB脚拉高 。
软件中添加
其余驱动程序和初始化跟CAN0一样,收发采用统一接口,可是在测试时候发现CAN1不通,无法通信 。
文章插图
解决问题
先将CAN跳线到另一路非功能安全的收发器,CAN通信收发正常,排除CAN驱动软件问题 。
将CAN1跳回,最后经过多次实验验证发现电路中C53和C55目前的设计47nF偏大在波特率下,信号失真无法通信,将波特率调低为可以正常通信 。拆掉C53和C54,可以正常通信,临时飞线硬件设计更改为容值小一档的电容,在1Mbps,下可以正常通信 。
总结
【卧槽,电容引起了CAN通信不正常】在经典CAN设计中,速率低的时候可以不用这两个电容,在带有CANFD的通信中,CAN FD 速率比较高,一般需要添加这两个电容,但容值不易大,可以用示波器抓下波形,调整为合适值 。
- 杨玉环吸引唐玄宗的地方在哪?杨玉环有什么绝技?
- [架构设计]由面试引发的思考:B/S与C/S究竟是何物
- Vue版可视化流程引擎RoadFlow v3.0.3 适用于众多大型企事业单位
- Vue 引入 mui 组件
- 古代第一个发生兄妹通婚的地方在哪里近亲结婚为什么没有引起注意
- 一帮小青年引发的战争赤壁之战
- 美容店通过什么活动能最快吸引顾客?
- 一个王八引发的血案喝不到王八汤竟要杀人
- 齐灭宋之战,齐国为什么会引起众怒?
- BIOS和Bootloader部分 Linux系统引导过程