Archive of the former Yahoo!Groups mailing list: MOTM
Subject: Re: [motm] Thoughts on the new direction
From: "Paul Schreiber" <synth1@...>
Date: 2006-07-08
a) if it makes sense to add "hack points" on new modules, I'll certainly do so.
b) the AudioEngine has 2 programmable components: a Xilinx Spartan 3E 500K FPGA
and an Analog Devices ARM7TDMI uP. The FPGA uses an external "Boot FLASH" device
(also a Xilinx part) that load it's contents into the FPGA every time power is
applied. The uP uses it's serial port for programming (like the MOTM-650 uP
does). I have not thought about if the AudioEngine is a true 'user programmable'
device or not. I don't have plans to make a "general purpose signal processing
module" because, frankly, that is a ∗bad∗ business decision (everyone buys ∗1∗
and then that's it).
The universal way to program stuff is to use a low cost (~$15) cable that
attaches to a parallel port (printer port) of a PC and bit-bangs a serial
protocol called JTAG. The other end of the JTAG cable is a 6-pin 0.100 header.
This protocol has been around 20 years. There is probably even an OSX version :)
In order to write code for the AudioEngine, you need 2 programs: one for the
ARM7TDMI uP, the other for the Spartan 3E. I plan to use the tools from Keil
(www.keil.com) because I have been using the 8051 version for like 10 years. The
ARM version is very nice, you can get a free CD that will compile up to like 8K
of code. The ARM part I will be using has 64K of code space. There are free
tools that run under XP and Linux (Google 'ARM7 toolchain').
The Xilinx portion is a XP (possibly Linux, there is some debate if it works
100%) program that is free, called WebPack. It's HUGE, like 400MB zipped or some
silly thing. But it does a really impressive job. I use a variant called ISE 8.1
that was $1200 last year but has since been "rolled into" the new WebPack 8.2
that came out last week.
The AudioEngine will have 2 types of ADCs: 8 channels of 10-bit (maybe 12) for
reading pots and FM CVs, and 2 channels of true 16-bit for pitch or other
critical inputs. There are 4 channels of 12-bit accurate DAC output for
non-audio voltage output, and a stereo 24-bit DAC for audio out. There are a
large number (probably 40 or so) I/O pins to assign to things like LCD panels,
rotary encoders, LEDs, whatever. There will be a USB port "hook" as well. The
SPI buss that connects everything is brought out with additional chip selects so
other peripherals can be easily added.
I'm sure after I build a batch I will think of an AudioEngineII that fixes
everything I forgot :)
Paul S.