Q&A for the NXP (Philips) LPC2364, LPC2366, LPC2368, LPC2378, LPC2387, LPC2458, LPC2468, LPC2478

Compatibility:

Q: Are all members of the LPC236x family compatible, e.g. is the LPC2364 drop in compatible to the LPC2368?

A: besides the differences in memory size and the documented availability of the SD-card interface only on the LPC2368, they are drop in compatible. If you did your development with a LPC2364 and need more memory, your program will run on a LPC2366 or LPC2368 without any changes or for testing purposes without recompiling. All SFRs are on the same addresses and have the same functionalities.

Q: Is the LPC2387 compatible to the LPC236x?

A: The LPC2387 might as well have been called a LPC2369 for that matter. The difference is the SRAM size and the absence of the speed related Erratas. The LPC2387 is obviously based on the corrected database of a LPC2368 rev “B”.

Q: Are all the LPC2400 devices compatible to each other?

A: This one is a little more difficult and depending on the revision of the chip. I consciously excluded the LPC24x0 from the compatibility list. They are also developed with the same development database but a device without flash can over time look different because it will see different redesign cycles. I have not worked with the LPC2478 yet (Jan 08) but the LPC2458 and LPC2468 are definitely software compatible. On top of this, all the LPC2300 devices are also software compatible to the flash-based LPC2400.

Q: What about compatibility of LPC2100 and LPC2200 with LPC2300 and LPC2400?

A: They are very similar but the LPC2300 and LPC2400 devices are a newer generation and they include sometimes newer versions of the same peripheral (continuous improvement). There have also been some particular changes in the concept from LPC21/22xx to LPC23/24xx. The interrupt controller needs to take care of so many interrupts on the LPC23/24xx that the assignments have changed a little. The CAN controller gets a lot less dedicated interrupts on the new devices.
Another change in concept is the reset state of peripherals. In the older devices, all peripherals come up enabled. Advantage is that software will work without enabling the peripheral. Tricky are the timers, half of them come up enabled for compatibility reasons, the other half disabled for power saving reasons. CAN has experienced that chance as well, it comes up enabled on the LPC21x9 and LPC229x but disabled on all the LPC23/24xx. There are more gotchas,  that I will list once I either experience them myself or read about them.