Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

NXP LPC2000 series board - ARM7

Status
Not open for further replies.

futz

Active Member
My friend gave me a leftover CPU/GPU cooler controller board he had kicking around (it was a "beta" product - he had some trouble with it and replaced it with something else). Opened it up and it turns out to have a NXP LPC2141FBD64 chip on it. The MCU is crazy overkill for what the board was doing.

The NXP (founded by Philips) LPC2141 is an ARM7TDMI-S based high-performance 32-bit RISC Microcontroller with Thumb extensions 32KB on-chip Flash ROM with In-System Programming (ISP) and In-Application Programming (IAP), 8KB RAM, Vectored Interrupt Controller, One 10bit ADCs with 8 channels, USB 2.0 Full Speed Device Controller, Two UARTs, one with full modem interface. Two I2C serial interfaces, Two SPI serial interfaces Two 32-bit timers, Watchdog Timer, PWM unit, Real Time Clock with optional battery backup, Brown out detect circuit General purpose I/O pins. CPU clock up to 60 MHz, On-chip crystal oscillator and On-chip PLL.

lpc2141_800x600.jpg

The board is fairly generic and useable by me. It has some MOSFETs onboard for switching heavy loads.

Like PICs, you can't read the existing code (if they've protected it - I assume they did), but you can just erase the chip to get back to square one and make it programmable again.

And there's a set of holes for their 2x10 IDC JTAG connector on the board as well as a 2x5 ICP connector! :D Woohoo! Solder in some pin header and I'm in business (I think). I'm ordering a **broken link removed** and I'm going to have a play with ARM7 now. Should be interesting. :p
 
Last edited:
I would tend to agree. I think they probably have a lot of investment in the ARM stuff since generic pricing shows a $2.50 PIC, vs a $4.50 NXP ARM in qty. Don't bother saying there are many for less-they are using he USB to interface with the PC.

Which programmer did you order?
 
Last edited:
futz you're one of the few folks I know that can successfully jump from one arcitecture to another with relitive ease.
PIC assy makes more sense than Intel, AVR makes more sense than PIC and ARM makes more sense the AVR, but I think like a machine-just ask my wife! :)

Actually 68000, AVR, ARM, and PDP11 are all very similar - they all have multiple general purpose registers and no accumulator.

Technically the TI99/4 CPU was similar in that respect but all it's registers were out in RAM.
 
Last edited:
nice... i have never heard of that one...but we have been using the NXP ARMs for a few years already
Well then, maybe you have some idea of how to make this thing work. I've been at it for two nights now and, though I'm a bit closer maybe, I'm still SO lost! :eek: What horrible, horrible software and documentation! Massive confusion. :p

All the docs are out of date and talk about hardware/software that's different from what I'm using. I'm using the yagarto gcc toolchain with Eclipse. I've successfully compiled a C program after MUCH screwing around to get it to work right - absolutely nothing is pre-configured for you, and proper documentation on how to config things is very difficult to find - maybe nonexistent? I have no idea how to flash the chip. The board has no serial port, so I can't use the bootloader.

What fun! Reminds me of when I taught myself 6809 assembler and C (with no internet) in the early 80's. You need the grinding determination. :D
 
Aha! I think I may have found a solution. Rowley Crossworks is a complete IDE with C/C++ compiler and best of all it supports the Olimex Arm-USB-Tiny. And a personal license is a very reasonable $150. I'm grabbing their 30-day trial and we'll see how it goes...
 
Well then, maybe you have some idea of how to make this thing work. I've been at it for two nights now and, though I'm a bit closer maybe, I'm still SO lost! :eek: What horrible, horrible software and documentation! Massive confusion. :p

All the docs are out of date and talk about hardware/software that's different from what I'm using. I'm using the yagarto gcc toolchain with Eclipse. I've successfully compiled a C program after MUCH screwing around to get it to work right - absolutely nothing is pre-configured for you, and proper documentation on how to config things is very difficult to find - maybe nonexistent? I have no idea how to flash the chip. The board has no serial port, so I can't use the bootloader.

What fun! Reminds me of when I taught myself 6809 assembler and C (with no internet) in the early 80's. You need the grinding determination. :D

I thought things would have improved by now...

Have you gone through Jim Lynch's tutorial for setting up the free GCC/GNU tool chain. The example software is available here:

http://www.atmel.com/dyn/resources/prod_documents/atmel_tutorial_source.zip

