EmbeddedRelated.com
Forums

A couple basic questions regarding ARMs and DSPs

Started by Michael Noone April 22, 2005
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
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
"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
"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
"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
Look on www.circuitcellar.com on the 25th. Philips lpc213x contest starting. www.gnuarm.com http://www.newmicros.com/download/appnotes/ARM/TiniARM_Dev_Eclipse.pdf Most of the philips chips can be programmed by a simple jtag programmer or via serial bootloader. Also the lpc2000 chips have a great yahoo user group Sparkfun.com sell the olimex boards etc in the US. A nice article from circuit cellar http://www.circuitcellar.com/library/print/0405/Pride177/index.htm http://www.circuitcellar.com/library/print/0405/Pride177/2504018-Pride.pdf code ftp.circuitcellar.com/pub/Circuit_Cellar/2005/177 few other links http://www.open-research.org.uk/ARMuC/ http://www.semiconductors.philips.com/markets/mms/products/microcontrollers/key_solutions/32bit/index.html lpc2131 http://www.semiconductors.philips.com/cgi-bin/pldb/pip/LPC2131FBD64.html isp flash util - program over serial http://www.semiconductors.philips.com/files/products/standard/microcontrollers/utilities/lpc2000_flash_utility.zip Software options not free / limited size commerical compilers keil arm http://www.keil.com/demo/eval/arm.htm nice ide and debugger book on getting started (writen to promote keil compiler) http://www.hitex.co.uk/arm/lpc2000book/index.html http://www.keil.com/download/docs/lpc21xx_insidersguide.zip iar kickstart versions http://www.iar.com/Products?name=KSDKLPC2106 Rowely crossworks - commerical ide + gcc http://www.rowley.co.uk/crossworks/Evaluating.htm gcc + eclipse http://www.newmicros.com/download/appnotes/ARM/TiniARM_Dev_Eclipse.pdf just follow instructions in pdf to get nice ide + gcc http://www.gnuarm.com/ docs http://www.arm.com/documentation/ http://www.techonline.com/community/ed_resource/course/14612 Alex
"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