Hello flashrom community,

I think I found quite a simple and convenient method of
using FTDI UM232H-B module to program 3.3 V flash chips
(in short, yet another FTDI-based programmer).

As mentioned on the IRC, I thought it might be useful to
add some mention about it to the FT2232SPI wiki page.
As I cannot make edits to the wiki, I put together some
info about the module and how to modify it for 3.3V
supply output in this email:

---

UM232H-B is quite a cheap and easily obtainable module
based on the FTDI FT232H chip. Its disadvantage is
that it only has a pin for 5V voltage output supplied
from USB +5V through a fuse. Nevertheless, by making a
simple modification, it can be converted to output
3.3 V instead.

The modification:
1. Remove (desolder) the 5V SMD fuse (F1),
2. connect the +3.3V pad (right) of capacitor C10 to the
   right pad (closer to the "5V" pin) that remained
   after the desoldered fuse.

Photo of the modified module: https://i.imgur.com/akrlskc.jpeg
(note the green bodge wire).

Connection with the SPI chip:

UM232H-B | Chip pin #
---------------------
5V*      | 8 (VCC)
GND      | 4 (GND)
D0       | 6 (CLK)
D1       | 5 (MOSI)
D2       | 2 (MISO)
D3       | 1 (/CS)
D4       | 3 (/WP)
D5       | 7 (/HOLD)

(* 3.3 V after the modification but the pin name remains)

Photo of the module connected to a Pomona clip, using
female-to-male jumper wires:
https://i.imgur.com/bDDAsLn.jpeg

flashrom programmer parameters:

$ flashrom -p ft2232_spi:type=232H,gpiol0=H,gpiol1=H

The pins D4 and D5 which are mapped to gpiol0 and gpiol1,
respectively, are used to control the write protection
(/WP) and reset/hold (/HOLD) pins and should be driven to high
level during the programming. For older versions of flashrom
that don't support the gpiolX= parameters, it is possible to
connect them directly to +3.3V instead.

Warning: The internal 3.3V regulator of the FTDI chip is not
able to handle large currents - it's recommended to use an
external 3.3V supply (in that case the modification is not
necessary) or to add a dedicated 3.3V regulator to the module
when using it for in-circuit programming on boards that draw
a lot of current from the programmer due to other devices
connected to their SPI chip's power rails.

UM232H-B product page:
https://ftdichip.com/products/um232h-b/

UM232H-B datasheet:
https://www.ftdichip.com/Support/Documents/DataSheets/Modules/DS_UM232H-B.pdf

FT232H datasheet:
http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232H.pdf

---

For now I tested it with unsocketed W25Q128JV SPI chips and it seems
to work fine for read/write/erase/verify as the chip draws only about
7 mA when erase is in progress (the datasheet speaks about 25 mA).

Using it on a W25Q128JV socketed in an Asrock Z170M resulted in about
70 mA current (due to other devices sitting on the SPI chip power rails)
and a failed chip detection but the module's still working fine after
that - this seems to be the board's problem (it couldn't be detected
even with another SPI programmer). Unfortunately I have no other
boards to try right now.

I think I will add a 3.3V regulator in the future to give it some
greater output current capacity as for now the FTDI chip has overtaken
the role of the desoldered fuse.

Suggestions welcome. Thanks!

Regards,
Jan
_______________________________________________
flashrom mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to