FPGA or DSP.? .

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

Reply to
boortsu
Loading thread data ...

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

Reply to
Vladimir Vassilevsky

e

ce

re

An XMOS device should handle that easily:

formatting link

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

Leon

Reply to
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
Reply to
Ulf Samuelsson

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
Reply to
Ulf Samuelsson

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.