[Fpga-synth] ARM + FPGA project progress
Eric Brombaugh
ebrombaugh1 at cox.net
Tue Feb 24 16:31:48 CET 2009
I got the blank PC boards back from BatchPCB on 2-15 and I've been
tinkering with the project off & on since then. Currently I've got the
ARM, FPGA, USB, LCD, SD card & power supplies working. The ARM firmware
to support all these interfaces is coming along nicely as well. Pictures
of the progress are here:
http://members.cox.net/ebrombaugh1/synth/armfpga/pix.html
At the moment it's possible to plug the board into a PC and have it show
up as a flash disk. You can copy firmware updates and FPGA bitstreams
onto the SD card. When you unplug the USB cable, the firmware update is
transferred from the SD card into the MCU flash and control is passed to
the new firmware. It's also possible to pop the SD card out and copy new
code & data directly onto it using a card reader/writer. The next time
you power up, it will load the new firmware. Once the firmware is
loaded, the file on the SD card is removed and subsequent power-ups jump
right into the existing flash application.
The current custom firmware searches the SD card root directory for a
file called FPGA.BIT and loads that into the FPGA using slave serial
mode. The file is just the bitstream created by the Xilinx tools. This
load takes place through one of the ARM's SPI ports (the other is used
for the SD card) and takes a couple seconds. The second UART is also
being used as a diagnostic port - it reports boot progress and any error
conditions. This comes out through a daughter card (not shown) that
connects to the MISC I/O header. Other signals on that header are the
ADCs, DAC and GPIOs which can be employed for user interface.
Once the FPGA comes up, the SPI port can be reconfigured to talk to the
logic design - the same pins used for configuration become user I/O and
my test design has a (surprise) SPI slave port hooked up to them.
Still to do - install the SRAM, Codec and support parts. After that its
time to start some serious coding. I2C interface to the Codec for
configuration of operating modes, MIDI parsing, and brainstorming about
what the first synth design will be.
Eric
More information about the Fpga-synth
mailing list