DSPRelated.com
Forums

MCU/DSP Combination

Started by fulan June 7, 2004
Good Day,

I have an application where I have to run a 2048 or a 4096 points FFT
every 30 seconds.  I am wondering whether I can accomplish this with a
regular microcontroller since my timing requirements are not that
stringent.  It is not greatly important whether the FFT is integer or
floating point, the values are 16 bit A/D values.  I was considering
just using a plain old TI-MSP 430 with 10K or RAM.
Does anyone have a better suggestion as far as ease of implementation,
low power and price?

Thank you.
fulan wrote:
> Good Day, > > I have an application where I have to run a 2048 or a 4096 points FFT > every 30 seconds. I am wondering whether I can accomplish this with a > regular microcontroller since my timing requirements are not that > stringent. It is not greatly important whether the FFT is integer or > floating point, the values are 16 bit A/D values. I was considering > just using a plain old TI-MSP 430 with 10K or RAM. > Does anyone have a better suggestion as far as ease of implementation, > low power and price?
Since that is at the top-end of MSP430, I'd also look at the bottom-end of the many ARM Flash uC recently appearing. Philips LPC2xxx family would be a good place to start, but you could define more peripherals, and that would focus your choice more. AnalogDevices, Atmel, Intel, Motorola, Philips, ST are all busy announcing/ramping ARM single chip uC in various market segments. -jg
Did you look into the PXA800F from Intel? It has a MCU and DSP built
into the same chip.

Sandeep
--
http://www.EventHelix.com/EventStudio
EventStudio 2.0 - System Architecture Design CASE Tool
fulan wrote:
> > Good Day, > > I have an application where I have to run a 2048 or a 4096 points FFT > every 30 seconds. I am wondering whether I can accomplish this with a > regular microcontroller since my timing requirements are not that > stringent. It is not greatly important whether the FFT is integer or > floating point, the values are 16 bit A/D values. I was considering > just using a plain old TI-MSP 430 with 10K or RAM.
I suggest getting a portable C implementation and trying it on the MSP430. I haven't tried it, but if your processor has the built-in multiply and you use a sine lookup table, I suspect it will do the transform in a few seconds, under you 30 second allotment. Thad
babs@eng.umd.edu (fulan) writes:
> > I have an application where I have to run a 2048 or a 4096 points FFT > every 30 seconds. I am wondering whether I can accomplish this with a > regular microcontroller since my timing requirements are not that > stringent. It is not greatly important whether the FFT is integer or > floating point, the values are 16 bit A/D values. I was considering > just using a plain old TI-MSP 430 with 10K or RAM.
Your first problem with doing an FFT is data space. A 4K transform is going to need at least 16 Kbytes for even a single-precision float form. This won't fit well in 10 Kbytes of RAM.
> Does anyone have a better suggestion as far as ease of implementation, > low power and price?
mojaveg@mojaveg.iwvisp.com (Everett M. Greene) wrote in message news:<20040608.797F598.7C01@mojaveg.iwvisp.com>...
> babs@eng.umd.edu (fulan) writes: > > > > I have an application where I have to run a 2048 or a 4096 points FFT > > every 30 seconds. I am wondering whether I can accomplish this with a > > regular microcontroller since my timing requirements are not that > > stringent. It is not greatly important whether the FFT is integer or > > floating point, the values are 16 bit A/D values. I was considering > > just using a plain old TI-MSP 430 with 10K or RAM. > > Your first problem with doing an FFT is data space. A 4K > transform is going to need at least 16 Kbytes for even a > single-precision float form. This won't fit well in 10 > Kbytes of RAM. > > > Does anyone have a better suggestion as far as ease of implementation, > > low power and price?
Hi, using the LPC2105 or LPC2106 from Philips with 32 / 64k RAM would definitely be an easier implementation than trying it with a 10k MSP 430. However, if stand-by current is an issue (battery driven?) you might want to try the MSP430 as I consider it best in class for stand-by. Looking at Mips/Watt I would think the ARM devices can actually easily compete. Cheers, Bob
Thank you for the many replies.

My specs dictate that I have a 14-16bit ADC converter, this can be
internal to the processor or external.  The requirement is the ability
to read at least 256 samples per second, ideally 512 samples per
second. We would repeat the reading for approximately 8 seconds and
perform some FFTs on the data.  The philips LPC2106 seems like a good
option however it lacks an internal A/D.  Furthermore, are their A/D
converters capable of acquiring that many points at that resolution
that quickly?(internal or external).

Moussa

