FPGA or DSP.? .

Nov 07, 2010 4 Replies

Hello,



I've to choose the platform for an embedded system. I'm developing a multichannel (16 channels, 32ksps) acquisition system. I need to make some filtering operations over each channel and send them to pc everything in real time. The channels have an SPI compatible interface. I've looked at the Spartan3A dsp where I can easily make multiple SPI compatible interface and then process the channel in parallel. I've found the Spartan 3A dsp starter kit from AVNET that can work well but it hasn't an USB interface that I want use to send data to pc (principally I need channel that has a bandwidth larger then 20MB/s). What do you think about this solution?



Which could be any DSP equivalent solutions? The data format are two's complement, 24 bit width, I've thinked about a TMS320C64 but I don't figure out how grouping 16 channel SPI Compatible in one channel.



All suggestions or comment are welcome,



Regards,



Boortsu


--------------------------------------- Posted through

formatting link


Here is DAQ board that I developed:

formatting link

I have the 24-channel 48k version also.

The 16 channels x 32k x 24 bit is a pretty serious hardware/software undertaking. You will need both FPGA and DSP and considerable amount of memory.

Vladimir Vassilevsky DSP and Mixed Signal Design Consultant

formatting link

e

ce

re

An XMOS device should handle that easily:

formatting link

You could have a high-speed USB port implemented in software.

Leon

boortsu skrev:

32000 * 16 * 24 = 12,288,000 bps = ~ 1.5 MB / s

Any decent SPI should be able to do this speed, so you need to have 16 chip selects.

A full speed USB will have a throughput of ~1 MB/s, so you need to look for a high speed USB.

An AT32UC3A3 has two SPIs with 4 encoded chipselects. By connecting 2 x (3->8) 74x138 decoders to the chipselect signals you get 16 chip selects. This will mean that the CPU will have to handle the chip selects. Whether this is a suitable chip, is really dependent on the type of signal processing you are looking for. Don't forget that 2-4 cheap MCUs + hub can be cheaper than one expensive DSP.

An alternative solution is to use a small PLD This could implement a "channel" counter, so you could define 4 bit combination as "read the first ADC" or "read the next ADC" If you do 32 bit reads the CPLD could ensure that the 24 bit is converted to a 32 bit 2 complement number by delaying the clock for bit 24..31.

This latter method is useful for just about any MCU.

Best Regards Ulf Samuelsson These are my own personal opinions, which may or may not be shared by my employer Atmel Nordic AB

boortsu skrev:

32000 * 16 * 24 = 12,288,000 bps = ~ 1.5 MB / s

Any decent SPI should be able to do this speed, so you need to have 16 chip selects.

A full speed USB will have a throughput of ~1 MB/s, so you need to look for a high speed USB.

An AT32UC3A3 has two SPIs with 4 encoded chipselects. By connecting 2 x (3->8) 74x138 decoders to the chipselect signals you get 16 chip selects. This will mean that the CPU will have to handle the chip selects. Whether this is a suitable chip, is really dependent on the type of signal processing you are looking for. Don't forget that 2-4 cheap MCUs + hub can be cheaper than one expensive DSP.

An alternative solution is to use a small PLD This could implement a "channel" counter, so you could define 4 bit combination as "read the first ADC" or "read the next ADC" If you do 32 bit reads the CPLD could ensure that the 24 bit is converted to a 32 bit 2 complement number by delaying the clock for bit 24..31.

This latter method is useful for just about any MCU.

Best Regards Ulf Samuelsson These are my own personal opinions, which may or may not be shared by my employer Atmel Nordic AB

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required