采用STM32单片机CAN通信,CAN控制器采用TJA1050,CANH与CANL输出波形一致是怎么回事呢?网上说是CAN短路,但是电路板上并无短路啊,是什么原因呢?附上波形图及电路图,帮忙分析一下
这个是电路图
CAN总线通过CAN控制器接口芯片上的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低 电平或悬浮状态。
CAN总线的接口芯片目前用的比较多的就是SJA1000,它是将数据转换成CAN数据帧,但要与CAN总线连接还必须用PCA82C250,说得更准确点是:SJA1000和PCA82C250必须配对使用。
扩展资料:
CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。
这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。
而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现像在网络中,因个别节点出现问题,使得总线处于“死锁”状态。
参考资料来源;百度百科-CAN总线
意思是单片机程序的问题吗?同一个程序在开发板上能运行呢,自己设计的板子上就不行,can收发器都是TJA1050
追答首先检查一下CAN相关的硬件电路是否一致吧,说不定用的不同的CAN之类的,,,
本回答被网友采纳