[ 01.11.2015 ] : My latest Arduino design arrived in yesterday’s mail. This design is made to be compatible with the Sparkfun Arduino ProMini so that the standard Arduino IDE will have built in recognition to my board. My twist on the design is that it is REALLY small 12mm x 23mm ( about 0.5″ x 1″ so it only cost me $2 to make ). The only external interfaces are a Nano x4 connection to my FPGA family containing the Arduino SPI interface and a FTDI UART interface for Arduino configuration. The board is too narrow for a standard 1×6 FTDI cable connection, so I instead pinned it out as a 2×3 connector and then designed a 2×3 to 1×6 adapter board.
Purpose for this board is that if I ever need one of my Nano FPGA boards to do any kind of complex sequencing or report generation,etc that is too involved for a hardware FSM and would be better suited to a CPU, I could plug an Arduino into my FPGA and interface via 4-wire SPI over a Nano x4 bus connection. Xilinx has their inferrable Powerblaze CPU core – but its a huge hassle to design one in and get the tool chain all up and running ( plus $ ). Arduino is very simple in comparison. Other nice thing is the AVR chip of an Arduino has all the Flash and SRAM built in leaving all the FPGA resource available for the real hard lifting.
I may or may not assemble this right away. This is actually my 2nd version of this board, 1st was done prior to the Nano bus standard and was a DIP mounted board and used the MLF package instead of QFP. Bringup takes a bit of doing. Unfortunately, “Arduino” doesn’t use the built in Atmel bootloader ( which is SPI based ) but instead uses an Arduino bootloader that you have to get in the 8bit Atmel CPU before it is an Arduino and not just an Atmel AVR. This process involves using an Atmel USB dongle to configure the AVR clock setting, and then using an Actual Arduino to load the Arduino bootloader into the AVR over SPI. Thankfully I wrote the entire process down a year ago. At the end of the day, I end up with an Arduino board that plugs into my FPGAs and can accept compiled C code to tell my FPGAs to do something. Unfortunately, at the end of the day – do I really want to write and compile C code? Been there, done that, no – not really. I think my RaspberryPi project ( with interpreted Python ) is really where I want to write code for most designs. The Arduino I might just stick in my back pocket for when I need something software driven that must be REALLY small and REALLY low power ( outside of RaspberryPi space ).
[ Arduino Pro Mini x4 ]
[ FTDI Adapter 2×3 to 1×6 ]