0
\$\begingroup\$

I would like to use the NXP TJA1046/TJA1048 dual CAN transceiver to connect to two CAN BUS. I would like to mux the TX1/TX2 and RX1/RX2 and connect them to single TX/RX interface on the MCU. In order to avoid conflict, I can put one of the block into standby mode and vice versa. Please check the attached picture and see if my implementation makes any sense.enter image description here

Thank you

\$\endgroup\$
1
\$\begingroup\$

No, this circuit doesn't make any sense. You simply can't "mux" two different CAN buses to the same CAN controller, for a long list of reasons. You must use 2 separate CAN controllers.

The only case where such a connection will make sense is if the MCU only ever speaks to a single bus and never the other, as part of some hardware/software setting etc.

Start by studying how CAN, bus arbitration and message ACK work.

\$\endgroup\$
5
  • \$\begingroup\$ If the MCU wants to communicate with CAN1, it will put the CAN2 transceiver in standby mode before communicating with the CAN BUS and vice versa. Does it still make no sense? \$\endgroup\$
    – adnan
    Aug 24 '20 at 8:50
  • \$\begingroup\$ @adnan No it doesn't make much sense to "hot swap" in and out of a CAN bus in run-time, particularly not if you wish to be able to receive data, or if there is just one other node on the whole bus. \$\endgroup\$
    – Lundin
    Aug 24 '20 at 9:07
  • \$\begingroup\$ @adnan What is the actual problem you are trying to solve with this? \$\endgroup\$
    – Lundin
    Aug 24 '20 at 9:07
  • \$\begingroup\$ I am trying to interface these two CAN bus with a CAN controller with just one interface. Also, the CAN bus selection will be predefined and initial data loss if any, is not an issue. \$\endgroup\$
    – adnan
    Aug 25 '20 at 2:07
  • \$\begingroup\$ @adnan Ok that simply won't work. Study how CAN and message ACK works. \$\endgroup\$
    – Lundin
    Aug 25 '20 at 6:22
0
\$\begingroup\$

You will have two separate CAN busses which are not synchronized. This means that if two separate CAN transmitters on bus 1 and 2 send data at the same time, your RX signal will be scrumbled.

\$\endgroup\$
3
  • \$\begingroup\$ Thanks for the insight. What if one of the CAN BUS interface block to the transceiver is in standby mode? And the other is in normal mode? vice versa \$\endgroup\$
    – adnan
    Aug 20 '20 at 8:09
  • \$\begingroup\$ If you put one transceiver in standby, then this should work. \$\endgroup\$ Aug 20 '20 at 11:09
  • \$\begingroup\$ I really don't see how "this should work". Your node has no control over when external messages arrive on the bus - if one transceiver is asleep when that happens, you will miss data, fail to ack or get corrupted data. The whole design is just nonsense. \$\endgroup\$
    – Lundin
    Aug 24 '20 at 8:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.