[应用相关] STM32-CAN通信硬件设计

[复制链接]
867|7
 楼主| 远芳侵古道 发表于 2021-2-24 22:43 | 显示全部楼层 |阅读模式

隔离方案就不说了,之前的USB转485工具的开发在这块已经有些基础。


其实板上非隔离CAN接口设计还有一些额外的注意点。


回到最基础的知识依然是CMOS、TTL、推挽、开漏的问题。


正点原子开发板,CAN电路最为简易,基本无可用性:

20190911164431172.png

看看一个常用电路(非隔离),Tx、Rx直连STM32引脚(FT),觉得还是要使用模式控制引脚(RS),其作用是开启关闭发送器。NXP类似芯片中这个模式选择有所不同,TJA1042等芯片中的静默模式不具备总线正常信号接收能力,只能接收总线唤醒电平(us级)。总而言之,我是要公开这个配置的。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h4a3JyenE=,size_16,color_FFFFFF,t_70.jpg

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h4a3JyenE=,size_16,color_FFFFFF,t_70.jpg

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h4a3JyenE=,size_16,color_FFFFFF,t_70.jpg

不过,问题在于3.3VTTL可以直接连接5.5VTTL接口?

答案是可以……分析高低电平阈值即可理解。

不过不用纠结TJA1050是TTL还是CMOS,因为手册里边已经写得很清楚,很明显3.3VTTL是可以驱动了,只是容限不是很大。

20190911170046570.png

3.3V TTL 接 5V TTL 另一个简单易行的方案是:

开漏输出,加合适的上拉电阻。


 楼主| 远芳侵古道 发表于 2021-2-24 22:44 | 显示全部楼层
考虑到上电初始CAN总线的隐性电平问题,Txd应当正常处于高电平。不过此处并不需要加上拉电阻,因为内部已有Txd上拉VCC,加了上拉就是制造麻烦,还需要去测试对通信速率的影响……
519326036666410dcd.png
 楼主| 远芳侵古道 发表于 2021-2-24 22:45 | 显示全部楼层
本帖最后由 远芳侵古道 于 2021-2-24 22:47 编辑

Nxp的一款性价比较高的芯片-TJA1042T,带VIO的一类收发器,可以提供更好的EMI,顺带解决了电平匹配的风险:
20129603666d41d522.png
53279603666d8e8322.png

话又说回来,隔离方案就没有电平匹配的问题。

在CAN方面,国内周立功做了很多工作,关于硬件设计也有很多参考可用,恩智浦的技术文档也有不少,从技术角度,再简单的电路,再基础的问题,都有可探究之处吧,解决这些问题的最可靠方式还是看官方手册……


tfqi 发表于 2021-3-4 12:13 | 显示全部楼层
想要外挂一个can芯片?
kxsi 发表于 2021-3-4 12:15 | 显示全部楼层
有点浪费单片机自身的功能了
nawu 发表于 2021-3-4 12:16 | 显示全部楼层
非常经典的一款芯片
qcliu 发表于 2021-3-4 12:18 | 显示全部楼层
这个我调试的时候晶振总出问题
wiba 发表于 2021-3-4 12:19 | 显示全部楼层
哪种输出方案最好呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

86

主题

887

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部