Instead of using a Coldfire core (as I wrote in a previous post), I've decided to use the NXP (Philips) LPC2210, as it's cheap and has a large enough memory bus to handle the 4MB SRAM we're going to use. I now need to decide upon a development kit and software tools. The dev. board has to have Ethernet capabilities, preferably using an RTL8019AS, though a CS8900A would be okay, RS-232, on-board flash (512kB should be enough) and RAM (4MB would be nice, but not necessary), and all of the useful pins (memory bus, I2C, GPIO) should be brought out on headers to interface with the other devices in the system. Does anyone have any recommendations? Preferred vendors? Which vendors are known for best quality/support?
In addition, I'll need to decide upon software development tools. Would anyone care to chime in regarding their preferred toolset, and their reasons for that preference?
I can tell you that I have tried the Keil tools from ARM and was not impressed. The watch window in one case would not display a variable. In several (many) cases a local variable would display wrong values when the register assignment changed in mid routine.
I have not done enough with the IAR tools to say if they work better, but that is what we use at work.
I used a Phytec phyCORE development board (equipped with an LPC2294) for development until my LPC2210 board was ready. It can accept up to 8MB SRAM and 16MB flash, though the "base" board I used has 1MB SRAM and 2MB flash standard. It is TINY, but brings all signals out to fine-pitch connectors. I got Phytec's carrier board for the phyCORE, which brings all the I/O out to standard connectors, and an optional breadboard that plugs onto the carrier board.
Phytec will sell you the board, or package it with either Keil or IAR tools. Their documentation of the board is first rate.
The 2294 is very similar to the 2210, with the primary differences being CAN support and on-chip flash, so it was pretty simple to port to the
2210 when the time came.
I use Rowley CrossWorks for ARM, along with the Rowley CrossConnect JTAG adapter. It is a custom IDE and debugger around the GCC compiler, and I have found it excellent in all respects, and Rowley support very responsive. It is also approximately 1/3 the cost of the IAR or Keil tools.
This is true but the small outlay for Rowley's IDE is definitely worth it. Of course, "worth" is all relative to the available budget. Also I'm pretty sure it is cheaper than 1/3 of the cost of the other two.
To be worth it, it would need to save me about a week of development time (I'm young and just started freelancing, so I don't charge very much) over the life of a six-month project, as opposed to using the free version of the tools combined with Eclipse. In what ways could the Rowley development tools save me time? I imagine imagine most of the time is saved by having a support system available if I ever have any problems and by reducing the amount of time required to set the tools up, correct?
It was brought to my attention that the microcontroller I use will need an SDRAM controller, since 4MB of SRAM is expensive (compared to $1 for SDRAM, at least). I've narrowed my search down to a few microcontrollers, and I'd love it if I could get some feedback from the anyone and everyone regarding the merits and pitfalls of these processors.
Leading the pack, is the Sharp LH79525. This has everything we need, is fairly inexpensive, and seems to have a decent amount of online support. However, I've seen a few random postings on the internet stating that Sharp is discontinuing the BlueStreak line (for instance,
Is the 79525 a member of the BlueStreak family, and, if so, is there any truth to these rumors? It seems like a fairly new chip, so I'd be amazed if they're end-of-lifing it already.
Next up, we've got the OKI ML674001 and 675001. This chip seems pretty good, and the price is great, but I've read that OKI's support for smaller manufacturers is pretty terrible. Also, I couldn't find much of an online community for this chip, so I'm a bit concerned that I'll spend a lot of time troubleshooting problems.
The Freescale MCF5270 would be a suitable controller, as well. The only real problem is that I haven't been able to find a low-cost ($300 or less) development board for it. I know that NetBurner makes inexpensive boards for them, but they seem to want you to use they're bundled software, but you have to either use their modules which my employer doesn't want to do for various reasons, or purchase a site license, which is out of our price range. Has anyone had success using their development board for non-NetBurner-based projects? If so, what tools did you use for debugging? The NetBurner engineer I wrote to said that they don't have a BDM header on board.
The Freescale MCF5208 would also work well, but I haven't been able to find a distributor who has the QFP version in stock. All I could find was a small number of BGA devices at Digikey. I don't want to go through with the design only to find out later that the QFP is unavailable. Anyone know of a source for these chips?
Similarly, the Samsung S3C4510 would work well, but again, I haven't been able to find a vendor who has them in stock. I haven't even found a vendor who has them in their database, so I don't know how much they cost, if I could get a hold of them.
The Atmel AT91RM9260 seems like a good part which fits our specifications. It would probably be overkill for our application, but at $11 a piece (in quantities of 100), that's perfectly fine. Like the MCF5270, however, I haven't been able to find an inexpensive development board. The only one I've found is the evaluation kit manufactured by Atmel, which costs nearly $700.
Lastly, we've got the NXP LPC2468...sort of. As far as I can tell, this part is only just being released. None of the major distributors have them in stock, so I'm assuming that it's still sampling and hasn't been put into full production yet. I could develop on a LPC2378, but my main concern is relying on a brand-new chip. I've read the NXP has a reputation for their Rev. 0 silicon being extremely buggy (for example, the LPC2378 cannot write to it's external bus).
Thoughts or comments on any of the above microcontrollers would be greatly appreciated, and will likely be handsomely rewarded in the afterlife, your next life, or through good karma (depending on your beliefs).
I recommend that you stick with the Atmel or NXP parts.
The AT91RM parts are fairly old. Atmel has a new AT91SAM9260 part which is listed as "production" and shows stock at Digikey. They also have the eval board for $560. I can't say why this board is so expensive. It may have a lot on it, I don't know.
I don't know exactly why the NXP parts seem to be more popular with smaller designers, but the Atmel parts are very good. We are using one of the SAM7S parts here and another project is using the SAM7X. No real issues that made trouble for us. I expect the SAM9 will be pretty good as well. Check out the Yahoo group, AT91SAM might be a good place to ask questions.
The support is absolutely first-class which is a good time-saver. It all depends how familiar you are with the free environments. The Rowley kit works straight out of the box and has lots of example projects to get you up and running. Give them a call and they'll happily talk you through the options and benefits - they are a friendly bunch.
The 79525 certainly is BlueStreak and Sharp is discontinuing all its microcontrollers at the end of next month so don't design it into anything new. Good processor as well - it's a pity to lose it. I've just spent a year designing a system around an LH79524 and I expect I will probably go to xscale to replace it. I use Logic PD's rather excellent card engines in my design so the xscale one should be almost a drop in replacement (and it will already be supported by the Rowley tools) but then there is the worry of how long Marvel will keep the line alive :-(
If I was going to be designing in a new ARM7 part then I would probably go for one of the NXP LPC microcontrollers because they have a good range and are likely to still be around in five years.
Have also been doing a survey of arm 7 devices recently, to replace a Dragonball device which has gone end of life. Initially started looking at Coldfire, but most of them seem to be bga only, which I really don't want to deal with at all. Also wanted an on chip lcd controller, but only a few of the Japanese arm devices include this and again don't want to buy far east because of concerns (real or imagined) over long term commitment to supply. At the mo, it's narrowed down to Philips / NXP, Atmel or ST microelectronics, with an Epson off chip lcd controller. Of the 3, ST have the most on chip flash and ram and seem to have the best support, including complete device driver libraries (even usb) which are free to download. For hardware, Embest
have the widest range and look like the best value in terms of evaluation boards and ide based gnu toolkit.
What I would like to find out is how the performance of the arm 7 devices, eg: lpc2210 compare to Dragonball VZ328 in terms of throughput. Are they much more powerfull, about the same or what ?. Can find no figures on the web for arm, in old fashioned mips style ratings...
I don't remember much about the Dragonball, but I seem to recall that it was several different processors. Some of them were ARM7 devices. If so, the clock speed would give you a good idea of the CPU speed not including memory speed. I think this is a part that uses external DRAM and Flash, no?
The LPC22xx parts are all ARM7 as are the SAM7 parts. I am not so familiar with the ST parts, but I think the STR7 parts are all ARM7 as well. So the clock speed combined with the wait states for memory should be a good indicator of relative performance.
There is a collection of info on many ARM7 parts at
Go to the Resources page and scroll down to ARM Device Comparison Chart. I need to fix a few errors/typos, but it is pretty complete at the moment. I need to add some of the newer LPC and SAM parts as well.
Thanks for the advice. The only NXP devices that fit our requirements (must have I2C and SDRAM controller, Ethernet MAC is a bonus) are the LPC8880 and LPC2468. However, the LPC8880 is BGA-only, which we'd like to avoid, and the LPC2468 doesn't seem to be in full production yet and if it is, I'm hesitant to use a brand-new chip considering NXP's record for releasing buggy devices.
That leaves us with Atmel, and the AT91SAM9260 is the closest fit for this project. I think we may be able to deal with the expensive development kit. Will we need to buy a JTAG debugger as well, or does the AT91SAM9260-EK come with an on-board debugger?
I was using the 68vz328, which is a 68k derivative, but there's no real alternative from Freescale and am quite annoyed that they end of life'd the whole 68k Dragonvball series in such a short space of time. Suddenly, the whole range is no longer manufactured and guess this is the result of the sale of the semi division.There is a Coldfire device with an on chip lcd controller, but it's in a tiny 256 ball bga and is also very expensive compared to the Dragonball. Arm is low cost, seems to be ubiquitous and heavily second sourced, so I guess it will be the way to go for the future.
Unfortunately, it's not that easy. Clock speed isn't really a good indicator, because it depends on architecture, instruction format, cycles per instruction, instruction mix for the application etc. Looked at the embedded benchmark org website, but there's not much there on arm at all. Overall, the rule for arm7 seems to be mips = 0.9 x clock speed, which would suggest far more throughput, but it's such a different architecture, it's hard to get a fix on actual performance. The only real way will be to get an eval kit and run some code on it.
A really good site, thanks. The lpc parts in particular seem very capable and low cost. Can also recommend the Keil Arm arch primer, to help get up to speed. Very usefull summary.
Would like to use Solaris on Sparc for development, but memories of fun and games building 68k cross gcc etc to run under another unix variant suggests that it may not be straightforward. All part of the rich tapestry however...