View Full Version : Discussion Microcontrollers for RC applications
EpicAdventure
Feb 27, 2008, 03:15 PM
I could use some help picking a microcontroller to use for UAV type RC applications.
I was trying to find this type of info in the sticky at the top of this discussion but wasn't having much luck. I apologize if this is rehashing discussions that have already taken place. If it is, it would be great if you could post some links.
Requirements:
1) Must have high level programmability (e.g. C compiler). I have played with PICs a little where I was programming in assembly code and know I don't want to have to deal with assembly code!
2) Cheap/free/open source compiler. The PIC for example does have high level compilers but they seem to be rather pricey.
3) Cheap chip programmers. This was the other thing I liked about the PIC was the simple programmer I was able to buy (off of ebay as I recall). Preferably, would like to be able to program in circuit.
4) Ability to debug??
Potential candidates that I have come across:
PIC (www.microchip.com)
Atmel (http://www.atmel.com/products/AVR/)
Zilog (http://www.zilog.com/) This sounded promising from the perspective of high level/low cost compilers.
ARM7 (http://www.arm.com/products/CPUs/families/ARM7Family.html)
What are other people using??
zlite
Feb 27, 2008, 04:43 PM
We're (http://diydrones.com/profiles/blog/show?id=705844:BlogPost:19556) also using:
Arduino (http://www.arduino.cc/) (open source PIC competitor):
Propeller (http://parallax.com/tabid/407/Default.aspx) (8 core big brother to the Basic Stamp)
We also use Basic Stamps (http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A25853), of course, but not for IMUs.
Note that the Arduino we use (http://www.sparkfun.com/commerce/product_info.php?products_id=666) has an ATMega168 chip, which is based on the Atmel AVR.
hg1
Feb 27, 2008, 05:06 PM
Lengthy discussion here -
http://www.rcgroups.com/forums/showthread.php?t=644892
I started with ARM7 and now use the Analog Devices Blackfin processor.
EpicAdventure
Feb 27, 2008, 05:23 PM
Lengthy discussion here -
http://www.rcgroups.com/forums/showthread.php?t=644892
I started with ARM7 and now use the Analog Devices Blackfin processor.
So am I looking at $3,500 for the Blackfin development software?? :eek:
VisualDSP++
http://www.analog.com/en/prod/0,,VISUALDSPBF,00.html
psyrex
Feb 27, 2008, 06:06 PM
I'm going to echo zlite about the arduino. I'm only in the beginning stages of my uav, but I'm using the arduino (as the RBBB incarnation from ModernDevice.com). I bought a handful of them at $7 a pop a while ago for other projects. That low price plus an open source development software makes it an attractive option for UAV brains. I figured I'd use two or three to handle IMU, GPS, RF telemetry, etc so as to have more processing power and a little better fault tolerance. It's pretty powerful already as it is.
zik
Feb 27, 2008, 06:38 PM
If you want something a little bigger than the PICs and AVRS I recommend the ARM7 family.
Both the NXP LPC2148 and the Atmel AT91SAM7 series (which I'm using) are great choices.
hg1
Feb 27, 2008, 07:30 PM
So am I looking at $3,500 for the Blackfin development software?? :eek:
VisualDSP++
The GCC development tools are free - that's what we use. We also have a port of Linux, though I do most of my development work on "bare metal" (no operating system). The one piece of development hardware worth considering is a JTAG cable - I use the ICEbear cable, which cost around $300. There are download links to the Blackfin toolchain on http://www.surveyor.com/blackfin/ and massive development info / resources / forums, etc on http://docs.blackfin.uclinux.org/
That said, I really like the ARM7 as well, having worked a lot with the NXP variations. The Blackfin has a similar architecture, but a lot more computing (1000MIPs vs 60MIPs) and peripheral i/o horsepower without a big jump in power consumption.
vector_vortex
Feb 29, 2008, 01:50 AM
I am contemplating a AVR32, great performance per watt and open toolchain, not to mention cheap hardware evaluation boards and capable of running full linux. Looks promising
Joel
EpicAdventure
Mar 03, 2008, 12:19 PM
So this weekend I dug out some PIC16F877A's I had laying around and an old PIC-PG2C programmer. I then went about finding a c compiler to use for them. I ended up using SDCC and gpsim. So with the somewhat non-user-friendly development tools, my lack of knowledge of bit level manipulations (ANSI C promoting everything to an int before operations really was confusing me -- still haven't figured out to handle this correctly when reading/writing to a port) it was a steep learning curve for me. Some of the higher dollar development tools are starting to look more appealing!
EpicAdventure
Mar 03, 2008, 01:08 PM
The GCC development tools are free - that's what we use. We also have a port of Linux, though I do most of my development work on "bare metal" (no operating system). The one piece of development hardware worth considering is a JTAG cable - I use the ICEbear cable, which cost around $300. There are download links to the Blackfin toolchain on http://www.surveyor.com/blackfin/ and massive development info / resources / forums, etc on http://docs.blackfin.uclinux.org/
That said, I really like the ARM7 as well, having worked a lot with the NXP variations. The Blackfin has a similar architecture, but a lot more computing (1000MIPs vs 60MIPs) and peripheral i/o horsepower without a big jump in power consumption.
hg1, I've been trying to get smarter on the Blackfin microcontroller. This may be a stupid question, but what is a STAMP board in relation to the Blackfin? When I see STMAP, I think of the basic STAMP microcontroller. How does that relate to the Blackfin micro?
Also, what development tools do you use for the ARM7? The uClinux stuff as well?
EpicAdventure
Mar 03, 2008, 02:42 PM
If you want something a little bigger than the PICs and AVRS I recommend the ARM7 family.
Both the NXP LPC2148 and the Atmel AT91SAM7 series (which I'm using) are great choices.
What development tools are you using with the AT91SAM7?
zik
Mar 03, 2008, 04:25 PM
What development tools are you using with the AT91SAM7?
I'm using "Yagarto" - which is basically gcc, eclipse and OpenOCD bundled together. There's also a helpful tutorial called "Using Open Source Tools for AT91SAM7S Cross Development" which you can find on the web.
hg1
Mar 03, 2008, 05:22 PM
hg1, I've been trying to get smarter on the Blackfin microcontroller. This may be a stupid question, but what is a STAMP board in relation to the Blackfin? When I see STMAP, I think of the basic STAMP microcontroller. How does that relate to the Blackfin micro?
Also, what development tools do you use for the ARM7? The uClinux stuff as well?
I haven't worked with the STAMP, so I can't accurately compare. From what I recall, the STAMP is an 8-bit microcontroller that is pretty limited computationally. The Blackfin is probably compared most often with an ARM9, though it's closer in architecture to an ARM7. The version we use runs at 500MHz and has a parallel arithmetic unit that actually allows peak computing at 1000 MIPS. However, power consumption isn't far out of line with what you'd expect with a 60MHz ARM7.
The Blackfin isn't well known - it was primarily designed as a media processor (audio / video), and has not been positioned as a general purpose processor / microcontroller. I could have easily driven right by it without noticing, but someone I know was considering it for a project, so I took a closer look. The more I saw, the more impressed I was. I've worked with a lot of different computing architectures over the years, starting with DEC PDP minicomputers and Intel 8080 microprocessors, so I have seen a lot of processor designs, and Analog Devices (with help from Intel) really nailed it with this processor.
With both ARM7 and Blackfin, I have used the GNU gcc toolchain.
LenBFP
Mar 03, 2008, 05:45 PM
I have been looking into this one:
http://focus.ti.com/docs/toolsw/folders/print/ez430-rf2500.html
If you are lucky enough to be able to get a slot in the TI 430 day in your area, this year they are giving away an ez430-rf2500 to each participant. Or you can order one (pair) from TI for $50.
These things are low power with several low power modes, (possible to run off a watch battery for a year) have integrated a/d converter, on board flash & ram, programmable op amps, lots of I/O, several serial protocols and a couple of different development system options. The kit comes with two 2.4 GHz transcievers, a debugger interface that plugs into a USB port and a battery pack for the target system. The USB port can look like a serial port and collect data from the other one out of the box. I had it collecting data into a database in a couple of hours.
There is some state machine software that is offered by Quantum-Leaps as open source for many of the small processors that also looks interesting.
http://www.quantum-leaps.com/
Another one I was looking at was the Atmel AVR "butterfly", the debugger can be had for around $25 (third party) and works with the GNU "C" compiler set. It is only an eight bit processor where the TI is a 16 bit RISC but has a lot of memory in a inexpensive package.
Len
clolson
Mar 03, 2008, 06:39 PM
I haven't seen anyone mention the gumstix yet so I'll jump in and put in a plug for that. It may be a little pricey for some folks ($200 well equipped), but that's a price point that is accessible to most. You could easily have much more than that invested in your aircraft and radio. It runs linux, is small and light, has a variety of available daughter cards to choose from, and has really good horse power. One of the things I *really* like about it is that the development environment is fully open source and it tracks pretty modern/current versions of the packages. It runs a newer gcc, a recent 2.6.x kernel, etc.
The only knock against it I can see is that it doesn't have floating point hardware which might be an issue if you want to invert matrices large matrices at a rapid rate or do other fancy math. (i.e. kalman filtering) However, I've found the software floating point performance to be excellent and as best as I can tell close to 8-10x the performance of the 2.4.x kernel running on the same spec'd hardware (xbow stargate.) And for what it's worth, in terms of floating point performance, the gumstix with the 2.6.x kernel easily beats another board we have here that runs at 60hz and has floating point hardware.
The gumstix is a platform where you can just write code and not necessarily have to start immediately making concessions to the hardware (like you would with an 8 bit processor, or something with a very low clock rate.)
My UAV controller application is written in C++, includes an xml parser for configuration files, includes a flightgear style "property system" which maps human readable ascii names to variables. Used judiciously, there is plenty of horsepower to do these sorts of things. (And I do realize I may be the only person on the planet that thinks a uav controller written in C++ with an XML parser and a way to bind ascii names to internal variables and a future C-like scripting language is a cool thing. I'm sure I have just horrified a big percentage of you embedded systems purists that I would even consider doing such stuff.) ;-)
Curt.
vBulletin® Copyright ©2000-2009, Jelsoft Enterprises Ltd.