Showing posts with label Arduino. Show all posts
Showing posts with label Arduino. Show all posts

Wednesday, 24 June 2015

Drag n' drop programming on the LPC1343 and LPC1347

In order for your PC to "see" your Arduino, your Arduino board most probably has whats called a USB to serial converter chip. When you program your Arduino from the Arduino IDE, what actually happens is that the pc speaks with the USB to serial converter,which in turn talks via serial communication with the microcontroller (that's the ATmega). That is, unless you are using Arduino Leonardo or something else with the ATmega32U which also has built in USB. But basically, you make a serial connection from the PC to the device via USB.

LPC1343 and its bigger brother LPC1347 have a different strategy entirely. These chips have a bootloader in ROM that is capable of identifying itself as an USB mass storage device. What this means is that when you plug in your device the bootloader can make the device pop up as a removable drive on your PC. Programming the device is simply a matter of deleting the firmware.bin on the removable drive and copy pasting your own firmware (a .bin file) into the now empty drive.



Do not be alarmed by CRP_DISABLED - it simply means that "Code Read Protection" is turned off in the device. This is normal.

Getting started with NXP LPC1347 (ARM Cortex-M3)

After working on AVR ATmegas for a while, I decided to get back to ARM's.
This blog is intended to be a journal of all the things I encounter on the way.

Out with ATmega (Arduino), in with ARM

I have nothing against Arduino. This picture depicts my general feeling on the state of my hobby at the moment.

Playing around with Arduinos and the ATmega328 (32 kB Flash, 2kB RAM) in particular I got frustrated by the need to have a USB to Serial converter in my projects (i.e. the chip that enables you to connect your Arduino to your PC). I also constantly ran out of program space. Going to "bigger" ATmegas was not an option - ATmega2560 is hugely expensive in my opinion and still doesn't have USB built in.


I set my sights on the LPC1347 because it had the right mix of features for me:
  • drag n' drop programming (built-in USB bootloader)
  • 64 kB of on-chip Flash
  • 12 kB of SRAM
  • runs at 72 Mhz
  • is 32 bits
  • can be programmed on the mbed platform