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.

Sharing TX and RX of two CAN transceivers

Hello All,

I am working on a configuration, where i have to isolate CANH/CANL. So the CANH and CANL are differential so i tried to isolate the CANTX and CANRX of through the opto coupler. so there are 2 transceivers A and B. A->TX is connected to B->RX and A->RX is connected to B->TX.

I have tried testing it but it show CAN RX Passive error.

Please correct me where i m going wrong.

Thanks,

saravanan

  • Hello Saravanan,


    The below diagram represents my understanding of what you are trying to accomplish.  Is this an accurate interpretation of your described application?

    If this is accurate, this will not work because both TXD and RXD pins are effectively connected together in a circular fashion.  Inside the transceivers the data is looped from the TXD to the RXD so that the MCU can monitor the transmitted data for accuracy, arbitration, and errors.  When data is received on one of the CAN bus sides (let's assume it first arrives on side A) the data will be output from the RXD pin on the A transceiver, optically isolated, and input to the TXD pin on the B transceiver.  The data will be output on the CAN bus on the B side, but it will ALSO be internally looped back to the RXD pins on the B transceiver where it will be output on the RXD pins of the B transceiver, optically isolated and fed back into the TXD of the A transceiver.  From here it will be once again internally looped back into the RXD pins of the A transceiver and the process will repeat.  This will most certainly create an "error" on the bus because data will start to overwrite the valid data on successive packets once it starts to repeat itself in the loop.

    These errors will start to add up and eventually cross the 127 point threshold to enter the error passive state.  I would assume that eventually a Bus Off state could occur if the 255 point threshold is crossed.

    Most isolated CAN applications only isolate one of the CAN transceivers.  Is there a reason this will not work for your application?  If so could you provide some additional information about your application so that I could better understand your needs and be able to offer an alternative solution for you.


    Regards,

    Jonathan