- VCC- 1.2V
- VCC_IO- 3.3V
- VPP_2V5- 3.3V? (Icestick puts it to 3.0V)
- FT245 Pros/Cons
- Pros
- Cheaper
- Requires less board real estate.
- Programming pins can be reused as I/O.
- Cons
- Requires mux/support circuitry to provide
SPI_SS_B
pulldown. - Risk of bit banging being unable to provide proper clk frequency range.
- FT232H has basically same pros/cons but is a superior chip speed-wise.
- Has MPSSE, so bit-banging problem doesn't apply.
- Requires mux/support circuitry to provide
- Pros
- FT2232H Pros/Cons
- Pros
- Easier Interface from FPGA- POV
- MPSSE
iceprog
already is capable of doing "peripheral" mode with a minor board hack to IceStick.
- Cons
- More expensive, and non-trivially so for my budget (possibly a dozen boards).
- More board real-estate.
- Pros
- FT245/232H Cons
- If board resets on its own, chances are the FPGA will not receive a valid sync word in time from the host computer before FPGA enters low-power mode (6 tries). Will require manual reset anyway most likely.
- This does not apply if I put reset under host control using FTXXX pins, which was not my intent b/c to do so would force me to use FT2232H.
- If board resets on its own, chances are the FPGA will not receive a valid sync word in time from the host computer before FPGA enters low-power mode (6 tries). Will require manual reset anyway most likely.
- Microcontroller Pros/Cons
- Pros
- Is capable of notifying host with out-of-band information that FPGA reset itself.
- Requires more real estate, but potentially mitigated by clever use of MCU pins.
- Cons
- More expensive.
- USB HID insufficient bit rate (for receive. Transmit probably okay. I need at least 55000216 bits/sec).
- Yet another part to program. Not user serviceable without a bootstrap problem if loading new firmware to MCU from FPGA fails.
- Not prepared to write USB kernel driver.
- Pros
Note that for a microcontroller: