历史上的今天
今天是:2024年10月08日(星期二)
2019年10月08日 | STM32 CAN总线调试经验
2019-10-08 来源:eefocus
前言
STM32 CAN代码网上很多,但大都是讲如何配置的,对于一些原理以及注意事项没有很清楚的说明。在实际调试过程中,两个设备间的通信只要设备CAN的配置一样基本就可以调通,但在增加设备的过程中,很容易出现多设备无法通信的问题,这里主要就这一问题进行说明。
硬件
STM32F042G4 + MAX3051
测试过程
测试板回来后,两个设备间的通信轻松搞定,但在增加设备的过程中,增加的设备总是不能正常通信。详细比对了一下配置,也没有任何问题。后来,仔细研读MAX3051的芯片手册,得到以下几个重要信息:
MAX3051有四种工作模式
高速模式:数据传输速率可达1Mbps,但抗干扰能力弱,需要双绞线
斜率控制:可编程控制最高500kbps的传输速率,可减少电磁干扰EMI(因此可使用非屏蔽双绞线或平行线)
斜率控制速率计算:
RRS (kΩ) ≈ 12000 / (maximum speed in kbps)
待机(standby)模式:发射机关闭,接收机被拉高,低电流模式
关机模式:发射和接收都关闭
原来测试板焊接有52k电阻,CAN为斜率控制模式,而实际配置的波特率高达1M,显然是行不通的,后去掉该电阻直接接地,通信OK。再后来为了增加抗干扰能力,还是焊接了电阻,使其工作在斜率控制模式。
其他说明
“显性”(“Daminant”)数值表示逻辑“0”,而“隐性”(“Recessive”)表示逻辑“1”
电流
Dominant(显性):TYP-35mA MAX-70mA
Recessive(隐性):TYP-2mA MAX-5mA
CAN布线注意事项
CAN采样点说明1,说明2
sample = ( 1 + CAN_BS1) / (1 + CAN_BS1 + CAN_BS2)
总体要求:CAN_BS1>=CAN_BS2>=2*CAN_SJW 采样点在70%~80%附近最佳
CAN波特率计算
CAN波特率 = CAN时钟/( (1 + CAN_BS1 + CAN_BS2) * CAN_Prescaler)
= CAN时钟/(CAN_SJW + CAN_BS1 + CAN_BS2)*CAN_Prescaler)
最后,综合以上布线、采样点、波特率等说明,成功串联13个模块,速度在400k。
史海拾趣
|
我现在拿到mtk的offer了,手机软件开发职位,11w/年左右,我也同时拿到了另一家国内比较有名的做网络安全的公司的offer,8~9w/年。 上面两个公司职位一个是偏嵌入式,一个是win c++软件开发, 我是计算机系的,自己感 ...… 查看全部问答> |
|
请教各位高人: 我使用的工具是eVC4.0,前期开发了一些程序,不是利用MFC框架编的,直接用API编写的 那么我想问一下在我目前的这样开发环境下,开发数据库数据库,选用SQLite和SQLCE哪个开发容易一些呢? 另外:我没有开发数据库 ...… 查看全部问答> |
|
我这样问,好像是很简单的问题了。 大锅和机顶盒好像都是只会接受消息,不会回复消息。 如果大锅能回复消息,卫星怎能承受得了。 机顶盒也是一样。 如果是这样,怎么认证帐号呢?[img=http://forum.eeworld.net/PointForum/ui/scripts/eeworld/ ...… 查看全部问答> |
|
Bulk-Only时 如果HOST向DEVICE写数据时 出现如下情况: 1 HOST发送CBW 2 DEVICE接收后开始等待DATA 3 HOST没有接收硬件层的关于CBW的确认。(对USB不了解,其中可能出现了重传等过程。最终的结果就是,HOST认为CBW没有被接收,DEVICE则等待DATA ...… 查看全部问答> |
|
音频控制芯片 SiS Azalia Audio Controller 芯片制造商 SiS 子系统ID 304217AAh 板卡制造商 Lenovo 中断 IRQ 18,INT# A ------------------------以上是Windows优化大师 检测的信息 sis high definition audio controller 着驱动精灵的信息 ...… 查看全部问答> |
|
怎么理解 ?????????????????????????????????????????????????????????????????? 8051的停止位怎么设置? -------------------------------------------------------------------------------- 发布时间: 2006-12-15 ; 上次回复: 2006-12-15; 总计回复: 1人次 -------------------------------------------------------------- ...… 查看全部问答> |
|
需要做一个sql ce的程序,我的开发环境是.net 2005,pc端数据库是sql server 2000 Developer版,pda操作系统mobile 5,sql ce 2.0,数据库放在My Documents下。 在程序进行数据库pull时连接不上,提示“The database file cannot be found. Check ...… 查看全部问答> |




