This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS570LC4357: CAN Bus not Sending Acks

Part Number: TMS570LC4357
Other Parts Discussed in Thread: HALCOGEN, TCAN337

using the TMS5704357 in a design where it needs to receive extended-ID CAN bus frames with any arbitrary ID Our HALCoGen configuration is shown in the following photo.

You can see in the logic analyzer capture below that there is no ack, which should be provided by the TMS570. I believe that with our HALCoGen config it should ack any frame ID. Why is the TMS570 not sending an ack on these frames? I should also note that the CAN interrupt handler code is not entered at any point.

The TCAN337 IC is being used to interface the MCU with the system CAN bus, if that matters.

Thank you.

-Mark

  • Hi Mark,

    1. Does TMS570 have the same CAN baudrate as the transmitter?

    2. Is the TMS570 CAN module initialized properly? 

    3. To receive interrupt, the CAN channel in VIM should be selected: 

    and enable the IRQ interrupt by calling:

    _enable_IRQ();

    4. Can you configure the mailbox 1 for TX, and check if you can TX CAN message?

    _enable_IRQ();

    canInit();

    canEnableErrorNotification(canREG1);
    canEnableStatusChangeNotification(canREG1);

    canTransmit(canREG1, canMESSAGE_BOX1, tx_ptr); 

  • I created an example for receiving CAN message using mailbox2:

    TMS570LC43x_CAN_RX.zip

  • Hi Mark,

    It might be caused by different baud rates among the nodes. Make sure all nodes on the CAN bus network are configured to have the same baud rate.

    Each CAN message receiver that has received the frame without error will drive the CAN bus to the dominant state in the acknowledge slot. The CAN message transmitter detects that the CAN bus is driven to the dominant state and thus knows that the message has been received by at least one other node without errors.