Skip to content

Instantly share code, notes, and snippets.

@cr1901
Last active September 23, 2016 19:11
Show Gist options
  • Save cr1901/43d38516c9b9ea2c819d24f10bea0cdc to your computer and use it in GitHub Desktop.
Save cr1901/43d38516c9b9ea2c819d24f10bea0cdc to your computer and use it in GitHub Desktop.
FPGA Board Notes

FPGABoardNotes

Power supplies

  • VCC- 1.2V
  • VCC_IO- 3.3V
  • VPP_2V5- 3.3V? (Icestick puts it to 3.0V)

Choosing an Interface

  • 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.
  • 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.
  • 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.
  • 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.
@ArcaneNibble
Copy link

Note that for a microcontroller:

  • You can use USB CDC rather than HID and still avoid having to write kernel drivers
  • Some ARM microcontrollers that have USB (STM32, some of the NXP parts) can be bootstrapped via code in their internal ROM that can speak either USB DFU or even pretend to be a mass storage device.

@ArcaneNibble
Copy link

This microcontroller is cheaper than an FT245RL and has a bootloader in ROM: http://www.digikey.com/product-detail/en/silicon-labs/EFM32HG308F64G-A-QFN24/336-3205-ND/5142719

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment