Data Frames and Remote Frames with one CAN Node

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User20538
Level 1
Level 1
Hello,

i want to send a remote frame with one xmc47 and receive it with another.
For that i have one Node, which shall send and receive normal data frames aswell.

I am not allowed to use Dave Apps (I don't know why).
What I can use is the XMClib.

I am able to send a remote frame, when i send a "receive MO".
But i am not able to receive it on my second xmc47.

My question is: How does the XMC MultiCan Module handle Remote Frames?
And how can i "answer" them?
Does the remote Frame trigger the Interrupt or will it be handled differently?

I would be very happy, if somebody can explain that to me and maybe give an example on how to do it.

With regards
Xenox
0 Likes
3 Replies
User20538
Level 1
Level 1
Hello everybody,

i did find a solution myself and i will tell here, that in the future somebody can save some time 🙂

The MultiCan Module can handle in every Can Node every type of message. It is not necessary to have one Node for Remote Data and another for normal Data.
An incoming remote Frame does not trigger an interrupt. It will be responded automatically by the Can Node of the MultiCan module.

That means, data which shall be responded to the incoming remote frame must be stored in the matching data object.
If the remote frame is received, it will send the "Response".

To send a remote request, the program has to send a RX-Data-Object. That means an object from the xmc-lib, that is specified as an object which will be received.
To respond to a remote request, the exact opposite is the case. There has to be a TX-Data-Object. With a matching identifier.

Now the important part. The system have to know, that it is waiting for the object to be received. Standard for TX frames is, that they are not receivable.
To achieve this, you need to call: XMC_CAN_MO_SetStatus(Your Message Object, XMC_CAN_MO_SET_STATUS_RX_ENABLE);
This function sets the neccessary bit in the message object, that it can be received.
The function is provided by the xmc-lib in the xmc_can.h file.

Now it looks very simple, but i did not found a clear description of this behaviour. So i hope it helps in the future.

Have a great day. Happy Coding.
With regards
Xenox
0 Likes
User21055
Level 1
Level 1
Hello Xenox,

I am facing a similar issue of yours. I also created a thread about it:

https://www.infineonforums.com/threads/12271-Questions-regarding-the-support-of-CAN-remote-frames-wi....

Could you please share some sample code of how you dealt with remote frames?

Thanks a lot,
Luciano.
0 Likes
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked
0 Likes