I successfully made an adapter cable that connects iCE40HX1K-EVB to a 'FT2232H MINI MODULE' that works with the "Diamond Programmer" utility.
- UART RX and TX is not connected, since I do not use that in my test project (They should connect to BDBUS0 and BDBUS1)
- "Scan SPI Flash Device" command for some unknown reason
I used the following documentations:
- https://www.ftdichip.com/Support/Documents/DataSheets/Modules/DS_FT2232H_Mini_Module.p
df
- EB82-iCEstick_User_Manual.pdf
- https://github.com/OLIMEX/iCE40HX1K-EVB/blob/master/iCE40HX1K-EVB_Rev_B.pdf
The naming scheme for MOSI and MISO in some documentation use SO and SI but mixing if it is in relation to master or slave.
The FT2232H module needs a jumper connecting VBUS (power from USB) to VCC (input for the voltage generators).
The FT2232H module needs to connect VIO to V3V3 in order to define the target voltage.
When connecting a flat ribbon cable to the FT2232H module, the connector is on the reverse side causing the pin order to be a bit messed up: 2, 1, 4, 3, 6, 5, 8, 7 and so on"
iCE40HX1K-EVB_Rev_B:
********
(NO, 3.3V) * 1 2 * GND GND
(NO, RXD) * 3 4 * (NO, TXD)
ADBUS6 iCE40-CDONE * 5 6 * iCE40-CRESET ADBUS7
ADBUS2 iCE40-SDI * 7 8 * iCE40-SDO ADBUS1
ADBUS0 iCE40-SCK * 9 10 * iCE40-SS_B ADBUS4
********
FT2232H Mini Module:
CN2
*********
/--V3V3 V3V3 * 1 2 * GND GND
| V3V3 * 3 4 * GND
| V3V3 * 5 6 * GND
| iCE40-SCK AD0 * 7 8 * RESET#
| iCE40-SDI AD2 * 9 10 * AD1 iCE40-SDO
\--V3V3 VIO * 11 12 * AD3
AD5 * 13 14 * AD4 iCE40-SS_B
iCE40-CRESET AD7 * 15 16 * AD6 iCE40-CDONE
AC1 * 17 18 * AC0
AC3 * 19 20 * AC2
VIO * 21 22 * AC4
AC6 * 23 24 * AC5
SUSPEND# * 25 26 * AC7
*********
CN1
*********
/--JUMPER VBUS * 1 2 * GND
\--JUMPER VCC * 3 4 * GND
CS * 5 6 * CLK
DATA * 7 8 * PWREN#
BC7 * 9 10 * BC6
BC5 * 11 12 * VIO
BC4 * 13 14 * BC3
BC2 * 15 16 * BC1
BC0 * 17 18 * BD7
BD6 * 19 20 * BD5
BD4 * 21 22 * VIO
BD3 * 23 24 * BD2
BD1 * 25 26 * BD0
*********