EDIT: that is for the atmel arm, shoot. I'll try to find the resources for the LPC. I'm sure I have a local copy if all else fails... More later.

I'm having a hard time finding the tutorial, but I will....

You will find Martin Thomas's site very helpful too:

**broken link removed**

And "The Insider's Guide To The NXP (formerly Philips) ARM7-Based Microcontrollers (LPC21xx)":

**broken link removed**

I did give the crossworks tools a go, and they were SO much easier to use, but back then they didn't have the lo cost licence (although they were more reasonably priced than the competition. (Keil)

Keil has an evaluation version too, and they ask for a bunch of information... limited to 32kBytes... and to ' a few months.' I'd prefer the crossworks tools.

IIRC the chips were easy to get the program downloaded to, and the toughest part for me were the make files...

I'm not sure about all the 2000 series, but the ones I have have two hardware serial ports. You could add on a level converter by soldering 'green wires' to the pads... then deadbug your converter above the processor...

EDIT: the LPC2000 user forum:
LPC2000 Discussion Group/Forum on EmbeddedRelated.com
 
Last edited:
Well I found the first Lynch tutorial, it is here:

SparkFun Electronics :: View topic - how to get started?

Posted: Tue May 24, 2005 5:29 am Post subject: **broken link removed** Roger posted the following question:
Is there anywhere a "how to" document for detailed LPC GCC setup?

I created a nice GNU GCC/Eclipse tutorial for the LPC2106 using the New Micros TiniARM board, you can download the tutorial from their web site.

https://www.electro-tech-online.com/custompdfs/2008/11/TiniARM_Dev_Eclipse.pdf

I'm working right now on a new and improved tutorial that uses the Olimex LPC2106 development board and the Olimex wiggler clone for jtag debugging. It's about two weeks away, but I'll have to find somebody who will host it.

Cheers,
Jim Lynch

Olimex was supposed to be hosting that tutorial on their site, but I'm not sure if they do.
 
Sorry I missed that posts were showing up here...I only look at the first page. We use Keil here. I believe the only limitation on the demo is 16K of code.

Evaluation Software from Keil

And they have wonderful cycle accurate simulation with nice hardware emulation modules.
 
Last edited:
Uh, I'd check on that one. Seems there are a few limitations... including time expiration.
Well that's irritating. I'll have to verify with the Luminary guys, that is what they said, though it is a 32K limit and not 16K. I have the eval kit at work... If it is a special for their kits it might be possible to get that version and adjust it for the LPC21xx. The start up code is different since that is a cortex instead of an arm7.
 
Well that's irritating. I'll have to verify with the Luminary guys, that is what they said, though it is a 32K limit and not 16K. I have the eval kit at work... If it is a special for their kits it might be possible to get that version and adjust it for the LPC21xx. The start up code is different since that is a cortex instead of an arm7.

You may have an older evaluation version, though. I don't remember the time limitation, and the Keil tools I evaluated are no where to be found on my HD. I may have made a backup copy, which could be ... somewhere! :eek:

At that time, perhaps about 2005, I was complaining to Paul at Crossworks as they had only a one month evaluation, then you had to pay full price. They released the personal version, but by that time I had put away my ARM projects. :(
 
Actually the 32K version is with the LUMINARY ARM kits, as I said I will have to talk to them next week as the USA is shutdown for a long weekend :)
 
I thought things would have improved by now...
The software may have improved, but the docs lag behind, as always. Nobody likes to do documentation. :p

Have you gone through Jim Lynch's tutorial for setting up the free GCC/GNU tool chain?
No, but I did go through his (badly out of date) tutorial, "ARM Cross Development with Eclipse Version 4". It came on the CD supplied with the Olimex ARM-USB-Tiny. The installer on the disk installs Eclipse, the yagarto toolchain and supposedly sets everything up in one go. In reality, though, it's not quite so simple.