schwobus@aol.com (Schwob) wrote in message news:<123e50e1.0406082020.44c7f34b@posting.google.com>...
> mojaveg@mojaveg.iwvisp.com (Everett M. Greene) wrote in message news:<20040608.797F598.7C01@mojaveg.iwvisp.com>... > > babs@eng.umd.edu (fulan) writes: > > > > > > I have an application where I have to run a 2048 or a 4096 points FFT > > > every 30 seconds. I am wondering whether I can accomplish this with a > > > regular microcontroller since my timing requirements are not that > > > stringent. It is not greatly important whether the FFT is integer or > > > floating point, the values are 16 bit A/D values. I was considering > > > just using a plain old TI-MSP 430 with 10K or RAM. > > > > Your first problem with doing an FFT is data space. A 4K > > transform is going to need at least 16 Kbytes for even a > > single-precision float form. This won't fit well in 10 > > Kbytes of RAM. > > > > > Does anyone have a better suggestion as far as ease of implementation, > > > low power and price? > > Hi, > > using the LPC2105 or LPC2106 from Philips with 32 / 64k RAM would > definitely be an easier implementation than trying it with a 10k MSP > 430. However, if stand-by current is an issue (battery driven?) you > might want to try the MSP430 as I consider it best in class for > stand-by. Looking at Mips/Watt I would think the ARM devices can > actually easily compete. > > Cheers, Bob
fulan wrote:
> Thank you for the many replies. > > My specs dictate that I have a 14-16bit ADC converter, this can be > internal to the processor or external. The requirement is the ability > to read at least 256 samples per second, ideally 512 samples per > second. We would repeat the reading for approximately 8 seconds and > perform some FFTs on the data. The philips LPC2106 seems like a good > option however it lacks an internal A/D. Furthermore, are their A/D > converters capable of acquiring that many points at that resolution > that quickly?(internal or external).
There are plenty of 16-bit audio D/A converters that sample 48,000 times a second. I don't know off hand of microcontrollers with internal ADCs wider than 12 bits, but I don't know much. I don't know what you intend to do with the data you collect, but be aware that many converter/- anti-alias filter combinations impose delays of many sample periods. I would call a sample rate below 1 KHz relatively slow. What do you mean by repeating the reading? You could mean acquiring a single string of 8 x 512 = 4096 contiguous samples and do one FFT, or else acquire 8 strings of 256 samples each, perhaps with caps between them, and doing 8 shorter FFTs, presumably averaging the results. Since the FFT gives cosine and sine (or real and imaginary, as you please), and averaging requires converting that to magnitude, the first way is likely to need less computation. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
babs@eng.umd.edu (fulan) wrote in message news:<e2bf6f14.0406230756.f020060@posting.google.com>...
> Thank you for the many replies. > > My specs dictate that I have a 14-16bit ADC converter, this can be > internal to the processor or external. The requirement is the ability > to read at least 256 samples per second, ideally 512 samples per > second. We would repeat the reading for approximately 8 seconds and > perform some FFTs on the data. The philips LPC2106 seems like a good > option however it lacks an internal A/D. Furthermore, are their A/D > converters capable of acquiring that many points at that resolution > that quickly?(internal or external). > > Moussa
I'd recommend you have a look at Analog Devices' Microconverter family of products. From the website (www.analog.com/microconverter): -------- MicroConverter products combine analog precision and digital processing on a single chip. ADC: 12-bit SAR at up to 1MSPS or 24-bit sigma-delta up to 16 input channels DAC: 12-bit 5&#4294967295;s rail-to-rail output up to four separate DAC outputs MCU: ARM7TDMI at up to 45MIPS or 8052 at up to 20MIPS with up to 62kB Flash -------- The price for a development board based on 8052 is just US$75!!! Schematics and Gerbers are provided, too. Nice, isn't it? JaaC
"Jaime Andres Aranguren Cardona" <jaime.aranguren@ieee.org> wrote in message
news:14a86f87.0406241401.2aa44b4b@posting.google.com...
> babs@eng.umd.edu (fulan) wrote in message
news:<e2bf6f14.0406230756.f020060@posting.google.com>...
> > Thank you for the many replies. > > > > My specs dictate that I have a 14-16bit ADC converter, this can be > > internal to the processor or external. The requirement is the ability > > to read at least 256 samples per second, ideally 512 samples per > > second. We would repeat the reading for approximately 8 seconds and > > perform some FFTs on the data. The philips LPC2106 seems like a good > > option however it lacks an internal A/D. Furthermore, are their A/D > > converters capable of acquiring that many points at that resolution > > that quickly?(internal or external). > > > > Moussa >
The TI MSP430 family of microprocessors has quite a few members with A/Ds http://focus.ti.com/lit/ml/slab034g/slab034g.pdf Best wishes, --Phil Martel
> I'd recommend you have a look at Analog Devices' Microconverter family > of products. > > From the website (www.analog.com/microconverter): > > -------- > MicroConverter products combine analog precision and digital > processing on a single chip. > > ADC: 12-bit SAR at up to 1MSPS > or 24-bit sigma-delta > up to 16 input channels > > DAC: 12-bit 5&#4294967295;s rail-to-rail output > up to four separate DAC outputs > > MCU: ARM7TDMI at up to 45MIPS > or 8052 at up to 20MIPS > with up to 62kB Flash > -------- > > The price for a development board based on 8052 is just US$75!!! > Schematics and Gerbers are provided, too. > > Nice, isn't it? > > JaaC