Thursday 25 June 2015

Connecting JTAG debugger to EzSBC2

I have one of these:


... and I plan to use it with Keil MDK and the EzSBC2. The EzSBC2 has SWD (single wire debug) interface, so I need to figure out the connection between the 20-pin JTAG and the EzSBC.

Keil has information on their page about connectors. This info is from there.

I also combined the EzSBC2 schematic and a picture of the board.

UPDATE: Checked and works fine. Pull-up / pull-down resistors were not needed. SWO pin is optional.


Wednesday 24 June 2015

The EzSBC2 dev board by EzSBC

http://www.ezsbc.com/index.php/
After searching for "LPC1347" on ebay, I settled on buying a EzSBC2 board from EzSBC in USA. I did not want to buy the more known/popular LPCXpresso, because there is just something that I don't like about them. The detachable debugging interface and ... blech. Small and simple is better. And cheap.

The EzSBC2 arrived very quickly (a week ?) from ordering and cost me only 18 €. It arrived in a very well packed box, with some quality pin headers. The EzSBC2 is very similar to the DipCortex M3 and apparently, someone else has been using it with mbed also.

Before I bought the EzSBC2 I checked out what kind of forums the manufacturer had. As it turns out, EzSBC company founder (?) Daniel is very helpful and active on the forumThat sealed the deal for me, right away. With new devices, you want to have all the information you can. It can really speed your progress.

EzSBC2 - ARM Cortex M3 - LPC1347 - 64kB Flash, 12 kB SRAM

 Next update will be about actually programming the EzSBC2 using the mbed online compiler

Finding an mbed-compatible development board for LPC1347


I started my search for a suitable development board by checking out the platforms on the mbed site. The reason why I started this way was that I have been a little bit involved in the mbed-community. mbed is, in my opinion, the only real alternative to Arduino. Great community, lots of helpful and knowledgeable people in the forums. Although less by sheer volume of users in the ecosystem, the level of sophistication of the on-line compiler and collaboration tools of the mbed ecosystem are way above and beyond the Arduino.


https://developer.mbed.org/platforms/
The mbed has a huge variety of platforms

Lo and behold, there was just the ticket: the DipCortex M3 by SolderSplashLabs UKHowever, the link to the SolderSplashLabs page is dead. Perhaps, so too is the company ?

Having had some previous experience with mbed development, I know you can find a board that is similar, and then adjust the code to suit your board. Off to Ebay, then !

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