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.

TMS320F28379D: DCAN : RTR request send to CAN-ID = 0x700 + Node-ID does not work

Part Number: TMS320F28379D

To whom it may concern,

    I am not able to receive RTR message send to  CAN-ID = 0x701   [i.e. 0x700 + Node-ID  where Node-ID  = 1)

NOTE: RTR request send to other CAN messages ID i.e. RTR send to TPDO, SDO (0x601) and  NMT (0x000)  does work

I have configure DCAN Mail box 1 according to Delfino TRM DCAN section# 22.11.8 Reception of Remote Frames (Page# 2296) as follows

IF1Arb.s.DIR = 1;  //Direction = TX

IF1Mctl.s.RMTEN = 0; 

IF1Mctl.s.UMASK = 1;

  Using Kvaser CANKing  I am able to transmit RTR message with CAN ID = 0x701, but DCAN_NWDAT21 reg bit 1 is never set.

  Using CANKing, when I transmit CAN ID =0x701 without RTR bit set, DCAN does set DCAN_NWDAT21 bit 1 and I am able to receive message.

  

1]  Why RTR does not work for  CAN message ID  = 0x701?? 

2] Can you confirm, if DCAN does not support RTR for  0x700 + Node ID?

Thanks

JP

  • JP,

                  RTR feature is independent of the ID. If it works for one ID ,there is no reason why it wouldn't work for another ID. Please download my Application report http://www.ti.com/lit/sprace5 and try the tested example can_ex9_Remote_Answer. I also urge you to look at the Debug tips provided.

  • Hi Hareesh,

    When master (i.e. Kvaser CAN King) transmit CAN RTR message with CAN-ID = 0x701,

    DCANA module sets CAN_ES.bit.RxOK = 1, which tells me there is a new message..

    but when I read  DCAN register CAN_NDAT_X or CAN_NDAT_21.bit.NewDat are all zero's

    which tells me that none of the mailbox has received any data, even though CAN_ES.bit.RxOK is set?

    When I try same test with SDO message where master transmit CAN RTR message with CAN-ID = 601 (SDO)

    DCANA module sets CAN_ES.bit.RxOK = 1, and corresponding mailbox bit for  CAN_NDAT_X or CAN_NDAT_21.bit.NewDat  is set as well..

    So why RTR works for SDO message (i.e. 0x601) but not for 0x701?

    JP

  • Did you try my application report example? If not, please try it first. There is absolutely no way the module accepts one ID but not another. The only way this can happen is when the IDs don’t match or if the filtering criterion is not satisfied. Please check carefully if this the case. Pay special attention when the ID exceeds 11-bits (STDID Vs EXTID). 

    RxOK bit being set only indicates the module monitored the successful transmission of a frame, not necessarily received it.