[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