You are on page 1of 2

Mixing CAN nodes with and without transceivers on one bus?

Asked 3 years, 6 months ago Active 2 years, 8 months ago Viewed 343 times

I can see based on the answer to this question that it's possible to make a short/slow CAN
bus without using transceivers and a differential bus. This brings up (at least for me) an
1 interesting related question: is there a way to mix nodes on a single CAN bus, some of which
have transceivers and some of which do not?

The use case I'm imagining is as follows: there are several MCUs on one PCB that are on the
1 same CAN bus. They're close together, and the enclosure is well shielded using, say, an
aluminum case. Let's assume that connecting them in the manner recommended in the above
link works.

This bus then goes off-board, to several remote CAN nodes. Sending the single wire out of
the enclosure is a terrible idea. But is there a generally accepted design that would allow you
to connect these non-transceiver-ed nodes to a transceiver that then sends a fully differential
pair off-board to the remote nodes?

As an alternate way of considering this question: is there a way to connect multiple CAN-
enabled MCUs to a single transceiver?

can digital-communications

asked Aug 27 '17 at 5:41


PKL
278 3 14

1 Answer Active Oldest Votes

This could work:

1
simulate this circuit – Schematic created using CircuitLab

If MCU1 wants to transmit is will pull the line shared with MCU2 and transceiver's CANTX line
via D2 and D4.

If MCU2 wants to transmit it will pull the line shared with MCU1 and transceiver's CANTX line
via D1 and D5.

If the transceiver receives a zero it will pull the shared line via D3.

When none of the devices is driving then lines are pulled high by resistors.

It is "hackish". I would consider different interfaces (like SPI or I2C, or a bunch of UARTs) for
communicating on the same PCB and making one MCU a gateway to external CAN bus.

Interesting. Agreed that it's a hack. Using an MCU as an inter-network switch is something this question
was formulated to avoid: if the CAN messages go directly to every node in the network, the built-in CAN
messaging filters can be used instead of more active switching/routing techniques. Turns out this can
save substantial amounts of computing time if the data rates are high enough. And while every node on
a PCB could technically have the full CAN hardware stack, it seems like overkill inside a shielded
enclosure. – PKL Aug 27 '17 at 14:38

I'm going to mark this as the (most promising) answer, with the caveat that I have not tried this myself,
and aside from it being plausible on its face, I cannot verify that it will work. – PKL Aug 28 '17 at 14:15

You might also like