Can.error Overrun

Hi everyone.

I have a system with a CAN bus on which there’s two EMX, two 8 channelsAnalog to digital converter. Emx are exchangin data (RX-TX) while DAC only send data over the bus.

Emx’s are sometime firing can_ErrorReceivedEvent of type CAN.Error.Overrun.

What does it means? does the bus is full? does EMX didn’t succeed to process can message enough fast?

Yes, this means the buffer is full.
If you need to survive a “burst” on the CAN bus you can just increase your buffer.
Another option is processing the received messages in another thread and not in DataReceivedEvent.

A message was received but then lost as the device could not keep up.

As far as I remember, this is error occurs when a new message arrives while the old one is still in the input buffer — thus the old one is lost (I think). I suggest checking LPC2478 manual. In any case this is somewhere very deep in GHI firmware, so you can’t do much about it. Maybe try tuning other devices so they do not send too many messages too quickly one after another.

This scenario raises RxOver errors — in my experience.

@ Simon from Vilnius - You are absolutly right :wink: my mistake.

Hi everyone and thanks for your answers

Simons is right, I receive RX overs also when the buffer is full. The Overruns seems therefore to indicate that there’s a new message in the buffer that overwrites an old one. Am I wrong? Is there’s a timeout?