Pin Mux Configuration: Make sure
the Pin Mux configuration is done as per the CAN instance usage and also check the pin mux
registers are not getting over written else where to avoid failure.
Transceiver Configuration: Make
sure that users the appropriate transceiver hardware connected to the MCAN module. The
transceiver is essential for interfacing with the physical CAN bus. Verify that the
transceiver settings match the communication requirements (that is, baud rate, termination
resistors).
Acceptance Filtering: MCAN uses
acceptance filters to determine which messages MCAN needs to process. If the acceptance
filters are not configured correctly, then users can experience issues with message
reception or transmission. Double-check the filter settings.
Frame Format: MCAN supports both
standard CAN and CAN FD frames. Make sure that users are using the correct frame format
(11-bit standard identifier or 29-bit extended identifier) based on the application
requirements.
Error Handling: Monitor error
counters (such as transmit error count and receive error count) to detect communication
issues. Excessive errors can indicate issues with the bus or incorrect configuration.
Initialization Sequence: Follow
the proper initialization sequence when setting up the MCAN module. Incorrect
initialization can lead to unexpected behavior.
Message Buffer Configuration:
Allocate MCAN message RAM correctly. Define the message buffers (TX FIFOs, RX FIFOs, and
RX buffers) based on the application needs. Insufficient buffer space can cause dropped
messages.
Loopback Mode: Use loopback mode
during testing to verify that the MCAN module is functioning correctly. In loopback mode,
transmitted messages are received back internally, allowing users to validate the
communication path.
Interrupt Handling: Implement
interrupt handlers for MCAN events (such as message reception, transmission, and error
conditions). Proper interrupt handling makes sure of timely processing of messages. Check
if the ISR is getting hit upon reception of a message. If this is getting hit when sending
a message from the external CAN emulator, then check the interrupt status; this can be
inferred from the MCAN_IR register.
Clock Configuration: The clock
configuration needs to match the settings as mentioned in SDK guide. CAN clock is
functional clock of CAN module, which runs at 80MHz