[Fpga-synth] ARM FPGA Audio board assembled, test code working
Eric Brombaugh
ebrombaugh1 at cox.net
Wed Mar 4 15:47:31 CET 2009
On Mar 4, 2009, at 3:47 AM, Theo Verelst wrote:
> With some interest I've read about a handful of designs on this
> channel,
> I notice you've used a microcontroller: is there a reason for this,
> like
> being used to it, I mean, an FPGA can hold one easily (albeit some are
> licensed) or you could use a more powerful device like a DSP or
> maybe an
> OMAP (combined dsp/mc) while you're at it anyhow to make a small track
> PCB?
Good question!
The reasons behind the microcontroller choice on this board are:
* I'm familiar with ARM processors.
* This ARM processor has USB on-chip while most other DSP processors
(dsPIC, etc) don't.
* Development tools are free, cross-platform (Mac, Win, Linux) & open
source.
* USB and SD flash driver code is free & well tested.
* Soft microcontrollers use up a _lot_ of FPGA resources. In order to
fit a microblaze into this design I'd have to go to a larger FPGA
which would be more expensive than adding the external ARM processor
and still wouldn't have had USB. Picoblaze processor would fit better,
but doesn't have as much I/O, processing power or good development
tools. Other open-source soft processors are too new, also large &
have untested development tools
* OMAP is attractive, but is only available in DIY-hostile fine-pitch
BGA packages. I might consider something like a daughter card for a
Beagle board, but that raises the cost of entry considerably since a
Beagle board is $150. without the daughter board. This stand-alone
board can be built for around $120 in parts & PCB.
I could have used other ARM processors with USB, such as the Atmel
SAM7 parts which are almost as capable and somewhat less expensive,
but the LPC214x parts already had some good driver code & tested
examples.
> I've a combined Spartan-3 + Analog Devices DSP board design lying
> around
> already for years which can transfer up to 40 Megabytes/Sec over a
> self
> made bus connection from a dual core Blackfin (500 MHz) to a Xilinx
> FPGA
> with a number of memory mapped direct communication registers. Would
> that be an interesting contstruction to use as audio/synthesizer
> processing basis? The DSP development boards have excellent 24 but
> AD/DA
> converters, and I've well working synthesizer code with midi input
> running on a simular DSP (same C development env) based on fast DSP
> interupt routine simulating an analog synthesizer, which currently
> interfaces with a CPLD (a small size programmable logic option), this
> could easily be exchanged with a spartan board I have, or I could
> make a
> new setup where most processing happens on the FPGA (like the Digilent
> spartan 3e board Scott Gravenhorst uses, too) and let the DSP do only
> some hard things like computing sines and division in C and DA (and AD
> as I use for effects) too.
Sounds like an interesting setup. You should design a system around it
and publish it on your website. Diversity is a good thing!
> When making an FPGA synthesizer I suppose it is important to have an
> idea of what type of synthesis is happening on it, what are you
> planning
> to use as synthesis method? Virtual analog, FM, sampling, a hybrid
> form,
> wavetable, additive, or ..?
I've noted a few possibilities on the web page for this project. Note
that this uses a full codec, so all of the things you mention can be
done, as well as others. There are a number of things I want to try,
but wavetable, granular, FM, formant, vocoders, samplers, delay lines,
are all on my wish list.
Eric
More information about the Fpga-synth
mailing list