My target is S23K144, I was wondering if we could combine two CAN controller to act as one controller using only one CAN transceiver. To that end I would think tie for example CAN0_RX and CAN1_RX together which I believe is quite safe however the CAN0_TX and CAN1_TX can't be tied together due to the issue of contention, the pin structure of this micro is not very clear to me, to be able to tie outputs such as CAN_TX ,together, they need to be configured as open drain/collector with a pull up resistor. in S32K , There is a MUX Alternative which configures the pin as CAN_TX however it is not clear to me if it is push_pull or open drain or even the possibility to configure a pin as an open_drain.
Any help is appreciated.
The device does not support open drain on all the pins. Only pins that are configured for a protocol that requires open-drain (e.g;, LPI2C) will work in open-drain mode.
Moreover if you want to combine two FlexCAN modules to act as one controller using only one CAN transceiver the TX pins cannot be set to open-drain and connected together — the node might acknowledge itself.
Anyway it is common for two CAN modules to be connected to the same transceiver. This allows more RX buffers to be available for a node. But in this case, only one module is used for transmit and the other CAN module’s transmit is not connected. Just RX pins are connected.
The receiving module should be set in Listen-only mode (CTRL1[LOM] bit set). Transmission is disabled, all error counters are frozen and the module operates in a CAN Error Passive mode. Only messages acknowledged by another CAN station will be received. If FlexCAN detects a message that has not been acknowledged, it will flag a BIT0 error, as if it was trying to acknowledge the message. RX interrupt are functional in LOM mode normally.