Next logical step after 8bit uCs?

Hi - so I've gotten to the point where I feel fairly competent with Atmel AVRs (8 bit microcontrollers) - but I'd like to find something with a bit more power. Specifically, I really need a chip that is capable of doing more sophisticated math, ie 16 or 32 bit calculations, multiplication, division, powers, etc. I know some of this can kind of be done on AVRs, but it can't be done well, nor at the speed that I really need. So would anybody have any suggestions as to a logical progression past AVRs would be for me? Perhaps a more advanced microcontroller or microprocessor? Thanks!

-Michael Noone

Reply to
Michael Noone
Loading thread data ...

doing

multiplication,

AVRs, but

A small incremental step would probably be to the MSP430. Getting into this platform is very inexpensive, about $50 total hardware investment (look at the Olimex stuff sold by, for example,

formatting link

If you are looking to make a big performance leap, consider a migration to ARM. The cheapest route for you to take right now would probably be to one of the Philips LPC21xx series parts. Again, inexpensive development hardware is available, though it is slightly more costly than MSP430.

Reply to
larwe
4-bit uCs, of course. As your embedded systems engineering skills improve, you learn how to do more and more with less and less.

I hope this helps. :)

--
Guy Macon
Reply to
Guy Macon

Atmel

bit

doing

multiplication,

AVRs, but

would be

Thanks!

Microchip dsPic, a 16 bit digital signal controller, has a nice mix of DSP and microcontroller features, it has single cycle multiplication as well as a divide instruction so its more then capable to handle sophisticated math. Its the smallest fastest chip out there (6mm square in one package).

ARM is another option, 32 bits, but has multiple cycle multiplies and no divide instruction, I would consider it a "weak" DSP processor, maybe its good enough for you.

Reply to
bungalow_steve

I'd say, try this one... ;-)

formatting link
A real challenge!!!

Waldemar

P.S. Guy, from the picture on your web site I gather that you'proably know about this one, too...

"Guy Macon" schreef in bericht news: snipped-for-privacy@corp.supernews.com...

Reply to
WaldemarIII

"Michael Noone" skrev i meddelandet news:Xns95B77802AA764mnooneuiucedu127001@63.240.76.16...

but

be

You can get AVRs running at up to 40/48 MHz at 3 Volt if you look at the "special" chips. AT76C713 = 48 MHz. This is an 8515 with USB and 2 (very) advanced UARTs in a 100 pin package. No datasheet on the web yet, but the chip is in production. FPSLIC AT40K10AL = 25 Mhz, Beginning of next year the AT40K10AX is usable at 40 MHz. The chip is available today, but the toolset needs to be upgraded with the support for the chip, and this means Q1 next year.

If you care to look for ARM chips, then the AT91SAM7S32 ARM 7 based controller will give a lot of bang for the buck. IAR C compiler + devkit & JTAG ICE for less than $300.

--
Best Regards
Ulf at atmel dot com
 Click to see the full signature
Reply to
Ulf Samuelsson

Work backwards from the most complex requirement: ie figure out how many MIPS you actually need, at what precision, and then benchmark cores that seem likely. If you need 32 bits, but want to stay Microcontroller-ish, then the ARM cores are a logical choice. If their maths is still not enough, then the DSP cores from TI / Analog Devices / Freescale would be next. Some DSPs have native floating point ALUs, so things like powers are very fast. FPGAs are also contenders if you can benefit from distributed ALU's

-jg

Reply to
Jim Granville

"Michael Noone" wrote

The real question is - how much speed do you really need?

Without knowing that any further discourse on this matter is somewhat pointless.

--
Nicholas Someone
Reply to
Nicholas O. Lindan

snipped-for-privacy@larwe.com wrote in news:1102356607.572465.5980 @z14g2000cwz.googlegroups.com:

So I took a look at the Philips LPC21xx chips, and there's one thing I don't understand about them: They say they're 16/32 bit. I haven't encountered anything like this before - what exactly is meant by that? I'm looking here:

formatting link

Thanks!

-Michael Noone

Reply to
Michael Noone

ARM core can run in two modes: ARM (32-bit commands) and Thumb (16-bit commands). Thumb code takes less space, while ARM code executes faster. Conditional execution of commands is not possible in Thumb mode (obviously apart from branches), also commands always modify flags.

You can switch between modes easily and have both ARM and Thumb code in the same binary module -- Thumb to save space, ARM for fast routines.

