17

I am considering a project involving a fair share of digital signal processing. As far as I know, the best type of IC suited for this are the Digital Signal Processors. I have never worked with them before - can you recommend me any model that is simple enough for beginners? The project involves filtering hi-fi digital audio (44100Hz, 16 bit stereo) in several ways.

Also, do I need an additional uC to for example control an UI with an LCD panel and some buttons, or can the DSP handle this along its signal processing task?

Chetan Bhargava
  • 4,612
  • 5
  • 27
  • 40
Dominik
  • 404
  • 4
  • 7

9 Answers9

14

The dsPIC30F line of microcontrollers from Microchip are excellent introductory DSPs. They are programmed in C or assembly in the same way that other PICs are, but include DSP libraries that help with filtering, etc. They have all the necessary peripherals for most projects (ADC, DAC, serial communications, timers, the list goes on and on). They are fairly cheap (no more than $10), can be sampled in through-hole packaging, and can be programmed with standard PIC programmers and debuggers.

11

A couple good beginning DSP's are the C5505 DSP from TI and the C6713 also from TI. I like the first cause it is only $55.00 and I like the second because there are whole books written around the chip (Digital Signal Processing and Applications with the C6713 and C6416 DSK ) Most Dsp evaluation boards have built in support for LCD's.

Scott Murphy
  • 925
  • 6
  • 10
  • Ti has also come up with some neat devkits again http://processors.wiki.ti.com/index.php?title=Ezdsp – XTL Aug 21 '10 at 09:46
9

Check out Analog Devices DSP page.

And the free development tools.

No programing required, just drag and drop GUI objects.

Olli
  • 387
  • 4
  • 16
Larry
  • 91
  • 1
  • The dev tools are free as in beer, not as in freedom. Also, drag-n-drop programming isn't automatically a good thing - some of us prefer the old fashioned method, and have good reason for it! That said, AD does have good DSPs. I've seen their SigmaDSPs used for noise removal and digitization in automotive microphones with good sucess, but they've got several lines for different markets. – Kevin Vermeer Aug 06 '11 at 23:48
  • Note that these are sample-based processors that can't do block-based operations like FFT. http://www.dsprelated.com/showmessage/131569/1.php – endolith Apr 02 '14 at 14:25
8

If you go with one of the dsPIC parts, you can have both interface and processing in one (the make great general purpose MCU's as well). They come in SOIC and DIP packages which makes prototyping easy, and some of the dsPIC 33 range have almost all their pins re-mappable which makes routing a board a breeze.

Adam Shea
  • 81
  • 1
6

you really, really, don't need a DSP to do even advanced audio filtering on a 44.1kHz 16bit stereo signal.

An ARM core will be just fine for the filtering and running the LCD/buttons.

I'd just grab a beagleboard, toss RT linux on it and have at it. If you get really desperate for performance there is a TI 64x+ DSP on board the SoC as well.

There are very few applications for which a DSP is needed today, especially in the audio world. If you were dealing with 32 channels of 192khz 24bit audio thats latency critical, yea go for the DSP. But what your working with is well within the capabilities of modern microcontrollers.

Mark
  • 3,672
  • 22
  • 18
5

I'm looking for the same thing. This thread has some suggestions.

There's also TI's TAS3202 System-on-a-Chip, which seems to have everything you would need for filtering stereo audio. Converters and everything are built-in. The chip itself is about $5, but the eval board is about $500. Sheesh.

(You can get a single TAS3204 for about $10. TAS3202 I can't even find in low quantities.)

There's also the AK7742, which has a very convenient GUI, but you'd need to buy the eval board.

I'd love to find a hobbyist-dedicated open source DSP board like the BASIC Stamp, Arduino, Chameleon, etc.

In order to learn the high-level fundamentals of DSP, though, you'll want to start with your computer, using tools like MATLAB or its free clones Scilab, Octave, Freemat, etc. to do simulations. I've been playing around with SciPy a lot lately. That way you can learn the theoretical stuff without being bogged down by the implementation details.

endolith
  • 28,494
  • 23
  • 117
  • 181
  • 3
    +1 MATLAB suggestion. It's much better to make it work in MATLAB before porting it to an actual DSP. – ajs410 Apr 28 '10 at 21:58
1

To answer the second part of your question, yes, you'll probably need a general-purpose microcontroller to handle your user interface. DSPs are dedicated processors: they do one thing very well (signal processing) but don't do anything else.

Craig Trader
  • 1,573
  • 9
  • 15
  • 1
    ??? these days DSPs and microcontrollers have not much different between them. they're optimized for high-performance DSP processing, yes, but no reason you can't do general-purpose stuff, unless you need to deal with a LOT of memory, and even then you just have to find a DSP with an external data/address bus. – Jason S Nov 26 '09 at 05:59
  • The only thing a DSP has that a uC doesn't these days is circular addressing modes. Other than that, they're basically the same thing. Maybe a typical uC has more I/O and DMA channels, but the Analog Devices Blackfin family makes that a pretty outdated assumption too. – mtrw Apr 29 '10 at 20:16
  • 1
    There may be some risks involved in adding random functions to the load on the dsp, but they should be quite capable of general purpose interfacing such as displays/buttons/communication lines. – XTL Jun 30 '10 at 13:44
1

You could also use a BeagleBoard available for only $150 from sparkfun

zklapow
  • 1,551
  • 16
  • 17
  • 1
    The problem with the Beagleboard is that you don't get access to digital audio I/O. They D/A converters are wired in. Russ White at Twisted Pear Audio has hacked it to work with the Buffalo D/A's, but I'm told it's not so easy. – terrace Apr 10 '10 at 18:42
0

Two alternative options might also be worth looking at:

Microcontrollers with mixed signal abilities like MSP430. 44k * 2 * 2 is a lot of samples so you might not have a lot of time for processing them on the speeds these run in.

Standalone PC, PDA or such. You probably get more or less HI-FI (and upgradeable) AD/DA and audio stuff builtin and will have massive cpu power plus display capability. Good dev software is often free and hardware can be cheap or even free. Latencies might be high, though, and you'd have to work with a big power-hungry ineffective machine.

XTL
  • 1,223
  • 1
  • 11
  • 18
  • The problem with this is that the overhead of the running OS is going to kill almost any type of application. Power consumption is in no relation to what you would find using some form of DSP. In short, it will work, but the standalone PC option is very inefficient. – Wouter Simons Jun 30 '10 at 14:06