"Michael Noone" <mnoone.uiuc.edu@127.0.0.1> wrote in message
news:Xns963FF00E42D5Emnooneuiucedu127001@216.196.97.136...
> Hi - I just have a couple pretty simple questions regarding ARMs and DSPs.
> I should preface this by saying that I'm coming from the world of AVRs (8
> bit uCs).
>
> First of all - when researching options that go beyond the power of AVRs
> I've run into DSPs alot. I can't tell exactly what a DSP is though, and
how
> it is different from a microprocessor/microcontroller. From what I can
> tell, a DSP is essentially a microprocessor that has been specifically
> designed for performing complex mathematics in real time. Is that fairly
> close to being accurate?
Here's a good resource:
http://microcontroller.com/Embedded.asp?did=67
While I wrote this about four years ago, it's still just as true today (as
are most of my predictions). It describes the differences between
microcontrollers and DSPs, and describes some of the applications that
require both products in unique combinations.
-Bill Giovino
Executive Editor
http://Microcontroller.com
Reply by Alex Gibson●April 22, 20052005-04-22
"Michael Noone" <mnoone.uiuc.edu@127.0.0.1> wrote in message
news:Xns963FF00E42D5Emnooneuiucedu127001@216.196.97.136...
> Hi - I just have a couple pretty simple questions regarding ARMs and DSPs.
> I should preface this by saying that I'm coming from the world of AVRs (8
> bit uCs).
>
> First of all - when researching options that go beyond the power of AVRs
> I've run into DSPs alot. I can't tell exactly what a DSP is though, and
> how
> it is different from a microprocessor/microcontroller. From what I can
> tell, a DSP is essentially a microprocessor that has been specifically
> designed for performing complex mathematics in real time. Is that fairly
> close to being accurate?
>
> But anyways - the main reason for my post - is I'm planning on getting
> into
> the world of ARMs. Being a poor college student I'm hoping to not have to
> spend too horridly much - so my current plan is to use GNU ARM for code
> development. But the one thing that I still haven't figured out yet is how
> exactly to move code onto the ARM. With AVRs there was, in my mind at
> least, a very clear choice: an AVR ISP. For $30 I had a device that could
> program just about any AVR out there. But with the complexity and the
> range
> of manufacturers of ARMs there doesn't seem to be any clear choice. I've
> seen JTAG programmers mentioned quite a bit. I've been looking at this one
> in particular: http://olimex.com/dev/arm-jtag.html. From what I've read
> these devices are able to program all ARMs out there except for a specific
> series of Philips ARMs. For $20 it doesn't seem like a bad choice.
>
> But what about boot-loading? I've heard this talked about some - but I
> can't find any mention of it in the couple ARM datasheets I've looked
> through. Maybe it has a different name? Is boot-loading a viable option
> for
> getting code onto an ARM, or is it best to have an actual programmer?
>
> Lastly - can anybody reccomend a specific ARM chip to me? Hopefully one
> that a ARM beginner can get up and running fairly quickly. I really don't
> have a specific set of features I'm looking for in one right now.
>
> Thanks so much for your help,
>
> -Michael J. Noone
"Michael Noone" <mnoone.uiuc.edu@127.0.0.1> wrote in message
news:Xns963FF00E42D5Emnooneuiucedu127001@216.196.97.136...
> Hi - I just have a couple pretty simple questions regarding ARMs and DSPs.
> I should preface this by saying that I'm coming from the world of AVRs (8
> bit uCs).
>
> First of all - when researching options that go beyond the power of AVRs
> I've run into DSPs alot. I can't tell exactly what a DSP is though, and
how
> it is different from a microprocessor/microcontroller. From what I can
> tell, a DSP is essentially a microprocessor that has been specifically
> designed for performing complex mathematics in real time. Is that fairly
> close to being accurate?
The best explanation is with an example: a much used operation in digital
signal processing is a multiply/accumulate in a loop, on a set of data
points and constants.
So in pseudo code it looks like this:
result = 0;
constant_pointer = (point to array of constants)
data_pointer = (point to array of data)
for 0 to 99 do
{
x = *const_pointer++
y = *data_pointer++
result = result + x * x
}
On an ordinary CPU, this transates in a bunch of assembly instructions and
looping overhead.
On a DSP (a ADSP21xx for instance) this translates into:
M4 = 1 ; pointer increment value
M0 = 1 ; pointer increment value
L4 = 100 ; make pointer circular, is a hardware feature
L0 = 100 ; ditto
I4 = ^const_array ; setup pointers
I0 = ^data_array ;
CNTR = 100 ; load hardware counter
MR = 0 ; clear result;
DO loop UNTIL CE ; loop until counter expired
loop: MR = MR + MX0 * MY0, MX0 = DM(I0,M0), MY0 = PM(I4,M4);
The trick is in the loop: first, the loop takes to overhead in time. Second:
the one and only instruction in the loop does the multiply, accumulate and
two fetches to get new constant and data points, all in one clock cycle.
Meindert
Reply by Leon Heller●April 22, 20052005-04-22
"Michael Noone" <mnoone.uiuc.edu@127.0.0.1> wrote in message
news:Xns96401C184F30mnooneuiucedu127001@216.196.97.136...
> Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote in
> news:Xns963FF00E42D5Emnooneuiucedu127001@216.196.97.136:
>
>> Hi - I just have a couple pretty simple questions regarding ARMs and
>> DSPs. I should preface this by saying that I'm coming from the world
>> of AVRs (8 bit uCs).
>>
>> First of all - when researching options that go beyond the power of
>> AVRs I've run into DSPs alot. I can't tell exactly what a DSP is
>> though, and how it is different from a microprocessor/microcontroller.
>> From what I can tell, a DSP is essentially a microprocessor that has
>> been specifically designed for performing complex mathematics in real
>> time. Is that fairly close to being accurate?
>>
>> But anyways - the main reason for my post - is I'm planning on getting
>> into the world of ARMs. Being a poor college student I'm hoping to not
>> have to spend too horridly much - so my current plan is to use GNU ARM
>> for code development. But the one thing that I still haven't figured
>> out yet is how exactly to move code onto the ARM. With AVRs there was,
>> in my mind at least, a very clear choice: an AVR ISP. For $30 I had a
>> device that could program just about any AVR out there. But with the
>> complexity and the range of manufacturers of ARMs there doesn't seem
>> to be any clear choice. I've seen JTAG programmers mentioned quite a
>> bit. I've been looking at this one in particular:
>> http://olimex.com/dev/arm-jtag.html. From what I've read these devices
>> are able to program all ARMs out there except for a specific series of
>> Philips ARMs. For $20 it doesn't seem like a bad choice.
I made my own, it was quite easy.
>>
>> But what about boot-loading? I've heard this talked about some - but I
>> can't find any mention of it in the couple ARM datasheets I've looked
>> through. Maybe it has a different name? Is boot-loading a viable
>> option for getting code onto an ARM, or is it best to have an actual
>> programmer?
>>
>> Lastly - can anybody reccomend a specific ARM chip to me? Hopefully
>> one that a ARM beginner can get up and running fairly quickly. I
>> really don't have a specific set of features I'm looking for in one
>> right now.
>>
>> Thanks so much for your help,
>>
>> -Michael J. Noone
>
> Some further research has led me to find that it seems some Philips
> chips (I believe the LPC21xx and LPC22xx series'?) can be programmed
> with a free program that Philips supplies straight through the serial
> port (with a line level converter, of course). Would this perhaps be a
> good option?
That was how I started with the Philips LPC2106. The JTAG option is much
more convenient, and makes debugging much easier.
Join the LPC2000 Yahoo group, you'll get lots of help there.
Leon
Reply by Michael Noone●April 22, 20052005-04-22
Michael Noone <mnoone.uiuc.edu@127.0.0.1> wrote in
news:Xns963FF00E42D5Emnooneuiucedu127001@216.196.97.136:
> Hi - I just have a couple pretty simple questions regarding ARMs and
> DSPs. I should preface this by saying that I'm coming from the world
> of AVRs (8 bit uCs).
>
> First of all - when researching options that go beyond the power of
> AVRs I've run into DSPs alot. I can't tell exactly what a DSP is
> though, and how it is different from a microprocessor/microcontroller.
> From what I can tell, a DSP is essentially a microprocessor that has
> been specifically designed for performing complex mathematics in real
> time. Is that fairly close to being accurate?
>
> But anyways - the main reason for my post - is I'm planning on getting
> into the world of ARMs. Being a poor college student I'm hoping to not
> have to spend too horridly much - so my current plan is to use GNU ARM
> for code development. But the one thing that I still haven't figured
> out yet is how exactly to move code onto the ARM. With AVRs there was,
> in my mind at least, a very clear choice: an AVR ISP. For $30 I had a
> device that could program just about any AVR out there. But with the
> complexity and the range of manufacturers of ARMs there doesn't seem
> to be any clear choice. I've seen JTAG programmers mentioned quite a
> bit. I've been looking at this one in particular:
> http://olimex.com/dev/arm-jtag.html. From what I've read these devices
> are able to program all ARMs out there except for a specific series of
> Philips ARMs. For $20 it doesn't seem like a bad choice.
>
> But what about boot-loading? I've heard this talked about some - but I
> can't find any mention of it in the couple ARM datasheets I've looked
> through. Maybe it has a different name? Is boot-loading a viable
> option for getting code onto an ARM, or is it best to have an actual
> programmer?
>
> Lastly - can anybody reccomend a specific ARM chip to me? Hopefully
> one that a ARM beginner can get up and running fairly quickly. I
> really don't have a specific set of features I'm looking for in one
> right now.
>
> Thanks so much for your help,
>
> -Michael J. Noone
Some further research has led me to find that it seems some Philips
chips (I believe the LPC21xx and LPC22xx series'?) can be programmed
with a free program that Philips supplies straight through the serial
port (with a line level converter, of course). Would this perhaps be a
good option?
Also - I've noticed that there seem to be different "cores" for ARMs.
Can somebody please explain what exactly this means, and possibly tell
me the difference between those out there? My understanding is that the
cores give ARMs different functionality - like for example I read that
one new core has a built in hardware divide (which I think is a pretty
nice feature - anybody know of any currently available ARMs with a core
like this?).
Thanks,
-M J Noone
Reply by Michael Noone●April 22, 20052005-04-22
Hi - I just have a couple pretty simple questions regarding ARMs and DSPs.
I should preface this by saying that I'm coming from the world of AVRs (8
bit uCs).
First of all - when researching options that go beyond the power of AVRs
I've run into DSPs alot. I can't tell exactly what a DSP is though, and how
it is different from a microprocessor/microcontroller. From what I can
tell, a DSP is essentially a microprocessor that has been specifically
designed for performing complex mathematics in real time. Is that fairly
close to being accurate?
But anyways - the main reason for my post - is I'm planning on getting into
the world of ARMs. Being a poor college student I'm hoping to not have to
spend too horridly much - so my current plan is to use GNU ARM for code
development. But the one thing that I still haven't figured out yet is how
exactly to move code onto the ARM. With AVRs there was, in my mind at
least, a very clear choice: an AVR ISP. For $30 I had a device that could
program just about any AVR out there. But with the complexity and the range
of manufacturers of ARMs there doesn't seem to be any clear choice. I've
seen JTAG programmers mentioned quite a bit. I've been looking at this one
in particular: http://olimex.com/dev/arm-jtag.html. From what I've read
these devices are able to program all ARMs out there except for a specific
series of Philips ARMs. For $20 it doesn't seem like a bad choice.
But what about boot-loading? I've heard this talked about some - but I
can't find any mention of it in the couple ARM datasheets I've looked
through. Maybe it has a different name? Is boot-loading a viable option for
getting code onto an ARM, or is it best to have an actual programmer?
Lastly - can anybody reccomend a specific ARM chip to me? Hopefully one
that a ARM beginner can get up and running fairly quickly. I really don't
have a specific set of features I'm looking for in one right now.
Thanks so much for your help,
-Michael J. Noone