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.

CCS/TMS570LC4357: CAN RTR Example

Part Number: TMS570LC4357

Tool/software: Code Composer Studio

Is there any application examples for DCAN remote ?

I developed a simple CAN project to request a 2 bytes of data from a second ECU when user press the button

Here are my configurations:

Requester (CAN1 Message settings)

Respondent (CAN message settings)

I used canSendRemoteFrame(canREG1, canMESSAGE_BOX2); periodically get the message from respondent when user press a button.

At the requester end I used (under void canMessageNotification(canBASE_t *node, uint32 messageBox)

if(canIsRxMessageArrived(canREG2, canMESSAGE_BOX2))

{

      canTransmit(canREG2, canMESSAGE_BOX3, (const uint8 *)&data);

}

When I press the button requester receives a 2 bytes of data first time from respondent. After that no interrupt is fired when user press the button (no data transmission).

  • Hello Suthan,

    1. For remote frame, the node should be configured as a receiver.

    2. For node who responses the request of the frame frame, it should be configured as a transmitter. 

  • Thanks QJ, Its working now. 

     I add my new configurations and result. This may help for other readers 

    Requester (CAN message settings)

    Respondent (CAN message settings) 

    when user press the button canSendRemoteFrame(canREG1, canMESSAGE_BOX2); will be executed 

    Then respondent fill the requested data as follows (under : void canMessageNotification(canBASE_t *node, uint32 messageBox))

    if(canIsRxMessageArrived(canREG1, canMESSAGE_BOX2))
    {

         u8_data[0] = (counter+1)%16;
         u8_data[1] = (counter+2)%16;
         canFillMessageObjectData(canREG2,canMESSAGE_BOX2, (const uint8 *)&u8_data);
    }

    Here is the logic analyzer capture: