我想用AM335x的DCAN通过CAN总线控制几个DSP节点,双方设置了相同的波特率和采样点,但是就是无法通信,收发器用的都是TI的SN65HVD230,请问有人能帮我解决下这个问题吗?谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我想用AM335x的DCAN通过CAN总线控制几个DSP节点,双方设置了相同的波特率和采样点,但是就是无法通信,收发器用的都是TI的SN65HVD230,请问有人能帮我解决下这个问题吗?谢谢。
信息有点太少了。
建议你参考着我们的DCAN User guide进行AM335x这边的设置,然后用分析仪或者是另一块AM335x的板子确认相应的CAN数据包这边有没有发送成功。
这样有助于你辨识是在335这边出的问题,还是在外部出的问题。
如果是裸跑的Starterware,里面应该有收发例程;如果是用Linux可以参考如下:
Linux SDK 7.0 :http://processors.wiki.ti.com/index.php/Linux_Core_DCAN_User%27s_Guide
Linux SDK 6.0及之前:http://processors.wiki.ti.com/index.php/AM335X_DCAN_Driver_Guide
谢谢您的回答,我已经解决了,是CAN波特率的问题,我还想问下CAN的波特率是不是不能自己随便设置,我设置两块DSP的CAN波特率为500000,采样点87.5%(我自己算的参数),它们无法通信,换成文档里的就可以了。另外linux socketcan的波特率是怎么算的,我设置bitrate 500000 sample-point 0.8,然后查看can0,发现实际上bitrate是500000,但是采样点是0.75,不知道里面是怎么计算的