

If you don't have any other CAN devices on the bus (like a jbperf I/O extender) your CAN-Bus shield will need to provide termination for the other end of the bus. One more question,if I use FLEXCAN_DRV_SetRxIndividualMask to configue each message buffer when fifo is not enabled,the mask is working.Īs shown in FLEXCAN_DRV_SetRxIndividualMask,when fifo is enabled and message buffer index is greater than fifo element threshold,it will quit from freeze mode,and I can't set individul mask for some specific Mb.The docs say the Megasquirt board has a 120 ohm termination resistor on it. RX interrupt are functional in LOM mode normally.

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. Only messages acknowledged by another CAN station will be received. Transmission is disabled, all error counters are frozen and the module operates in a CAN Error Passive mode. Just RX pins are connected. The receiving module should be set in Listen-only mode (CTRL1 bit set). But in this case, only one module is used for transmit and the other CAN module’s transmit pins are not connected. This allows more RX buffers to be available for a node. These ways you can reduce number of MBs needed.Īlso several CAN modules can be connected to the same transceiver. Also the RXFIFO can used where the ID table can be defined and so incoming messages is stored into RXFIFO. The MB is selected for transmission based on internal arbitration and after successful transmission the MB can be again prepared for another transmission.įor receiving messages you can use mask acceptance registers to create ID ranges to be received, if it is possible in application. Did you meant what to do if you have more message to be sent/received than it is number of available message buffers? If yes then it depends on actual needs.įor transmitting messages with the single CAN module you can use less MBs and create some SW TX queue to manage message to be sent.
