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.

Switching CAN: 1 MCU channel, 2 transceivers (SN65HVD232D), 1 switch (TS3A24157)

Other Parts Discussed in Thread: TS3A24157

I have a project where I use an ARM7 to communicate with CAN via the SN65HVD232D. I would like to add one more CAN channel than the microcontroller supports. I have thought about "multiplexing" the signal, with a switch (the TS3A24157, since my network operats at 125kbaud or slower). I only require serial use of the CAN devices, that is, I need one transceiver or the other - never both at the same time. I can stand a bit of downtime when switching devices.

Will such an idea work? I plan to switch TX/RX between the MCU and the transceivers only when both devices are in passive mode, and only enabling them after a short delay and reapplying settings.

I have tried this setup and was unable to send or receive CAN data. I am wondering if my idea is not possible, if my code is wrong, if my network may be improperly loaded, or if my schematic is incorrect.

I connect CAN_TX from the MCU to IN1, CAN_RX to IN2, and then connect CAN1_TX/CAN1_RX to NC1/NC2 and CAN2_TX/CAN2_RX to NO1/NO2 respectively. I can post a schematic if it would be helpful to visualize.


Thank you!

  • Hi Joshua,

    I have seen people implement a network for mis-wiring where they have one transceiver hooked up normally, and one transceiver hooked up backwards. Then in software on startup they can check which path received data, and choose the correct transceiver. So in theory it’s very similar to what you are trying.

    My concern is that the switch is causing a significant amount of propagation delay and that is cause errors. What they did which is different is that used the switch to power and unpower the devices. So only one device was on at all times. Could this be an option for you?

    When I opened the datasheet for the switch you chose, I do not see propagation delay. I would recommend posting a question to the etc… Interface forum, I pasted the link below. Once you can find out more about the propagation delay, we can see if that could be causing a problem (total loop delay needs to be less than 255ns, this includes cabling prop delay which is ~5ns/meter)

    http://e2e.ti.com/support/interface/etc_interface/default.aspx

    If you can send an oscilloscope capture of TX, RX and CANH and CANL I can see if it looks like the bus is over loaded and there is too much capacitance slowing the signals down.

    Thanks,

    John