1
\$\begingroup\$

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 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 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?

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

This could work:

schematic

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.

\$\endgroup\$
  • \$\begingroup\$ 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. \$\endgroup\$ – PKL Aug 27 '17 at 14:38
  • \$\begingroup\$ 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. \$\endgroup\$ – PKL Aug 28 '17 at 14:15

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.