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.

TMS320F28377D: TMS320F28377D

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Hi Friends,

I am doing CAN communication on TMS320F28377D development board Rev1.1 with another development board(Microsemi's dev board).

I am using C2000ware  example code and able to communicate properly both transmission and reception with standard and extended mode.

But I want to know how I can use other available as CAN_TRANSMIT_REMOTE, CAN_RXTX_REMOTE_FRAME?

How I have to initialize if i want to send a REMOTE FRAME ?because when other node is sending me REMOTE_FRAME I am able to receive it,

But when I am configuring as CAN_TRANSMIT_REMOTE     or  CAN_RXTX_REMOTE_FRAME  not happening as I saw on Bus RTR bit is not setting to recessive.

Can anybody please explain or give me any example links how to do it?

Regards,

Ashrumochan.

  • Ashrumochan,

                Generally, the same MBX is used to transmit a Remote frame and receive the corresponding Data frame. The function to configure the MBX is below:

        //
        // Initialize the mailbox used for sending the remote frame
        // - and receiving the corresponding data frame
        // Message Object Parameters:
        //      CAN Module: A
        //      Message Object ID Number: 1
        //      Message Identifier: 0x111
        //      Message Frame: Standard
        //      Message Type: Receive (but transmits a Remote frame first)
        //      Message ID Mask: 0x0
        //      Message Object Flags: None
        //      Message Data Length: 8 Bytes
        //
        CAN_setupMessageObject(CANA_BASE, TX_MSG_OBJ_ID, 0x111,
                               CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_RX, 0,
                               CAN_MSG_OBJ_NO_FLAGS, MSG_DATA_LENGTH);

    Once configured, you can use the function below:

      

        //
        // Transmit Remote frame(s) from CAN-A and await data frame
        //
    
            //
            // Initiate transmission of remote frame. "rxMsgData" is "dummy"
            // No data will go out on a Remote Frame
            //
            CAN_sendMessage(CANA_BASE, TX_MSG_OBJ_ID, MSG_DATA_LENGTH, rxMsgData);

    Let me know if you need more help.

  • Thanking you very much Hareesh,
    Once let me try this and let you know.


    Regards,
    Ashrumochan
  • Hi Hareesh,

    I am able to get the RTR bit as recessive now. And the remote frame is coming correctly both in standard and extended mode.

    But I have a doubt what is use of last option as CAN_RXTX_REMOTE bcs as I used this also same like frame is coming.?

    Is there any tool support available like can analyzer for ti devices.

    Regards,

    Ashrumochan

  • Sorry, I don’t understand what you mean by “last option”. Please clarify.

    You can use any commercially available bus analyzer. They will all work, since CAN is an industry-standard protocol. I use one from PEAK System. You can Google for more options. You should be able to find one for <US$200.