STM32 CAN总线调试经验

本文分享了在STM32上进行CAN总线调试的经验,特别是遇到多设备无法通信的问题。通过研究MAX3051芯片手册,发现电阻设置对通信模式的影响,调整电阻解决了通信问题。此外,强调了CAN总线的逻辑状态、电流特性、布线注意事项、采样点和波特率计算等关键点,最终实现了13个模块的稳定通信。
摘要由CSDN通过智能技术生成

前言

STM32 CAN代码网上很多,但大都是讲如何配置的,对于一些原理以及注意事项没有很清楚的说明。在实际调试过程中,两个设备间的通信只要设备CAN的配置一样基本就可以调通,但在增加设备的过程中,很容易出现多设备无法通信的问题,这里主要就这一问题进行说明。

硬件

STM32F042G4 + MAX3051

测试过程

测试板回来后,两个设备间的通信轻松搞定,但在增加设备的过程中,增加的设备总是不能正常通信。详细比对了一下配置,也没有任何问题。后来,仔细研读MAX3051的芯片手册,得到以下几个重要信息:

MAX3051有四种工作模式

  • 高速模式:数据传输速率可达1Mbps,但抗干扰能力弱,需要双绞线

  • 斜率控制:可编程控制最高500kbps的传输速率,可减少电磁干扰EMI(因此可使用非屏蔽双绞线或平行线)

    ​ 斜率控制速率计算:

    ​ RRS (kΩ) ≈ 12000 / (maximum speed in kbps)

  • 待机(standby)模式:发射机关闭,接收机被拉高,低电流模式

  • 关机模式:发射和接收都关闭

原来测试板焊接有52k电阻,CAN为斜率控制模式,而实际配置的波特率高达1M,显然是行不通的,后去掉该电阻直接接地,通信OK。再后来为了增加抗干扰能力,还是焊接了电阻,使其工作在斜率控制模式。

其他说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值