4

I had previously worked on Arduino but I think it was very simplified for the users. Now, I want to learn properly. I decided to begin learning ARM microcontroller. So, I bought LPC1114 DIP because I can do it on a breadboard. I didn't want to use any ready-made board. How do I proceed? Is there any tutorial for programming? I found some code and trying to learn from that. How do I program my microcontroller? I am kind of stuck here.

Edit: I decided to go for ARM after reading some comparisons. Since LPC1114 is 32 bit in comparison to 8 bit AVR, I thought learning ARM would be useful for larger projects.

zud
  • 1,746
  • 6
  • 25
  • 42
  • 4
    It is perfectly possible to learn how to use a MCU at a low-level with an Arduino device, simply by ignoring the Arduino IDE. It's not too late to back out if you feel uncomfortable. – Ignacio Vazquez-Abrams Oct 30 '13 at 23:59
  • Step 1. Choose the firmware development toolchain, which suits your situation and your purposes. (It's good that you've decided to stay away from pre-made dev boards.) – Nick Alexeev Oct 31 '13 at 00:27
  • I agree with @IgnacioVazquez-Abrams. I do it all the time. If I need a quick test I use the Arduino IDE and if I want to tightly control the hardware I program the Arduino board using standard AVR toolchain from the command line. ARM controllers are far more complex than AVR's, the learning curve will be a lot steeper, but sure it can be done. – jippie Oct 31 '13 at 07:04
  • @IgnacioVazquez-Abrams I want to work with ARM. How helpful will it be to learn AVR first before going to ARM? – zud Oct 31 '13 at 08:45
  • @zud: Unless you're working with a *truly* exotic MCU, e.g. a Malbolge engine, most MCU skills are translatable to any architecture, even across the Harvard/Von Neumann split. – Ignacio Vazquez-Abrams Oct 31 '13 at 08:48
  • 2
    @NickAlexeev - actually, I'd somewhat disagree on staying away from the pre-made boards. It can be quite useful to start with a known-good board to verify the toolchain and programmer setup, and *then* move to a similar target on a custom board (/breadboard). One thing ST for example did really well with their "Discovery" series was to put out $12 class boards which have a target ARM on board, and also a second MCU that functions as the programmer for either the onboard target, or (via a 4-wire SWD cable) the chip an experimenter may put on their own custom board. – Chris Stratton Oct 31 '13 at 15:28
  • @ChrisStratton The low price of the dev board is the biggest non-factor. In fact, that's a lure. – Nick Alexeev Oct 31 '13 at 22:04
  • You are welcome to think of it that way, but the practical side is that anyone can afford (as an impulse buy) to have a programmer and a known-good test platform to try for reference if the custom board doesn't immediately work. It also demonstrates that all that is needed to make an SWD adapter is a $6/qty1 MCU. – Chris Stratton Oct 31 '13 at 22:10
  • @ChrisStratton You didn't get my point. Oh well. – Nick Alexeev Oct 31 '13 at 22:22
  • No, I think you miss the point - it's easy to conclude that cheap tools are irrelevant in a professional setting, but that's not true - and not just because engineers can buy them without having to get a PO approved. More important is that the cheap tools have to actually work, or word gets out and the whole point of offering them is defeated. Contrast to those who want $300 for a programmer - in and of itself not a problem, except that at that price they seem to put more effort into securing the system against cloners than into making it actually work well for customers. – Chris Stratton Nov 01 '13 at 03:48

2 Answers2

5

Fortunately the LPC1114FN28 has a bootloader, enabling it to be programmed over a serial link. Here is a web page describing the "getting started" process: http://vilaca.eu/lpc1114/

I'd still reccomend getting a board (e.g. LPCXpresso) for two reasons: it's easier to get started with, and it has provision for JTAG/SWD debugging. As a beginner, it's very easy to get discouraged if the only thing you can determine about your program is that it crashes "somewhere".

(There seems to be snobbery about pre-made dev boards; I can understand the argument that one should build a fully integrated "product" as the final outcome of a hobby project, but if you just want to carry out experiments to learn things they save a lot of time and are reusable.)

pjc50
  • 46,540
  • 4
  • 64
  • 126
2

I strongly recommend that you get a debugging interface that you can use to program and debug this device. The cheapest and fastest way to get started is probably to by an LPCExpresso board and use the LPCExpresso software for programming. The LPCExpresso board is actually two boards: there is one processor that is used as a debugging interface, and the second processor is the "target". You can get one of the these boards with an LPC11xxx as the target processor and it's fairly easy to physically separate the debugging interface from the target processor. Then you can use the debugging interface to program your LPC1114 DIP devices. I've been doing this but I use a more expensive JLink debugging device.

Note that you can't use conventional JTAG with the LPC11 parts, you need to use the ARM Single-Wire Debug (SWD) interface.

Joe Hass
  • 8,447
  • 1
  • 29
  • 41