lpcware

LPC8xx ROM API

Discussion created by lpcware Employee on Jun 15, 2016
Latest reply on Jun 18, 2016 by lpcware
Content originally posted in LPCWare by mister_T on Sat Mar 26 05:18:21 MST 2016
NXP LPC810 part can be very handy in DIY projects and also in low cost professional projects where the low pin count is sufficient. However, the internal flash size prevents its use quite often with LPCXpresso and ready made LPCOpen examples. These generally take about 8kb of flash while 810 only has 4kb. To address this issue a very good start is LPC810 codebase which can be found here: https://github.com/microbuilder/LPC810_CodeBase. This is a low memory project template to start work on. However, it does not take advantage of the ROM API included in many LPC parts and does not include I2C drivers.

I decided to move a bit further and use the abovementioned LPC810 codebase and LPCopen and combine these to reduce memory consumption even further. The lower memory requirements are achieved with ROM drivers for PLL, UART and I2C. LPC ROM API is a bit daunting to get into. These files should help with that considerably. You can find all necessary files in the attachment with readme.

The template is most easily used under Linux environments. Just navigate to the src folder and type, 'make clean' and then 'make'. Naturally you need arm gcc compiler installed. A good editor for Linux is Geany which has good integration with gcc.

LPCXpresso is a very good IDE. For easy integration I included LPC8x_ROM_LPCXpresso.zip file. This is an LPCXpresso project archive. Import it to LPCXpresso by clicking 'import projects' from the bottom left quickstart section. This has only been tested with Linux version of LPCXpresso but probably works in Windows as well.

For the example application to work, connect LM75 temperature sensor IC as follows.
PIO0.2=SCL
PIO0.3=SDA
A0=gnd
A1=gnd
A2=gnd

And very importantly, add pullup resistors from PIO0.2 and PIO0.3 to 3V3. Resistor value 1k-10k should be okay. If the example does not work, try reducing I2C bitrate in i2c.h file.

Original Attachment has been moved to: LPC8x_ROM_LPCXpresso.zip

Original Attachment has been moved to: LPC8x_ROM_template_0.zip

Outcomes