最近在项目调试imx6q的CAN总线,遇到CAN总线不能收发数据的问题。但是loopback模式下收发正常。
发送时在TX引脚没有测到波形只有一个高电平。接收时RX上能测到波形,但是接收不到数据。。供电电压正常。
dts配置:
&flexcan1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1>;
status = "okay";
};
&flexcan2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan2>;
status = "okay";
};
pinctrl_flexcan1: flexcan1grp {
fsl,pins = <
MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b020
MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b020
>;
};
pinctrl_flexcan2: flexcan2grp {
fsl,pins = <
MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b020
MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b020
>;
};
ifconfig命令
下面是原理图:
请问还需要配置什么地方么?期待你的答案谢谢!!!!!!!
Hi Jun
CAN的自发自收,必须要经过CAN PHY,不能直接RXD-->TXD自发自收或者CAN1_TXD-->CAN2_RXD、CAN1_RXD-->CAN2_TXD。测试请用下面的连接:
请用这样的连接,测试CAN1和CAN2之间的通信。
Have a nice day!
BR,
Weidong
你好谢谢你的回答!我用loopback模式测试时没有连接RX和TX,这样测试是可以自收的。但是将CAN1和CAN2连接到一起(和你给你的连接方式一样)是不能收发的。并且单个的CAN接口我通过CAN分析仪和电脑连接到一块也是不能正常收发数据的!!!!
Hello Jun,
前不久,我刚刚测试过上面的方式CAN1和CAN2通信,没有问题的。
请检查一下你使用的CAN PHY datasheet,是不是TXD和RXD数据线接反了。感觉不太对。
伟东