FPGA or DSP processor? - Page 1
Forum section: electronics / general

author: gus789
author_rank: Contributor
timestamp: July 20, 2013, 05:17:54 am
content: Hi, I am a noob in the field of FPGAs and DSPs. I've been looking to learn about DSP instrumentation components, things like filters, spectrum analyzers, phase detectors, lock-in amplifiers, waveform generators, etc, for sub 200 kHz analog signals.Any suggestions as to specific FPGA or DSP boards/chips that would be a good fit for this kind of project? A basic DSP processors board would be ideal as I have no experience with FPGA and their learning curve seems pretty steep (especially after Dave's last video). It would be particularly nice to start with an off the shelf board, which I could later use as a basis for various designs, rather than have to design the whole board from scratch. Thanks!Gus

author: rsjsouza
author_rank: Super Contributor
timestamp: July 20, 2013, 11:51:48 am
content: I know well the TI DSP product line, therefore I can give some suggestions of DSP dev boards.I am not exactly sure how much complexity you expect of your system or your starting budget, but you can always check aC2000 Launchpadto get your feet wet, although waveform analysis at 200kHz will be hard with this device.Moving up on scale that would be one of the eZdsp sticks such as theC5505orC5515, which will better accomodate higher sampling rates.If you have a higher budget you can either get amore featured boardthat uses the C5515 DSP or move up to the big leagues (multiple cores, full floating-point, etc.) in the shapes of aC6678 8-core 1.25GHz DSPor its smallerC6670andC6657(four and two core respectively) siblings.These big processors have a beefySDKthat runs either Linux or the proprietary RTOS (SYSBIOS) on the DSP and helps with the multicore complexity (it is a pain to get multicore processing right). All of the boards above have embedded JTAG emulators that can be used withCode Composer Studiofor free...

author: fcb
author_rank: Super Contributor
timestamp: July 20, 2013, 11:56:31 am
content: I do alot of work with the Microchip dSPIC33 range around audio ranges - easy to use & readily available. No problem interfacing external 192KHz ADC/DAC's or using the internal converters at 200KHz (recently finished a product that uses 2x12bit internal ADC's at 200KHz).

author: gus789
author_rank: Contributor
timestamp: July 24, 2013, 08:34:26 pm
content: Thanks for the suggestions. I have a couple of dspic33s in the toolbox, but never used these chips before. In terms of Nyquist freq, with 200ksps I figure I'd be able to process up to 100kHz signals without too much trouble. Maybe take another 10-20kHz off the top end to account for sub-optimal circuit design etc and that would leave me with ~80kHz max bandwidth. Does that sound about correct? If so wouldn't be too bad as a starting point. The TI line indeed looks nice. Following the links from rsjsouza I also came across the tiva linehttp://www.ti.com/lsds/ti/arm/arm_cortex_m_microcontrollers/arm_cortex_m4/stellaris_arm_cortex_m4f/overview.page, which uses the arm cortex M4 and has a 12-bit ADC with 1MSPS. Gus.

author: ElectroIrradiator
author_rank: Frequent Contributor
timestamp: July 24, 2013, 11:55:00 pm
content: If you just wish to learn and get your hands dirty, then any embedded platform with a decent C compiler will work. Personally I'd probably focus on one of the ARM lineups, like the M4 series from TI you mention. The reason for choosing ARM is that it is the defacto standard platform across the industry, and you get the most computational bang for the buck in a general purpose embedded MCU. Think we are up to quad core 1.4 GHz CPUs by now?However I'd also suggest not getting too hung up on an exact choice of platform as you start. You need to get some idea of how much computational power your problems contain, and your initial choice may not survive the harsh light of reality for very long. For instance TI's Tiva MCUs runs at 80 MHz. If you wish to sample at, say, 400 KHz, then that leaves you with an average of 200 clock cycles to process each sample. Depending on the job needing to get done, that may either be plenty or woefully inadequate.

author: Berni
author_rank: Super Contributor
timestamp: July 25, 2013, 12:55:17 pm
content: For a start fooling around with a 33f would do, they are pretty fast but don't expect too much from them. A good ARM is a good step up as its essentially the same thing, except faster. DSP chips also run C but to get the most of there parallel computation power you ned to understand how it's guts work and quite likely do some inline assembler to make most of it.FPGAs can provide incredible processing power because you make your own math crunching boxes that turn your input in to a result within just a few cycles and then have 100 of those boxes crunching numbers in parallel. But as Dave explained FPGAs take some time to figure out and sometimes they have weird behavior but to a race condition or similar. But if you have time to spend on it and 50 to 100 bucks for a dev board, do not be afraid to give it a go. Once you know how to use them it seams like you can do anything digital, even build your own CPU core from scratch.

