1
$\begingroup$

I'm trying to figure out what a good DSP unit would be to try and learn how to do some embedded programming on? I would like something relatively inexpensive but that still has a decent amount of "kick" to it performance wise. I was looking at the TI ez-DSP but I don't know what to think of it.

I would like it to be programmable with C or C/C++

I would Prefer 32 bit or higher.(if possible)

Fixed point math.

Something in the Ghz clock speed.(once more if possible)

Support for hardware modulo would be a plus.

I know there are many other considerations to take into account and some of the things I have specified may not be possible to get all in one unit especially at a low cost.

I will be using it for Audio Processing and Audio Signal Generation So if a unit exists that is either compatible with ADC and DAC units or has them built in would be good.

I am open for any recommendations or any advice at all.

Thanks In advance, Alex

$\endgroup$
  • 1
    $\begingroup$ What do you want to learn exactly, what's your budget, what do you want to build with it, and why, oh why, the GHz clock speed requirement (that's quite a lot for a DSP, and quite a lot for audio beginner's projects...) $\endgroup$ – pichenettes May 9 '14 at 19:07
  • $\begingroup$ @pichenettes I would like to learn how programming for an embedded system differs from programming for a regular computer system while at the same time creating a product most likely for personal use that i can incorperate into my audio workflow.(I do a lot of computer music things and i have been trying to take things to a more involved level that just button pushing in a DAW) as far as budget preferably under a couple of hundred dollars total for parts. the clock speed is not a requirement, i would just like something "fast". As far as what to build it with I'm not quite sure yet. $\endgroup$ – Alex Zywicki May 9 '14 at 19:14
  • $\begingroup$ @pichenettes think this but to where i can write the software. Also a little more simple. $\endgroup$ – Alex Zywicki May 9 '14 at 19:46
6
$\begingroup$

Since what interests you is the "embedded system" part, and since you have a low budget (this excludes anything that requires proprietary compilers), I'd recommend building yourself a board with an ARM MCU and a codec, like this one. There's less than $50 of parts - the processor, the codec and the bare minimum to get them to work.

I'm recommending this because you can easily grab a FOSS toolchain for arm-none-eabi, because these chips have a serial bootloader which allows them to be programmed with a $2 FTDI dongle, and because they have enough flash and RAM onboard for many applications - so you don't have to deal with the complications of an external RAM or flash chip. For a beginner, it's good to have a small self-contained, system you can entirely master!

You'll learn how to set up a toolchain for an embedded processor, how to use a JTAG or serial interface to flash the chip, how to configure the peripherals and hardware for your application, and you'll write code in a relatively basic environment. It'll be a fun experience! The STM32F4 is good enough to implement audio effects and 6-10 voices of audio synthesis (Used in: the Owl stompbox, Audio Damage and Make Noise Eurorack modules, DIY synth projects like PreenFM2, Audiothingies P6, or Sonic Potions LXR). UAD needs a lot of computing power because they emulate analog hardware at the component level. You are not going to do that. To give you an idea of what's possible, the STM32F4 can run about 250 biquad filters or 100 wavetable oscillators or a phase vocoder with 75% overlap. This is a general purpose architecture, but there are DSP-ish things like saturation or MAC instructions that make the generated code relatively compact on audio DSP applications.

What this won't teach you are the specifics of VLIW architectures, and the art of writing assembly for such architectures. For that, you'd need a proper DSP board from AD or TI, but this costs more, and once you build something with their devboards it's more expensive and complicated to replicate it on your own board. You can partly capture this experience with a dsPIC.

Another cheap toy you could play with: ADAU1701 board. It has a built-in AD/DA. Downside: it can only be programmed through AD's drag and drop tool, with building blocks like filters, dynamic processors... Elektor also has a spin FV-1 board - it's a very peculiar minimalistic chip that can be mastered in a few hours. Might be worth exploring if you like vintage reverbs.

$\endgroup$
  • $\begingroup$ do you know where I could get ahold of a board like the first one you said the arm one or at least the parts? $\endgroup$ – Alex Zywicki May 9 '14 at 23:51
  • $\begingroup$ The page has everything you need - Gerber files for having a PCB made (at OSH park for example), and BOM for ordering the parts from Mouser. $\endgroup$ – pichenettes May 10 '14 at 0:13
  • $\begingroup$ thank you for all of your help. An I am looking forward to hearing from you on all of the silly questions I am bound to post in the future $\endgroup$ – Alex Zywicki May 10 '14 at 0:19
  • $\begingroup$ If you had to pick between the dsPIC and the STM32F4 systems as a the "best" starting point. what would your choice be? I might also want to mention that I am on a Mac development environment. $\endgroup$ – Alex Zywicki May 10 '14 at 3:56
  • 1
    $\begingroup$ The dsPIC will "feel" more like a DSP (you'll code in assembly, using fixed point arithmetic, large instructions, fancy memory addressing and incrementing modes), but it might be a bit underpowered compared to a cortex M4. The cortex M4 has a floating point unit which might be more comfortable to use... $\endgroup$ – pichenettes May 10 '14 at 9:00
1
$\begingroup$

Some quick partial answers:
If you simply want to learn embedded, get an Arduino.
If you want to learn a DSP, get EZDSP
If you want something that's 32-bits, 1 Ghz, get a Raspberry Pi or pcDuino.

Off the top of my head I don't have anything that is a proper DSP that meets every one of your requirements. pcDuino (not sure about Raspberry Pi) has SIMD and saturating instructions like a DSP, if that's close enough to count.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.