Tuesday 4 August 2015

Looking for code examples ? LPC1343 and LPC1347 are not siblings !

Just a little heads up for anyone starting to work with LPC1347.

Although you could *think* by the naming that LPC1347 is similar to LPC1343, looking at LPC1343 code samples is going to be a waste of your time.

LPC1347 is a Cortex-M3 version of the LPC11U24 (Cortex-M0). LPC1347 is NOT a RAM-expanded version of LPC1343.

Microbuilder.eu sums it up in this sentence:
The new GPIO block (of LPC1347) is the same one used in the similar ARM Cortex M0-based LPC11U24, which makes it easy to optimize for cost later and switch between the two devices, but it’s also unfortunately a breaking change compared to the 1343. All pins are now based on two GPIO block – PIO0[0..31] and PIO1[0..31] – rather than the previous four GPIO blocks on the LPC1343. This is potentially the biggest change from a SW migration point of view.
Why does this matter ?

Code examples for LPC1347 are relatively rare. If you are struggling to find good code examples for LPC1347, here's my advice: search for LPC11U24 or LPC11U35 instead. With high probability you will find example code that works with small (or no) changes also on the LPC1347.

For further study of how LPC1343 and LPC1347 differ, take a look at the CMSIS header files:

LPC13xx.h (for LPC1343)
LPC13Uxx.h (for LPC1347)

And also the similarity of LPC1347 to the LPC11Uxx.h ...

LPC11Uxx.h (for LPC11U24 and LPC11U35)