mirror of
https://github.com/tinyvision-ai-inc/pico-ice.git
synced 2024-11-23 20:14:40 +00:00
.. | ||
include | ||
rtl | ||
src | ||
.gitignore | ||
CMakeLists.txt | ||
pico_sdk_import.cmake | ||
README.md |
Automated Testing of the pico-ice
This firmware is meant for testing all connections of the board with a rig as described below.
Test process
- load the firmware.uf2 onto the RP2040 (drag-and-drop)
- load the bitstream.bin onto the iCE40 (dfu-util)
- reset the board (SW1)
- press the button to start the test outside of the jig (SW2), it should turn blue
- put the board onto the jig
- press the button to start the test inside of the jig (SW2), it should turn green
- at the end, to ease debugging, the FPGA is still programmable, and a square wave of 10 Hz is sent through the whole chain, which permits to observe where it eventually stops.
Color code
- GREEN boards passed the test, can be loaded with a blinky.
- RED boards need troubleshooting, and USB UART has the full log detail
- BLINKING boards are ready to be packaged and shipped.
Test jig
- There are horizontal (
─
) physical connections made with wires, except aroundICE_12
andICE_13
that are instead connected with each other vertically (│
). - The vertical connections (
:
) and long connections (....
) are made internally by the FPGA.
Together, these connecitons are building a test chain on the FPGA, whose input is controlled by the RP2040 which performs tests and report with the LED color.
┌────────────────────────────────┐
│ │
│ │
│ ...................... │
│ .' '. │
ICE_12█ █ ICE_16█───█ICE_14
│ │ : │
ICE_13█ █ ICE_17█───█ICE_15
├──:────┐ ┌─:─────┤
│ █: █ │ ICE_25█───█ICE_23
│ : │ │ : │
│ █: █ │ ICE_19█───█ICE_18
│ : │ │ : │
ICE_28█───█ICE_31 <--ICE_27█ █ICE_26<--
│ : │ │ .' │
ICE_32█───█ICE_34 btn/ICE_21█.' █ICE_20/high-z
│ : │ │.' │
ICE_36█───█ICE_38 .' █ █ │
│ : │ .' │ │
ICE_42█───█ICE_43 .' │ █ █ │
├─:─────┘ .' └───────┤
ICE_37█───█ICE_35 .' GPIO26█───█GPIO15
│ : : │
ICE_11█───█ICE_6 : GPIO28█───█GPIO13
│ : : │
ICE_10█───█ICE_9 : GPIO29█───█GPIO12
PB ├────:──┐ : ┌───────┤
│ █ :█ │ : GPIO16█───█GPIO20
│ : │ : │ │
│ █ :█ │ : GPIO17█───█GPIO21
│ : │ : │ │
ICE_44█───█ICE_45 : GPIO18█───█GPIO22
│ : │ : │ │
ICE_46█───█ICE_47 : GPIO19█───█GPIO23
│ : │ : │ │
ICE_48█───█ICE_2 : │ █ █ │
│ : │ .' │ │
ICE_3█───█ICE_4' │ █ █ │
├───────┘ └───────┤
SWDIO█ █ █ █ │
│ │
SWCLK█ █ █ █ │
│ ││||||||||││ │
GPIO25█ █ O O █ █ │
│ │ │ │
│ │ │ │
│ o o │
│ │ │ │
└─────────┴────────────┴─────────┘