Interesting SPI Routing with iCE40 FPGAs
12 days ago
- #Open Hardware
- #Embedded Systems
- #FPGA
- The Fomu FPGA development board is highly portable, fitting entirely in a USB port.
- It features a Lattice Semiconductor iCE40 UltraPlus 5K FPGA, popular for its open-source toolchain support.
- Fomu's USB core is implemented in RTL (using ValentyUSB) to save space, included in the Foboot bootloader.
- The iCE40 FPGA supports loading bitstreams into SRAM or external flash, with NVCM for high-volume applications.
- Fomu includes a GD25Q16CEIGR flash chip for persistent bitstream storage, despite NVCM being unnecessary for prototyping.
- Unlike other boards, Fomu requires bootstrapping since its USB core runs on the FPGA, necessitating Foboot for initial configuration.
- Fomu's test points allow direct programming of the flash or FPGA, with specific strategies to manage SPI communication.
- The iCE40 can act as a SPI controller or peripheral, complicating direct programming without proper pin management.
- Fomu's design contrasts with the iCEstick, which restricts programming to SPI flash only to prevent accidental NVCM programming.
- The fomu-flash utility uses deep power-down commands to manage flash IC during FPGA configuration, avoiding HOLD pin issues.