cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer
Observer
261 Views
Registered: ‎10-26-2018

Zynq PS CAN - Loopback on EMIO works but unable to communicate over MIO with external devices - Tx errors and BUS-OFF state

Hello All,

I am currently facing troubles using CAN over PS. I have the following setup:

- Custom board based on Zynq 7035

- CAN0 connected to MIO 10, 11

- CAN1 connected to MIO 12, 13

- ADM3053 CAN transceivers connected to CAN0 and CAN1 for external communication

- SN74AVC4T774 - Dual supply bus transceiver to connect ADM3053 with PS MIO pins for signal translation

- Vivado 2019.2 and Petalinux 2019.2

I have also followed all the steps mentioned in - https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842496/Linux+CAN+driver , with regard to setup of CAN. Using loopback with EMIO and PL setup, I was able to send and receive data between CAN0 and CAN1 without any issues.

To test externally, I have connected CAN0 and CAN1 in a loopback i.e., CAN0 High to CAN1 High and similarly the CAN-L via tranceivers. After booting with petalinux I have done the CAN configuration and started the controllers as shown below:

CAN initCAN init

ip status after start:

ip status after startip status after start

cansend command result and ip status after first cansend command:

result of cansendresult of cansend

As seen, there is no can frame transmitted due to errors on Tx and 19 frames received on Rx. This also results in triggering BUS-OFF. This does not make any sense and I dont know where to look for the root cause of this issue.

There were couple of threads with similar issue that I have already referred, but none of them resolved and kind of old.

Can anyone please give me some pointers of how to resolve this issue? I am a complete noob in this field and would greatly appreciate your kind help.

Many thanks in advance for the help.

0 Kudos
2 Replies
Highlighted
Moderator
Moderator
195 Views
Registered: ‎04-09-2019

Re: Zynq PS CAN - Loopback on EMIO works but unable to communicate over MIO with external devices - Tx errors and BUS-OFF state

Hi ,

Can you please check the external bus is formed correctly or not, the external connection should include a termination resistor of value 120 Ohms. If you already included the termination resistor cross verify hardware connection and the other node connections to confirm the bus is formed correctly.

Regards,

Venu

Highlighted
Observer
Observer
181 Views
Registered: ‎10-26-2018

Re: Zynq PS CAN - Loopback on EMIO works but unable to communicate over MIO with external devices - Tx errors and BUS-OFF state

Hello @venui,

First of all, thank you for taking time to reply.

The external bus is properly formed with 120 Ohm terminations. I wanted to check if I am obtaining any signal on CAN0 Tx pin when the cansend command was issued using an oscilloscope. But I could not see any. 

Can you please tell me how I can make sure that there is an output on CAN0 tx and that there is signal on the trace from tx pin till the transceiver pin?

Thank you again for taking time.

Regards

Uday

0 Kudos