2026-01-15 6:03 AM - last edited on 2026-01-15 6:19 AM by mƎALLEm
2026-01-15 6:17 AM
> If I have two devices on the same PCB. say an F7 and an MP157, can the CAN_TX of one be connected to the CAN_RX or the other without a CAN transceiver?
Electrically yes, but this only works for two nodes, and short distances.
Technically, this would not really be CAN. But fine for testing.
Of course you would need a GND connection as well.
Series resistors might help for signal quality, but the MCU CAN pins are standard PP outputs, no pull-ups required.
2026-01-15 6:24 AM - edited 2026-01-15 6:30 AM
Hello,
That could work with this config (I remember I tested it years ago):
CAN_Tx in open drain/common GND:
or CAN_Tx in Push-pull with common GND of all circuits:
but not recommended for high distances.
See also: https://www.mikrocontroller.net/attachment/28831/siemens_AP2921.pdf
2026-01-15 6:46 AM
And using higher bitrates (a.k.a. CAN-FD or CAN-XL) would aggravate issues.
2026-01-15 7:17 AM
@Ozone wrote:
And using higher bitrates (a.k.a. CAN-FD or CAN-XL) would aggravate issues.
Agree.
2026-01-15 7:51 AM
Thanks, I was only looking for point-to-point comms. Maybe using it for firmware updates on the F7, from the MP157, instead of a UART.
I don't follow why the RX and TX of both chips are joined together, instead of the UART configuration. Please explain
2026-01-15 8:07 AM - edited 2026-01-15 8:10 AM
That shouldn't work as the UART does: with cross connection of Tx <-> Rx. There is an arbitration and acknowledgement mechanism in CAN communication that should be kept in place that Tx <-> Rx cross connection doesn't permit.
2026-01-15 8:17 AM - edited 2026-01-15 8:18 AM
In the configurations proposed above, the arbitration and acknowledgement are seen on any Rx from all Tx of the available CAN nodes (frame broadcast) which is the case where transceivers are used.