Severe Bug in LPC2XXX CAN-Controller
2005-05-19 by alipowsky
As we spent a lot of time and work in isolating and reporting the following bug, we want to make this information available to all, who intend to use the CAN-Controller of the LPC2119 or LPC2292 or other LPC2XXX derivate. If you use 29 Bit identifier, it can happen that the unit will change content of a received data frame. Identifier and data byte are suspected to be corrupted. This happens, if the unit looses arbitration to another Can-Node. Normally the CAn-Controller will switch over to reception, if he had lost arbitration and will receive the message of the other node, delaying his own message. On the actual LPC-CAN-derivates the same happens, but the message, which is received in this case, will not contain the data from the message, which won the arbitration, but it will contain arbitrary Identifier and data bytes. This happens using 29 Bit identifiers, and if the identifier of the messages in the arbitration battle, have the same leading 12 bits. We reported this bug to philips on 25.4.2005 and got a confirmation in the meantime. Finaly we don't understand, why this important information is not made available in the corresponding errata sheets by philips.