Literature on LPC1100 family - Page 1
Forum section: electronics / general

author: poorchava
author_rank: Super Contributor
timestamp: July 18, 2012, 09:15:48 am
content: Hello all,I've recently been looking for a low cost mcu to use in my designs. I decided that I would like to focus on using one family of microcontrollers in less demanding applications instead of leaping between AVR, PIC16 and PIC18 (dspic33 I will still use because of nice set of peripherals). So after some research I found out that devices like LPC1111 cost LESS than for example ATMega16 or like 90% of PIC18's. So there goes the question: do you know of any article, e-zine, book, blog, etc describing in detail how to use NXP's LPC1100 family Cortex-M0 microcontrollers? I've seen similar guides to STM32F3 and LPC2100, but nothing so far for LPC1100, apart from "The definivite guide to ARM Cortex-M0" by Joseph Yiu. but that books - although very interesting and informative - treats about the internals of Cortex-M0 core in general rather than some specific MCU. I guess I'm lacking informations about peripherals usage, register names, toolchains, some xamples step-by-step, that kind of things.btw. I have rather limited experience with ARM core MCUs, but i figure that if there's something to begin with, it will probably be Cortex-M0, because it's the "most minimalistic" of all cortex architectures.In general: all recommendations regarding resources for learning about these MCU's are welcome.EDIT:can you recommend some hardware interface for LPC1100? If possible I'd like it to be compatible with Atollic IDE. Might be either DIY-style, open hardware or commercial product (as long as it doesn't exceed ~$60 shipped)

author: ToBeFrank
author_rank: Regular Contributor
timestamp: July 18, 2012, 03:44:10 pm
content: I'm using an LPC11C24 in my current design. I knew nothing of ARM or the M0 when I started. I bought "The definivite guide to ARM Cortex-M0". In my opinion, it's just a regurgitation of theuser manual, but without the stuff specific to the LPC chip. I would start with theuser manual. It is pretty good at explaining how to use the peripherals. Also, there is a lot of example code out there showing how to use them (read below).I don't know anything about the Atollic IDE, but I started with theLPCXpresso. The hardware is $30 and the IDE is free for up to, I think, 32KB. It's pretty simple to set up and get started using the chip. They have a whole bunch of example code for theLPCXpressothat you can download, run, and get ideas about how to program the peripherals.

