LPC11Cxx C_CAN controller msgobject ignored

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC11Cxx C_CAN controller msgobject ignored

352 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Harrie on Wed Sep 23 01:18:35 MST 2015
Unfortunately I am currently facing a problem, where only one particular msgobject is ignored.

- The baud-rate for the CAN bus is set to 250 kb/s.
- Each msgobject is masked to only permit single identifier.

This problem only seems to occur when messages for this msgobject are received at a rate of approximately 500 us.
Upon ignoring this message, messages coming from other identifiers remain to be processed correctly.

I have no control of the sending nodes, hence I seek a solution for this problem for the receiving side (LPC11C24).
To solve this problem I already arranged the msgobjects by priority, however solution this didn't help.
Any advice or suggestion leading to solving this problem is welcome.
Labels (1)
0 Kudos
4 Replies

333 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by starblue on Tue Sep 29 00:53:23 MST 2015

Quote: Harrie
The issue only takes place when the it is programmed to transmit CAN messages,
which effectively results into ignoring the incoming msgobject with the highest frequency ~500us on the canbus.

Note that at that frequency the CAN bus is close to its capacity (depending on the size of the data in the message).


Quote: Harrie
When transmitting at a rate of one message every 100ms, the problem occurs after approximately 15 to 30 minutes.
But with a higher transmission rate the system starts to ignore the msgobject even sooner.

I would guess that you have some race condition, for example some mistake in your interrupt handler.
0 Kudos

333 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Harrie on Mon Sep 28 03:47:27 MST 2015
Thank you very much for your reply,
Hereby a more detailed explanation of the problem.

In the the CAN-rx function the pre-defined receive msgobjects are checked using a switch statement switch (msg_obj.msgobj).
In its different cases the data from its corresponding msgobject is processed.

The issue only takes place when the it is programmed to transmit CAN messages,
which effectively results into ignoring the incoming msgobject with the highest frequency ~500us on the canbus.

When transmitting at a rate of one message every 100ms, the problem occurs after approximately 15 to 30 minutes.
But with a higher transmission rate the system starts to ignore the msgobject even sooner.

The problem only occurs when the system is programmed to transmit messages, hence no transmission results in a functional system.

Unfortunately, reading the MSGVALID bit does not disclose the cause of the problem.
0 Kudos

333 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by starblue on Sat Sep 26 07:29:17 MST 2015
When you say "ignore", what do you mean? The MSGVALID bit?

Maybe we could help you if you describe explicitly what you are doing, what behavior you are expecting, and what you actually observe?
0 Kudos

333 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Harrie on Thu Sep 24 06:14:13 MST 2015
While still searching for a solution, the following temporary workaround was found.

Disabling the transmission of CAN messages from the LPC11C24, avoids the msgobject from getting ignored.

Although this seems to avoid the problem from occurring, a solution which enables the transmission of CAN messages is desired.


0 Kudos