EmbeddedRelated.com
Forums
Memfault Beyond the Launch

LPC2129/01 Parts and CAN Filtering

Started by simonb65 October 6, 2008
Hi All,

We have a product which has been in production for some time using the
LPC2129. The newer units now have the LPC2129/01 (as nxp has made the
earlier revisions obsolote). However, in NXP's wisdom they have changed
the CAN channel filtering indexing from 1 & 2 to 0 & 1 !! Which ind of
screws up our code somewhat !!! Grrrrr !

Now, as our current firmware needs to support existing units, does
anyone know how I can detect if the part is a LPC2129, LPC2129/00 or
LPC2129/01 so the code can account for this indexing at runtime ????

Has anyone else hit the same issue ?

Why has NXP decided to change a fundamental thing as this halfway
though a products lifecycle ???????

Regards,
Simon.

An Engineer's Guide to the LPC2100 Series

Hi Simon,

The "/01" revision devices incorporate an autobaud feature for the
UARTs. This new register may be used to differentiate them from the
"old" parts.
Bit 1 (Mode bit) of the UxACR register must be written with both a '1'
and a '0' value. Verifying (reading back the same value) each of the
above operations will test for the revision.
That is, for the old parts, where this register doesn't exist, one of
the above operations will fail. If both operations succeed, this means
the register exist, and a /01 revision part was detected.

Hope this helps!
Ken

--- In l..., "simonb65" wrote:
>
> Hi All,
>
> We have a product which has been in production for some time using the
> LPC2129. The newer units now have the LPC2129/01 (as nxp has made the
> earlier revisions obsolote). However, in NXP's wisdom they have changed
> the CAN channel filtering indexing from 1 & 2 to 0 & 1 !! Which ind of
> screws up our code somewhat !!! Grrrrr !
>
> Now, as our current firmware needs to support existing units, does
> anyone know how I can detect if the part is a LPC2129, LPC2129/00 or
> LPC2129/01 so the code can account for this indexing at runtime ????
>
> Has anyone else hit the same issue ?
>
> Why has NXP decided to change a fundamental thing as this halfway
> though a products lifecycle ???????
>
> Regards,
> Simon.
>

Hi Ken,

Thanks for the idea. I'll give it a whirl !

I looked at using the IAP to get the bootloader version (thinking
that only the newer parts would have the later bootloader v1.68), but
then noticed that NXP have brought out a later version (v1.69) for
the now obsolete /00 parts !! which kind of threw a spanner in the
works there !

Regards,
Simon.

--- In l..., "kendwyer" wrote:
>
> Hi Simon,
>
> The "/01" revision devices incorporate an autobaud feature for the
> UARTs. This new register may be used to differentiate them from the
> "old" parts.
> Bit 1 (Mode bit) of the UxACR register must be written with both
a '1'
> and a '0' value. Verifying (reading back the same value) each of the
> above operations will test for the revision.
> That is, for the old parts, where this register doesn't exist, one
of
> the above operations will fail. If both operations succeed, this
means
> the register exist, and a /01 revision part was detected.
>
> Hope this helps!
> Ken
>
> --- In l..., "simonb65" wrote:
> >
> > Hi All,
> >
> > We have a product which has been in production for some time
using the
> > LPC2129. The newer units now have the LPC2129/01 (as nxp has made
the
> > earlier revisions obsolote). However, in NXP's wisdom they have
changed
> > the CAN channel filtering indexing from 1 & 2 to 0 & 1 !! Which
ind of
> > screws up our code somewhat !!! Grrrrr !
> >
> > Now, as our current firmware needs to support existing units,
does
> > anyone know how I can detect if the part is a LPC2129, LPC2129/00
or
> > LPC2129/01 so the code can account for this indexing at
runtime ????
> >
> > Has anyone else hit the same issue ?
> >
> > Why has NXP decided to change a fundamental thing as this halfway
> > though a products lifecycle ???????
> >
> > Regards,
> > Simon.
>

Memfault Beyond the Launch