author: T4P
author_rank: Super Contributor
timestamp: July 18, 2012, 04:05:18 pm
content: Even though how reading the datasheet might bore people ( if it did ... you really shouldn't be doing this )It's always better than some "definitive guide"

author: andyg
author_rank: Regular Contributor
timestamp: July 18, 2012, 04:53:11 pm
content: I agree that the official NXP datasheets and app notes are the best literature. Have a good read or look through on them, it will take while, those ICs have a lot of features, more than your AVR or PIC in general.Personally, I have two methods i use to program LPC11xx:1. Cheapest -CooCox IDE(free) andCoLinkExdebugger (maybe $20), there are a few clones which work well, it is open PCB but closed firmware.2. Faster and nicer to use -Keil MDK Lite(32 KB code limited) and Segger J-Link (education J-Linkis around $70 or so).LPC11xx doesn't do JTAG debugging, only SWD, so there are only a few select few debuggers that work with those low pin count chips.On another note, STM32 is one of the cheapest microcontrollers to get learning if you want to learn something different on a budget, STM32 Discovery dev boards are around the $10 mark and has built in ST-Link debugger which also works with free CooCox IDE and Keil MDK Lite (and probably other IDEs as well). Its a proper debugger, watches, breakpoints etc. And it can program other STM32 boards as well, if you decide to design a custom board yourself later.

author: Unknown
author_rank: Unknown
timestamp: July 18, 2012, 07:30:43 pm
content: The LPCXpresso is similar to the STM32*DISCOVERY. It also includes a programmer/debugger. Downside that this is limited to the CodeRed IDE, which is Eclipse + gcc. It includes a license for a limited version (no C++ support, only some LPC ARM parts). Debugging is limited to 128kB, this limit should be irrelevant for Cortex M0 parts.The LPC11xx can also be programmed via UART in ISP mode by FlashMagic. No debugging though. I believe the LPC11U24 also has a built-in USB bootloader.

author: poorchava
author_rank: Super Contributor
timestamp: July 19, 2012, 08:05:38 am
content: I have the STM32 VLdiscovery board with cortex m3. I had a pretty hard time getting it to communicate with Keil or IAR because of some driver issues (which in case of Keil i was able to solve by copying the /dll usb driver from standalone STLink app and replacing Keil's one).Does the LPCLink work with other IDE? Like eg. Keil, IAR or Atollic? Or maybe it's possible to use STLink with LPC mcu or the other way aroud - LPCLink with stm32 mcu (jtag and swd is standard stuff i think).

author: nctnico
author_rank: Super Contributor
timestamp: July 19, 2012, 10:56:30 am
content: Programming the NXP's LPC ARM controllers with flash magic always worked for me. No hassle with crappy JTAG dongles and drivers. Use a scope and an output pin until you get a command line interface going and work from there.

author: poorchava
author_rank: Super Contributor
timestamp: July 19, 2012, 12:21:03 pm
content: Yeah, that feature is nice, especially when I would want to program more devices with the same firmware. But as I'm just starting in ARM microcontrollers, I'd really like to have a debugger handy to know what exactly went bananas when something doesn't work.

author: Unknown
author_rank: Unknown
timestamp: July 19, 2012, 12:51:02 pm
content: As I already mentioned, the LPC-link feature of the LPCXpresso only works with the CodeRed IDE, and only supports a subset of the NXP LPC parts. The firmware and probably also communication is encrypted, so hacking this would require a fair amount of effort. The micro used for LPC-link is a quite expensive and beefy part, so NXP is worried about people buying the Xpresso just for this micro. Hence the encryption.The ST-Link hardware can program other ARM micros that support SWD (I believe some OpenOCD support is in development), but the ST software (or any third-party IDE using the official driver) can not.

author: nctnico
author_rank: Super Contributor
timestamp: July 19, 2012, 12:55:49 pm
content: Look for OpenOCD (http://openocd.sourceforge.net/) . It supports an easy to DIY parallel JTAG interface. Still, setting up a JTAG or SWD debugger is just as hard as using I/O pins to see where the processor gets stuck. And if you start small and add little bits its easy to know where things went wrong.

author: poorchava
author_rank: Super Contributor
timestamp: July 19, 2012, 01:57:19 pm
content: I was generally facing that when starting my work with microcontrollers like 5-6 years ago. I've been using AVR back then and programming through simple LPT dongle consisting of 74hc244 and nothing else (actually, it has proven to be completly indestructible and i still have it functional). I was just dumping craploads of data through serial port, because i didn't have an oscilloscope back then (i even made a library just for that purpose).On the other hand ability to alter single variables or registers is extremly handy (for example coarse tuning of motor control applications, which has been my field of interest for a few months now). Actually i've been thinking about building some kind of jtag LPT/USB dongle but there is so much informations all over the net that I can't really tell what will work with particular IDE+PC+MCU+application combination. Especially that the ARM market is developing so fast nowadays

author: nctnico
author_rank: Super Contributor
timestamp: July 19, 2012, 02:34:58 pm
content: I'd go for Eclipse and GCC. And if you want in circuit debugging use GDB. GDB can also do remote debugging through OpenOCD. For your motor control application I strongly recommend implementing a simple command line interface. That will allow you to change settings on the fly as well without risking overwriting parameters you shouldn't overwrite.

author: ToBeFrank
author_rank: Regular Contributor
timestamp: July 19, 2012, 03:42:33 pm
content: Be careful about going the OpenOCD route. These chips are SWD only and last time I tried to get OpenOCD working with SWD, I gave up in frustration. It's simply not worth the time and frustration when there are so many cheap and simple alternatives out there.