Content originally posted in LPCWare by Pacman on Tue Oct 08 08:02:20 MST 2013
Quote: NXP_Paul
I would be interested to get feedback on what NXP should do to help new users get familiar with the LPC812.
To me, that is definitely a tough question to answer. (That might be a good sign).
Unfortunately, I'm no longer totally new to NXP or the LPC, but for inspiration, I'll try pretending coming just from some 8-bit microcontroller.
I'll pretend to be an almost extreme-newbie in this case, because sometimes things "just won't work", and it's good to have some detailed guidance on each step.
Usually people have a Windows-based PC, which calls for a serial bootloader (that's a very good idea, indeed!) and the ARM-tools (click-one-button-to-install software).
-But for me, things are different. =P
First thing is that I do not have a Windows-based PC, so I will have to go with open-source tools.
I will need to know how to build my own tools, as they're not available for my platform (no need to make a step-by-step guide, but you could point to the Yagarto and Linaro toolchains, which is are known to be good and working). (as for myself, I had to build my own, as the two mentioned toolchains would not build on my system).
OK. After that I need a JTAG adapter to be able to program the chip, as I don't have a serial interface on my computer (yes that's right, argh!).
Fortunately I have USB, but my ISP-adapter from the previous microcontroller I worked with will not work, as it's using SPI- or some other interface.
As a newbie, I would probably prefer a low-cost general-purpose JTAG adapter, which is not too difficult to get working with the open-source tools (OpenOCD in this case).
(Some of those sold on eBay won't work with LPC, so I won't buy those. Personally I have Olimex's Tiny-H and JTAG-lock-pick Tiny 2).
Next thing is to get example code and libraries (from sw.lpcware.com and git.lpcware.com) - how to download and clone.
Now a difficult one: How do I get the libraries and examples built with gcc (I recall having trouble with this).
OK, I got all the "free stuff". Now I ordered my chip, but it hasn't arrived yet, but I'd like to wire up a breadboard.
What components are necessary and why ?
...1 electrolytic capacitor, 1 x 100nF, 2 x 18pF, 1 x 12MHz crystal; connect the chip to 3V3, a male 20 pin-header/-IDC connector with 7-8 (10K) pull-up/-down resistors and you're good to go.
(where do I find the correct way of connecting the pull-up/-down resistors for JTAG, and how do I verify that the JTAG is wired up correctly)
Let's assume the chip has arrived and the breadboard is ready.
Now I need to initialize the chip, to get my long-awaited blinking LED - oh, I need to also connect a resistor in series with the LED; I could use 100 ohm in order to be blinded, but using a 1K has been my favorite for a long time.
I need to understand that I need to turn on the hardware power-switch to be able to get the hardware online. Eg. clock-power. This is essential and if starting with an ARM7TDMI-based microcontroller, this is really something that I must understand even before I place the chip on an adapter-PCB.
But again, it's essential that I know that I need to turn on the clock-power and why; it'll save me a lot of headache in the future.
I do not know if there are anymore things that could be "showstoppers" for a newbie. The most difficult of them has to do with getting open-source tools working.
Being able to get quickly through these problems would definitely be a huge help. The hardware problems are much easier: Smoke and smell means your wiring is incorrect. ;)
(I've gotten the LPC1768 working well, but am still having problems with flashing the 43xx - you probably wouldn't believe it, after all the help and config files I received from people in the 43xx category).
But if you ask me, the NXP support is doing quite a good job, especially when comparing to some of your competitors. ;)