The registers are 32-bit in both modes.

Have a look at

formatting link
There is also news:comp.sys.arm newsgroup.

Vadim

Reply to
Vadim Borshchev

When ATMega's get tight, I move into AT91 ARM's. There are good GNU toolkits for both, and the AT91 can run in 16-bit instruction mode (called Thumb) if storage space is tight.

--
Tauno Voipio
tauno voipio (at) iki fi
 Click to see the full signature
Reply to
Tauno Voipio

In a nutshell: 32-bit internal architecture, 16-bit buses. The MC68000 and MC68010 were also 16/32 bit chips, for example.

It so happens that ARM instruction set has an optional extension, called Thumb mode, which compresses the 32-bit instruction set into a

16-bit word (at the expense of a smaller range of source and destination operands, mainly).

If you get started on the LPC21xx and find the performance inadequate, you can use the exact same code [at least, the math portions of it] on a meatier fully 32-bit ARM variant. It's an excellent learning platform if nothing else.

Reply to
larwe

I'd go for a REALLY low cost option- and old PC. You've done the little micro bit. 16 bitters aren't a lot different. Look at the opposite end of embedded design- using a complex board, lots of memory, operating systems etc. And you can get started for 30 Euros for a secondhand PC if you haven't got one already. Start with the obvious- DOS, Borland C++ etc- and work up to Ecos, embedded Linux or whatever. You can use the parallel port for IO to start with, then if it's an old ISA machine design yourself some specialist thingies to make it do something interesting.

Paul Burke

Reply to
Paul Burke

In article , Michael Noone writes

You should also try the "universal" 8 bit processors the 8051 family and probably the PIC16 as well.

Then move on to the 32 ARM.

The point of embedded, unlike desktop stuff, is you usually can't just add more power or memory.

If the Microwave cooker needs to be produced at 99 USD (to sell for 250 USD) and the other components come to 98 USD you get 1 USD for the micro. That's how it works in embedded. the micro is part of something else that dictates many of the parameters.

Other times it is power consumption, size of package, peripherals required.

In any event the 8051 and PIC are the most common 8 bit families and both are quite different to the AVR even when using C.

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \/\/\/\/\ Chris Hills Staffs England /\/\/\/\/\ /\/\/ snipped-for-privacy@phaedsys.org

formatting link
\/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Reply to
Chris Hills

Paul Burke wrote in news: snipped-for-privacy@individual.net:

This is an option I've thought about - but for now I'd really like to stick with physically smaller solutions, as most of what I work on is very small, and something the size of a full computer just isn't an option...

-Michael

Reply to
Michael Noone

Tauno Voipio wrote in news:ED3td.351$ snipped-for-privacy@read3.inet.fi:

So - what kind of costs would I be looking at for getting into ARMs? How are they programmed? One of the things that attracted me to AVRs was how inexpensive they are - all I had to do was buy/make an AVRISP and I was good to go. Being a struggling college student cheap is mighty appealing!

-Michael

Reply to
Michael Noone

bungalow snipped-for-privacy@yahoo.com wrote in news:1102359918.878997.29990 @f14g2000cwb.googlegroups.com:

as

square

So is it still possible to go about dividing when there is no divide instruction? I mean I can certainly see a way to hardcode it, but I would imagine that to be very processor intensive, especially since I'd be dealing with 32bit numbers. So - is there any "trick" to doing this, or do you really just have to hardcode it? Thanks!

-Michael

Reply to
Michael Noone

Guy Macon wrote in news:10r988kn05pck22 @corp.supernews.com:

Hmmmm - I think I'll take a pass on that for now. We had to do some 4 bit uP work in a class last year, and that was more than enough of 4b for me!

-Michael

Reply to
Michael Noone

Vadim Borshchev wrote in news:opsils3vbly1ubid@news:

So am I right in thinking that there are some Thumb chips that can only run in thumb mode, while there are other full ARM chips that can run in both thumb and ARM modes? Thanks!

-Michael Noone

Reply to
Michael Noone

Not have a divide isntruction is fairly common for DSPs, isn't it? They're generally optimized around multiply-add sequences.

Of course.

The trick is to avoid doing division.

Not sure what you mean by "hardcode it".

--
Grant Edwards                   grante             Yow!  Here I am at the flea
                                  at               market but nobody is buying
 Click to see the full signature
Reply to
Grant Edwards

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.