Solved - First Design w/ TinyFPGA on PCB in 18 years


I just finished debugging my first design using the TinyFPGA A1 module. A Motor Driver Shield for the Arduino UNO.

The Shield has the TinyFPGA, two Pololu DRV8833 tiny modules, 74AHCT125 DIP 5V level shifter, and connections to add a second two motor driver shield. Along with resistors and caps. The 5V to 3.3 Volt level shifting was done with a 2.2K/3.3K divider which worked real well.

To avoid re-flow assembly I used tiny modules for the main components and a DIP chip. Along with 1206 SMT caps, shut resistors, and 1/6w through-hole resistors.

The Pololu DRV8833 Tiny Module works with a 2.7V - 10.7V Motor Voltage Range and a 3 AMP steady state output current. The DRV8833 has overheat and current protection built in and the current can be set with shunt resistors.

The FPGA has four fixed frequency pulse width mod circuits and independent control for the motors. The Arduino to FPGA interface is a simple serial port of my own design that runs at 100 MHz, CLK, DataIn, DataOut. Also one reset signal from Arduino to FPGA and a push button switch to drive Arduino Reset Input.

Tools Used: Designed in Verilog, simulation with Icarus Verilog, KiCad for PCB design, Lattice Diamond to compile, simulate gates, and download the jedec file. Stated this in late March. Had to relearn everything. Last time I used verilog and other like tools was in 2002.

My goal was to actually do a timing simulation on the gate level. This ended up not happening due to the effort involved. Given it is running at 2 Mhz and the timing had lots of margin. It was not worth the effort.