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.

TMS320F280025C: The can sending function of the library function inexplicably sends remote frames

Part Number: TMS320F280025C

The can sending function of the library function inexplicably sends remote framesCAN_TEST_REMOTE.rar

The initialization settings of can are all data frames, and no remote frames are set. When 280025 receives a large number of can data frames and 280025 sends a large number of data frames, the remote frames are sent by the sending function

  • Hi Ming, Thanks for reaching out.  Please expect a delay in reply due the long weekend in observance of Dr. Martin Luther King day.  Regards, Krishna

  • Ming,

                    Debugging your project is not something we can support on the forum. However, we can provide some helpful tips/suggestions. 

    The only way to generate a remote frame is to set the TxRqst bit for a receive message object. Please check your project carefully to see if this happens inadvertently.

    How did you determine a remote frame is being transmitted? Did you monitor them with a CAN bus analyzer tool?

    Please  refer to the example in www.ti.com/lit/sprace5 to understand how to intentionally generate and respond to remote frames.

  • I suspect there is a problem with TI's library function, because in can initialization, can_ setupMessageObject(CANA_BASE, 5, 0x060F8003, CAN_MSG_FRAME_EXT,

    CAN_ MSG_ OBJ_ TYPE_ TX, 0, CAN_ MSG_ OBJ_ NO_ FLAGS,

    8); The penultimate parameter is set to can_ MSG_ OBJ_ NO_ Flags, can_ Sendmessage() will not send remote frames if it is set to can_ MSG_ OBJ_ USE_ EXT_ When filter, can_ SendMessage () will send remote frames, so I uploaded the project and want you to help us confirm that the problem occurs above

  • You have not answered my question "How did you determine a remote frame is being transmitted? Did you monitor them with a CAN bus analyzer tool?

    I don’t understand what you mean by "can_ Sendmessage() will not send remote frames if it is set to can_ MSG_ OBJ_ USE_ EXT_ When filter, can_ SendMessage () will send remote frames". Please clarify.

  • I use the can analysis tool to detect the remote frame. My can initialization can only send data frames when the can mailbox setting is yes

    CAN_ setupMessageObject(CANA_BASE, 1,0x070F8003,CAN_MSG_FRAME_EXT, CAN_MSG_OBJ_TYPE_RX, 0xFFF7F803, CAN_MSG_OBJ_USE_ID_FILTER,8); The penultimate parameter is can_ MSG_ OBJ_ USE_ ID_ Filter is prone to problems if it is set to can_ MSG_ OBJ_ NO_ The flags problem can be solved, so you can look at my code and where the problem occurs. I have contacted technicians in China and they say you

  • CAN_ setupMessageObject(CANA_BASE, 1,0x070F8003,CAN_MSG_FRAME_EXT, CAN_MSG_OBJ_TYPE_RX, 0xFFF7F803, CAN_MSG_OBJ_USE_ID_FILTER,8); The penultimate parameter is can_ MSG_ OBJ_ USE_ ID_ Filter is prone to problems if it is set to can_ MSG_ OBJ_ NO_ The flags problem can be solved, so you can look at my code and where the problem occurs. I have contacted technicians in China and they say you

    Your message ends abruptly, so I don't know what you were trying to say. Anyway, with the function call you provide I understood your using Message_object1 as a Receive object with an extended ID of 0x070F8003 and a mask of 0xFFF7F803. Are you trying to say if the penultimate parameter is CAN_MSG_OBJ_NO_FLAGS, then the message object occasionally transmits a remote frame?

  • Can analyzer initialization28025 sends data framesThe can analysis tool sends a large number of data frames280025 start sending remote frames

    I didn't understand the above. Were you trying to attach images?

  • The penultimate parameter is set to can_ MSG_ OBJ_ USE_ ID_ Filter and can transmit functions are prone to remote frames. The penultimate parameter is set to can_ MSG_ OBJ_ NO_ Flags, he will not send remote frames. So I want to understand why

  • So, you are using Message_object1 as a Receive object with an extended ID of 0x070F8003 and a mask of 0xFFF7F803. Are you saying if the penultimate parameter is CAN_MSG_OBJ_USE_ID_FILTER, then the message object occasionally transmits a remote frame? As mentioned before, Remote frames are only transmitted from Receive Message objects when their TxRqst bit is set. Please go through your code to see if this happens. In the project you have sent, I only see initialization for two transmit message objects. It is not matching with the code snippets you included in your posts.

    CAN_setupMessageObject(CANA_BASE, 5, ECanaMboxes.MBOX4.MSGID.all, CAN_MSG_FRAME_EXT,
                               CAN_MSG_OBJ_TYPE_TX, 0, CAN_MSG_OBJ_USE_EXT_FILTER,  //模块到监控
                               8);
        CAN_setupMessageObject(CANA_BASE, 6, ECanaMboxes.MBOX5.MSGID.all, CAN_MSG_FRAME_EXT,         //模块到模块
                               CAN_MSG_OBJ_TYPE_TX, 0, CAN_MSG_OBJ_USE_EXT_FILTER,
                               8);