STM32-CAN通信硬件设计

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

 

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

 

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

 

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

STM32-CAN通信硬件设计_第1张图片

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

STM32-CAN通信硬件设计_第2张图片

STM32-CAN通信硬件设计_第3张图片

STM32-CAN通信硬件设计_第4张图片

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

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

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

STM32-CAN通信硬件设计_第5张图片

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

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

 

考虑到上电初始CAN总线的隐性电平问题,Txd应当正常处于高电平。不过此处并不需要加上拉电阻,因为内部已有Txd上拉VCC,加了上拉就是制造麻烦,还需要去测试对通信速率的影响……

STM32-CAN通信硬件设计_第6张图片

 

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

STM32-CAN通信硬件设计_第7张图片

STM32-CAN通信硬件设计_第8张图片

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

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

 

 

 

 

 

 

 

你可能感兴趣的:(底层硬件)