Crossworks won't connect to the programmer either. It seems to know it's there (click on other programmers in the list and it says, "There are no xxx programmers connected" - it doesn't do that for ARM-USB-Tiny), but won't connect.

I read a forum post somewhere in my Googling last night where a guy says his ARM-USB-Tiny got the wrong PID/VID when the drivers were installed. I'm going to look into that tonight. Maybe if I can fix that I can even use Eclipse? Who knows?

You will find Martin Thomas's site very helpful too:
Found that one already.

And "The Insider's Guide To The NXP (formerly Philips) ARM7-Based Microcontrollers (LPC21xx)":
Downloaded that a few days ago and have been reading through it. Good book!

Keil has an evaluation version too, and they ask for a bunch of information... limited to 32kBytes... and to ' a few months.' I'd prefer the crossworks tools.
I might have a look at Keil still. But if their demo is time limited, it's useless to me. I never rush these things, and I won't pay thousands for software. It's a hobby for me, not a business! :p

IIRC the chips were easy to get the program downloaded to, and the toughest part for me were the make files...
I used to know how to do make files, but they were simpler then. Eclipse/yagarto made me one automatically when I created a new project. Whether it's correct I don't know...

I'm not sure about all the 2000 series, but the ones I have have two hardware serial ports. You could add on a level converter by soldering 'green wires' to the pads... then deadbug your converter above the processor...
Ya, the 2141 has two UARTs. This board is a multi-layer (more than 2), so there's really no pads to solder to except the LQFP ones. I'd need super fine wire to get soldered onto those. I should have a close look. Maybe I could hit some via's or something.

Now that I have the programmer (and the bug :D), if I can't make this board work I'll just buy a dev board from Optimal Microsystems. That way I at least have access to all pins and peripherals without a fight. I'm liking **broken link removed**.

Ah, good. I already joined the LPC2000 Yahoo Group, and have been searching the posts for info.
 
Last edited:
I don't remember the time limitation, and the Keil tools I evaluated are no where to be found on my HD.
Yes, Keil demo tools are time limited, but you can reset the timer by downloading and installing the latest version.

The tools are time-limited and cease to run a few months after installation. If your tools have expired, install the latest release of the Evaluation Tools to reset the expiration date.
 
Ya, the 2141 has two UARTs. This board is a multi-layer (more than 2), so there's really no pads to solder to except the LQFP ones. I'd need super fine wire to get soldered onto those. I should have a close look. Maybe I could hit some via's or something.

Now that I have the programmer (and the bug :D), if I can't make this board work I'll just buy a dev board from Optimal Microsystems. That way I at least have access to all pins and peripherals without a fight. I'm liking **broken link removed**.

Well, worth a try hacking what you have, but there is the chance you will ruin it. Looking at the picture you posted, I was thinking that you could connect to the pins on the flat pack, but when I took a look at my hardware it may not be so easy. :D That board you linked to seems like it is priced fairly. I can't remember what I paid for the 2138 board (Olimex) but I'm sure it was more than that, and my board doesn't have near as many features. I'm not really trying to talk you into it, :D but you have got me dusting off my old boards. :D

Not near enough time in a day.:p
 
Well, worth a try hacking what you have
Not necessary! :D I found a post at embeddedrelated.com by Paul Curtis of Rowley Associates that says to try bumping the JTAG divider way up (I went to 20) and try setting TRST Open Drain = NO (YES is default).

That did it. I'm connected. Woohoo! :D Now I have to spend another evening or two (or six :D) studying datasheet and user guide and all the other nice info to get this thing blinking some LEDs (the MCU's "Hello World" :p).

EDIT: I've since tuned the JTAG divider back down to 4, which, I assume, makes programming/debugging a LOT faster than 20. It won't connect at less than 4.

Not near enough time in a day.:p
You got that right! Tis bedtime already. But at least I can relax about getting this thing working now.

About an hour ago I was getting really disgusted with things, so I ordered that LPC2148 dev board from Optimal, thinking that I'd at least have a known-good board then. Now I guess I don't really need it. Ah well, it's good to have too many toys. :D I also ordered a **broken link removed**. Their price is actually a couple bucks cheaper than Sparkfun's. That doesn't happen very often. Optimal isn't cheap (though they're reasonably competitive), but it saves me a week or more of waiting for customs when I order from the States, so it's worth it.
 
Last edited:
Not necessary! :D

That did it. I'm connected. Woohoo! :D

Great! :)


You got that right! Tis bedtime already. But at least I can relax about getting this thing working now.
Ah well, it's good to have too many toys. :D I also ordered a **broken link removed**. Their price is actually a couple bucks cheaper than Sparkfun's. That doesn't happen very often. Optimal isn't cheap (though they're reasonably competitive), but it saves me a week or more of waiting for customs when I order from the States, so it's worth it.
Yes, the one with the most toys at the end wins! :p

I know what you mean about customs. :mad: I had an order from Sure Electronics in China. It took customs three weeks to release it to me. They are a bit faster with stuff from the US, but not much. grrrrr

Nice LCD! :D
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top