| Author |
Message |
Michael Noone
Guest
|
Posted:
Tue Dec 07, 2004 10:04 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
Tauno Voipio <tauno.voipio@iki.fi.NOSPAM.invalid> wrote in
news:ED3td.351$Eb.330@read3.inet.fi:
| Quote: | Michael Noone wrote:
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
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.
|
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 |
|
| Back to top |
|
 |
Michael Noone
Guest
|
Posted:
Tue Dec 07, 2004 10:07 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
bungalow_steve@yahoo.com wrote in news:1102359918.878997.29990
@f14g2000cwb.googlegroups.com:
| Quote: |
Michael Noone wrote:
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
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.
|
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 |
|
| Back to top |
|
 |
Michael Noone
Guest
|
Posted:
Tue Dec 07, 2004 10:08 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
Guy Macon <_see.web.page_@_www.guymacon.com_> wrote in news:10r988kn05pck22
@corp.supernews.com:
| Quote: |
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. :)
|
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 |
|
| Back to top |
|
 |
Michael Noone
Guest
|
Posted:
Tue Dec 07, 2004 10:09 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
Vadim Borshchev <vadim.borshchev@127.0.0.1> wrote in
news:opsils3vbly1ubid@news:
| Quote: | On Mon, 06 Dec 2004 20:06:50 GMT, 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 - what exactly is meant by
that?
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 http://www.arm.com/documentation/ There is also
news:comp.sys.arm newsgroup.
Vadim
|
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 |
|
| Back to top |
|
 |
Grant Edwards
Guest
|
Posted:
Tue Dec 07, 2004 10:13 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
On 2004-12-07, Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote:
| Quote: | 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.
| Quote: | 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.
| Quote: | 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.
| Quote: | or do you really just have to hardcode it?
|
Not sure what you mean by "hardcode it".
--
Grant Edwards grante Yow! Here I am at the flea
at market but nobody is buying
visi.com my urine sample bottles... |
|
| Back to top |
|
 |
Michael Noone
Guest
|
Posted:
Tue Dec 07, 2004 10:14 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
"Ulf Samuelsson" <ulf@NOSPAMatmel.com> wrote in
news:31k84oF3cd8ntU2@individual.net:
| Quote: | "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 |
|
| Back to top |
|
 |
Grant Edwards
Guest
|
Posted:
Tue Dec 07, 2004 10:17 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
On 2004-12-06, Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote:
| Quote: | 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).
| Quote: | - 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 |
|
| Back to top |
|
 |
Grant Edwards
Guest
|
Posted:
Tue Dec 07, 2004 10:20 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
On 2004-12-07, Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote:
| Quote: | 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 |
|
| Back to top |
|
 |
Ulf Samuelsson
Guest
|
Posted:
Tue Dec 07, 2004 10:24 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
| Quote: | 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. |
|
| Back to top |
|
 |
Ulf Samuelsson
Guest
|
Posted:
Tue Dec 07, 2004 10:28 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
| Quote: | 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. |
|
| Back to top |
|
 |
Michael Noone
Guest
|
Posted:
Tue Dec 07, 2004 10:33 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
Grant Edwards <grante@visi.com> wrote in news:41b5e676$0$9702$a1866201
@visi.com:
| Quote: | 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? |
|
| Back to top |
|
 |
Michael Noone
Guest
|
Posted:
Tue Dec 07, 2004 10:39 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
Grant Edwards <grante@visi.com> wrote in news:41b5e4aa$0$9705$a1866201
@visi.com:
| Quote: | 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 |
|
| Back to top |
|
 |
Guy Macon
Guest
|
Posted:
Tue Dec 07, 2004 10:39 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
Michael Noone wrote:
| Quote: |
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. |
|
| Back to top |
|
 |
bungalow_steve
Guest
|
Posted:
Tue Dec 07, 2004 10:40 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
Michael Noone wrote:
| Quote: | 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. |
|
| Back to top |
|
 |
Grant Edwards
Guest
|
Posted:
Tue Dec 07, 2004 10:45 pm Post subject:
Re: Next logical step after 8bit uCs? |
|
|
On 2004-12-07, Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote:
| Quote: | 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 |
|
| Back to top |
|
 |
|
|
|
|