EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Next logical step after 8bit uCs?

Started by Michael Noone December 6, 2004
"Ulf Samuelsson" <ulf@NOSPAMatmel.com> wrote in
news:31k84oF3cd8ntU2@individual.net: 

> "Michael Noone" <mnoone.uiuc.edu@127.0.0.1> skrev i meddelandet > news:Xns95B77802AA764mnooneuiucedu127001@63.240.76.16... >> 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 > > > > 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. > >
About these AVRs, have you heard anything about when they will be available? They definitely look interesting, though I still think I'm going to move on to something more powerful, and it's starting to look like that will be an ARM. -Michael
On 2004-12-06, Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote:

> 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
You're kidding, right? It usually means that the CPU has 32-bit registers and data-paths, but the external bus is 16-bits wide. Processors with registers and internal data paths wider than the bus have been around for 25 years (the 8088 was 8/16, the 68K family had 8/32 or 16/32 versions).
> - what exactly is meant by that?
In the case of ARM, it also means that there are two instruction sets. One with a fixed 32-bit width, the other with a fixed 16-bit width. -- Grant Edwards grante Yow! I have a very good at DENTAL PLAN. Thank you. visi.com
On 2004-12-07, Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote:

>> ARM core can run in two modes: ARM (32-bit commands) and Thumb >> (16-bit commands).
[...]
>> 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. > > 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?
I don't think so -- unless a thumb-only core has come out very recently. Where did you see that? -- Grant Edwards grante Yow! My nose feels like a at bad Ronald Reagan movie... visi.com
> 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
No, You Either run in ARM mode or in mixed ARM/Thumb mode. Example: The CPU always enters ARM mode when an interrupt occurs. Everything is not accessable to the user, when in Thumb mode, so you have to enter ARM mode to do certain things. -- Best Regards Ulf at atmel dot com These comments are intended to be my own opinion and they may, or may not be shared by my employer, Atmel Sweden.
> > 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. > > > > > > About these AVRs, have you heard anything about when they will be > available? They definitely look interesting, though I still think I'm > going to move on to something more powerful, and it's starting to look > like that will be an ARM. > > -Michael
FPSLIC @ 25 Mhz is available now. The others are available, but there are some support issues still so I expect somewhere in Q1. For the ARM, the AT91SAM7S32 = 32 kB flash and has 8 kB of SRAM is available now. -- Best Regards Ulf at atmel dot com These comments are intended to be my own opinion and they may, or may not be shared by my employer, Atmel Sweden.
Grant Edwards <grante@visi.com> wrote in news:41b5e676$0$9702$a1866201
@visi.com:

> On 2004-12-07, Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote: > >>> ARM core can run in two modes: ARM (32-bit commands) and Thumb >>> (16-bit commands). > [...] >>> 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. >> >> 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? > > I don't think so -- unless a thumb-only core has come out very > recently. Where did you see that? >
I was looking at Atmel's website (http://www.atmel.com/products/AT91/) where it talks about the AT91 ARM Thumb. I guess that just means it's capable of both?
Grant Edwards <grante@visi.com> wrote in news:41b5e4aa$0$9705$a1866201
@visi.com:

> On 2004-12-07, Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote: > >>> ARM is another option, 32 bits, but has multiple cycle multiplies
and
>>> no divide instruction, > > Not have a divide isntruction is fairly common for DSPs, isn't > it? They're generally optimized around multiply-add sequences. > >>> I would consider it a "weak" DSP processor, maybe its good >>> enough for you. >> >> So is it still possible to go about dividing when there is no >> divide instruction? > > Of course. > >> 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, > > The trick is to avoid doing division. > >> or do you really just have to hardcode it? > > Not sure what you mean by "hardcode it". >
I'm sorry - understand I'm just a student so I'm sure I use the wrong words for alot of things... All I mean is that the only way that I can figure out how to divide something in a chip that doesn't have a divide instruction is to write out a little routine that divides it by hand - the same way that one would divide a number on a piece of paper. I can see this taking quite a few clock cycles even when dealing with 8bit numbers... I guess the general strategy would probabaly be to subract the divisor from the dividend, check to see if the new dividend is 0 or rolled past 0, if not then go back and subract again, etc. Or is there a better way? Thanks, Michael
Michael Noone wrote:
> >Paul Burke <paul@scazon.com> wrote: > >> 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 > >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...
Take a look at PC104 boards.
Michael Noone wrote:

> 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
No easy tricks to doing a generic "manual" divide, you have to code up a routine (or use a complier's built in routine) which as you guessed is very processor intensive. If your ratio of divides to multiplies is very low, then something like an 32bit ARM probably would still work out. The new ARM Cortex-M3 (http://www.arm.com/miscPDFs/6751.pdf) solves the math limitations of the previous ARMs with single cycle multiplies and a hardware divide, I don't know of any manufacturer that uses it though. Another option is to use a lookup table. Typically in this case the lookup table wouldn't do just the divide but would implement a large chuck of the algorithm. An alternative is you can rework the algorithm to remove the divide, or at least get rid of most of them. All this requires alot of your time, however, especially if you dealing with many different algorithms.
On 2004-12-07, Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote:

>>> 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? >> >> I don't think so -- unless a thumb-only core has come out very >> recently. Where did you see that? > > I was looking at Atmel's website > (http://www.atmel.com/products/AT91/) where it talks about the > AT91 ARM Thumb. I guess that just means it's capable of both?
Right. The AT91 stuff is based on an ARM7TDMI core. The "T" means that it includes Thumb-mode supoprt. IIRC, teh "DM" means it has the "debug macrocell" which contains the JTAG debugging interface. I forget what the "I" means. http://www.arm.com/products/CPUs/ARM7TDMI.html Not all ARM cores supported the 16-bit thumb mode (though most all of the current ones do). -- Grant Edwards grante Yow! Isn't this my STOP?! at visi.com

The 2024 Embedded Online Conference