author: fcb
author_rank: Super Contributor
timestamp: July 25, 2013, 05:00:04 pm
content: Quote from: Berni on July 25, 2013, 12:55:17 pmI take issue with that - it ALL depends on what you want to do. The ARM is a pathetic device if you want to process radar signals... Likewise, the dSPIC is over-specified if you want to build a temperature controller for curling-tongs. It boils down to your project (IMHO the best way to learn is to have a clear project in mind).I would do alot of reading around the different platforms and be tempted by whatever you can get a ton of support on. TI stuff's not bad, same with AD (sharc/blackfin) - just watchout for the packaging and availabilty, if you want to learn the basics of DSP then the dSPIC is entirely appropriate.

author: bingo600
author_rank: Super Contributor
timestamp: July 25, 2013, 05:11:16 pm
content: What about compiler/sdk pricing ?I have a friend that had tp pay serious $$$ for the TI 28xxx DSP toolkit (some years ago though).I think i have seen GCC for the Blackfin , that makes a "nice price" , but is there an affordable SDK ?Just another thing to consider./Bingo

author: gus789
author_rank: Contributor
timestamp: July 25, 2013, 05:41:08 pm
content: Agreed, no point in trying to kill a mosquito with a machine gun. Like I mentioned in the first post, I am interested in signals below ~200kHz. I have various applications in mind particularly ones using FFT, like filters and lock-in detection/spectral analysis. The first one I am trying to put together is meant as a student project and consists of a small system for thermal conductivity measurement using the 3-omega method. This linkhttp://www.physics.oregonstate.edu/~tate/TateLabWiki/lib/exe/fetch.php?media=thermalcond:thermal_conductivity_measurements_using_the_3-omega_technique_david_de_koninck_.pdfdescribes the 3-w method in some detail.Admittedly the 3-w project will require relatively small bandwidth (<20kHz or so), but other projects will need to go to higher frequencies. I'd thus prefer to start with a platform that can scale nicely to those projects rather than have to learn a completely new platform when I have to scale.As per the discussions and suggestions here, I have been leaning toward the TI ARM or the DSPIC, both which have the advantage of low cost and relatively high bandwidth ADC. The limitation I am trying to sort out is the ADC resolution of 12-bit, as I don't currently know if that will be enough (most likely will be OK tough).The TI 5505/5515 are really nice chips but their internal ADC are low res (10-bit) and the boards only contain audio codes with 48ksps max. Cheers.

author: rsjsouza
author_rank: Super Contributor
timestamp: July 25, 2013, 06:20:58 pm
content: If you haven't ruled out the DSPs yet, thePiccolo LaunchPadmay be a good candidate, as the device has a 12-bit ADC and its page says it has a conversion time of 217ns (probably is reduced if using multiple channels - checkits ADC manual) - I never used this device past the "hello world" to know better, though.Quote from: bingo600 on July 25, 2013, 05:11:16 pmYes, that was true a few years ago with almost every microprocessor, but nowadays everything but the board is free, including the CCS IDE and the SDK (also calledcontrolsuite).

author: fcb
author_rank: Super Contributor
timestamp: July 25, 2013, 06:59:04 pm
content: If you are looking at pure-AC waveforms and need more resolution. Just use a 24bit ADC* - the I2S interface is trivial (on the dSPIC at least) and the parts are really cheap.The dSPIC dev kit is very low cost (I use an ICD3), and I write in assembler only so can't comment on the cost of C compilers.Edit: *Like the PCM1807 or WM8786

author: gus789
author_rank: Contributor
timestamp: July 26, 2013, 06:45:59 pm
content: Thank you all for the replies.Fcb, would you use a 20-pin SSOP to dip breakout for prototyping with the WM8786? Or would that significantly deteriorate performance?I was thinking of getting the 20PINSSOP part from from this link:http://www.futurlec.com/SMD_Adapters.shtmlI am also ordering a couple of TI boards later today - one tiva/arm and one piccolo. I figure for the price it doesn't hurt to try them out and see where it goes, plus I can always use the for something else if not for this. Along with the 3 dspic33s I already have lying around somewhere that should give a few of options.