In part 1 of this series, I mentioned how I stumbled across this ARM processor in breadboard friendly 28pin PDIP package. In this post, I will show you what basic tools I used to get this chip up and running.
This breadboard friendly 28pin PDIP LPC1114FN28 is not widely available in UK. At the beginning of this year, I bought a few samples from Mouser to play with. What make these ARM devices really user friendly than their 8-bit counterparts is that the NXP was very thoughtful that they put a bootloader into their chips. By pulling one of the designated pin, P01(pin24), low during reset, the device will go into bootloading mode, where you can download your program into the chip’s flash memory via its serial interface. You can also use the standard Serial Wire Debug(SWD) pins to download/debug the device if you have the appropriate hardware debugger.
To make life easier, there is this Flash Magic GUI utility, which will manage the downloading of your program into the chip once you’ve put it in bootloading mode. They are available for both Windows and Mac OS X versions. So Mac user need not feel you are being left out here.
As a prove of concept, I pulled out my trusty breadboard and wired up the chip in its minimum configuration needed to get it working. The LPC1114 default to run from its internal RC oscillator, this is what I’ll use. I also need a 3.3V USB serial cable to download the test program.
If you want to use the output from the online IDE, you’ll have to use the “bin2hex” utility from here, since the online compiler only output files in binary format. If you have the Keil compiler, you simply check the box in the configuration to tell the compiler to output hex file in additional to the normal bin/elf format.
When everything setup correctly, I tried the simple “Hello World!” equivalent for embedded device, the LED blinky program. I wrote my test program using the mbed’s on-line IDE environment. If you’ve downloaded a trial version of the Keil compiler, you can use that too. However, it is easier for me to get everything working from the mbed’s on-line IDE environment first.
Once you get things working, you can then export a working project from mbed’s on-line IDE environment, there you’ll also get all the needed libraries and startup code too. When you import this back to the Keil IDE environment, you should get everything working just like you would do from the on-line environment. Remember to configure the Keil compiler to output the program in hex format, so that you can flash the chip directly with FlashMagic.
Click on the following link to see the working of my program running in the test circuit on the breadboard.
As you can see, it works! This is just really cool. Having a bootloader built-in is a really nice feature. Apart from NXP, other vendors like ST and Freescale also place the bootloader in their chips so that hobbyist need not worry about finding a suitable bootloader for the chip. The bootloader allows hobbyist to bring the chip up and running in a very short period of time. I wonder if they can do that with the startup code too, so we only need to concentrate on writing our code from main() onward.
In next part of this series, I put all this together on a circuit board.