The specification for this development board is as follows:
- iCE40HX4K in
144 pin QFP
- N25Q032A 32 Mbit SPI flash
- Space for two 5mm x 3mm oscillators
- W9825G6KH 4M x 4 Banks x 16 bits SDRAM (32 MByte)
- PS/2 port with two channels for a mouse and keyboard
- I2C:
- RGB LED
- 4 buttons
- Buzzer
- FT231XS USB to UART converter with USB-C socket doubling up as the source of 5V power
- MicroSDCard slot
- PMOD header
- 40 pin expansion:
- 3.3V and 5V power, 27 general purpose IO, 2 clock pins, shared I2C bus
A schematic is included here, along with the KiCAD data files, whcih are in KiCAD 6 format.
An expansion card featuring HDMI and I2S output on a 3.5mm jack has been built:
A further, unbuilt, expansion card has been designed for VGA output:
The PCBs are 4 layer boards. My boards were manufactured by JLCPCB.
The jumper mechanism to route the SPI signals which carry the configuration data from the programmer was borrowed directly from the Lattice’s iCE40 UltraPlus Breakout Board.
Any iCE40 compatible programmer should be useable. I built my own, out of a Pi Pico, the software for which is documented in another repo. The programmer has been used to program both the attached flash and the FPGA directly.
The header is a IDC10 in 100mil pitch. For the pinout refer to the schematic.
The design of the FPGA board is a tweaked version of the build I have on my bench, since it has some issues:
- The PMOD pinning was backwards.
- The PS/2 port lacked clamping diodes due to the FPGA's intolerance of 5V signals from the PS/2 device. Remarkably I see no problems with my board, but it is not correct not having diodes to clamp the PS/2 data and clock lines to 3.3V.
The following features have not been tested yet:
- The MicroSDCard slot
- The SDRAM
- The I2C RTC
- The I2S DAC
The best place to learn about this board is undoubtably my blog.