Spi Serial Flash Programmer Schematic Drawing

 admin  

DLP-USB1232H based SPI programmer schematics In order to use the DLP-USB1232H device as SPI programmer you have to setup a small circuit (e.g. On a breadboard). See the schematics for details (you can also for easier printing). What you will need: Quantity Device Footprint Value Comments 1 — —. 1 Breadboard — —. Many Jumper wires — —.

Programmer

1 DIP-8 SPI chip — — This is the chip you want to program/read/erase. 1 3.3V voltage regulator TO-220 3.3V E.g. LD33V or LD1117xx.

1 Electrolytic capacitor single ended 100nF. 1 Electrolytic capacitor single ended 10uF. Instructions and hints:. You must connect/shorten pins 8 and 9, which configures the device to be powered by USB. Without this connection it will not be powered, and thus not be detected by your OS (e.g. It will not appear in the lsusb output).

You need a 3.3V voltage regulator to convert the 5V from USB to 3.3V, so you can power the 3.3V SPI BIOS chip. You can probably use pretty much any 3.3V voltage regulator, e.g.

Spi programmer software

LD33V or LD1117xx. For usage on a breadboard the TO-220 packaging is probably most useful. You have to connect two capacitors (e.g. Psytrance kick samples. 100nF and 10uF as per datasheets, but using two 10uF capacitors, or even two 47uF capacitors also works in practice) as shown in the schematics, otherwise the voltage regulator will not work correctly and reliably.

Connect the following pins from the DLP-USB1232H to the SPI BIOS chip:. 18 (SK) to SCLK. 16 (DO) to SI. 2 (DI) to SO. 5 (CS) to CS#. The WP# and HOLD# pins should be tied to VCC!

If you leave them unconnected you'll likely experience strange issues. All GND pins should be connected together ( pins 1 and 10 on the DLP-USB1232H, pin 8 on the SPI chip, pin 1 on the voltage regulator). You have to invoke flashrom with the following parameters: $ flashrom -p ft2232spi:type=2232H,port=A On older flashrom versions the syntax was: $ flashrom -p ft2232spi:ft2232type=2232:port=A Photos:. Module and parts FTDI FT2232H Mini-Module The can be used with flashrom for programming SPI chips. Where to buy: FTDI FT4232H Mini-Module The can be used with flashrom for programming SPI chips.

Usb Spi Flash Programmer

Where to buy: openbiosprog-spi is an Open Hardware USB-based programmer for SPI chips, designed. It uses an FTDI FT2232H chip and features either a DIP-8 socket or a pinheader where jumper-wires can be attached. The user-space source code is part of flashrom, the schematics and PCB layouts are licensed under the license and were created using the open-source EDA suite (GPL, version 2). For more information and downloads, including a parts list, Gerber file downloads, recommended Kicad settings, and recommended PCB manufacturer settings, see. Usage: $ flashrom -p ft2232spi:type=2232H,port=A Photos:. RushSPI v0.1 Amontec JTAGkey/JTAGkey2/JTAGkey-Tiny The can be used with flashrom for programming SPI chips. And should work, if you add them to ft2232spi.c ( untested).

Where to buy: Usage: More info can be found on on. You need a 3.3V voltage source - see above for details. Connect the following pins from the JTAGkey2 to the SPI BIOS chip:. 1 (Vref) to VCC. 5 (MOSI/TDI) to SI. 7 (CS#/TMS) to CS#.

9 (CLK/TCK) to SCLK. 13 (MISO/TDO) to SO. 20 (GND) to GND. The WP# and HOLD# pins should be tied to VCC.

The 'Cable pinout' picture below shows the colors on the breakout cable. Amontec JTAGkey-tiny Olimex ARM-USB-TINY/-H and ARM-USB-OCD/-H The (VID:PID 15BA:0004) and (15BA:0003) can be used with flashrom for programming SPI chips. The (15BA:002A) and (15BA:002B) should also work, though they are currently untested. The following setup can then be used to flash a BIOS chip through SPI. Pin (JTAG Name) SPI/Voltage Source 1 (VREF) VCC (from Voltage Source) 2 (VTARGET) VCC (to SPI target) 4 (GND) GND (from Voltage Source) 5 (TDI) SI 6 (GND) GND (to SPI target) 7 (TMS) CE# 9 (TCK) SCK 13 (TDO) SO On the ARM-USB-TINY, VREF, and VTARGET are internally connected, and all the GND lines (even numbered pins, from 4 to 20) share the same line as well, so they can be used to split VCC/GND between the voltage source and the target. The voltage source should provide 3.0V to 3.3V DC but doesn't have to come from USB: it can be as simple as two AA or AAA batteries placed in serial (2 x 1.5V).

Invoking flashrom: You first need to add the -p ft2232spi option, and then specify one of arm-usb-tiny, arm-usb-tiny-h, arm-usb-ocd or arm-usb-ocd-f for the type. For instance, to use an ARM-USB-TINY, you would use: $ flashrom -p ft2232spi:type=arm-usb-tiny Openmoko The openmoko debug board(which can also do serial+jtag for the openmoko phones, or for other phones) has Informations The openmoko debug board can act as an SPI programmer bitbanging the FTDI(no need of an openmoko phone), you just need:. a breadboard. some wires. The openmoko debug board(v2 and after,but only tested with v3) The voltage is provided by the board itself.

The connector to use is the JTAG one(very similar to what's documented in the previous section(Olimex ARM-USB-TINY/-H and ARM-USB-OCD/-H ) Building WARNING this was tested with 3.3v chips only. Here's the pinout of the JTAG connector of the openmoko debug board(copied from ARM-USB-tiny because it's the same pinout): Pin (JTAG Name) SPI/Voltage Source BIOS Chip connector name 1 (VREF) VCC (from Voltage Source) VCC (3.3v only) 2 (VTARGET) VCC (to SPI target) Not connected 4 (GND) GND (from Voltage Source) Ground 5 (TDI) SI DIO (Data Input) 6 (GND) GND (to SPI target) Not connected 7 (TMS) CE# CS (Chip select) 9 (TCK) SCK CLK (Clock) 13 (TDO) SO DO (Data output). Also connect the BIOS chip's write protect(WP) to VCC.

Also connect the BIOS chips's HOLD to VCC Pictures. Pictures. Performances # time./flashrom/flashrom -p ft2232spi:type=openmoko -r coreboot.rom flashrom v0.9.5.2-r1545 on Linux 3.0.0-20-generic (x8664) flashrom is free software, get the source code at Calibrating delay loop. Found Winbond flash chip 'W25X80' (1024 kB, SPI) on ft2232spi. Reading flash. Real0m19.459s user0m1.244s sys0m0.000s # time./flashrom/flashrom -p ft2232spi:type=openmoko -w coreboot.rom flashrom v0.9.5.2-r1545 on Linux 3.0.0-20-generic (x8664) flashrom is free software, get the source code at Calibrating delay loop. Found Winbond flash chip 'W25X80' (1024 kB, SPI) on ft2232spi.

Reading old flash chip contents. Erasing and writing flash chip. Erase/write done. Verifying flash. Real1m1.366s user0m7.692s sys0m0.044s Advantages/disadvantages.

Spi Interface Schematic

fast(see above). easily available(many people in the free software world have openmoko debug board and they don't know what to do with them), can still be bought. stable. SPI only.

Spi Serial Flash

CH341A is an USB interface chip that can emulate UART communication, standard parallel port interface, parallel communication and synchronous serial (I2C, SPI). The chip is manufactured by Chinese company CH341A is used by some cheap memory programmers. The IC is somehow limited in this configuration, because the programmer makes use only of the SPI and I2C interface. A popular device is the so-called ' that you can buy for 2 to 5 USD. The problem is that this device comes as-is, without any documentation or software. Drivers are available from manufacturer's website (but the site is written in Chinese). Also, some source codes are available from manufacturer.

But, first of all, let's have a look at the hardware. A quick look at the board reveals the main electronic parts used: CH341A, a 12 MHz crystal required by the chip, a 3.3V regulator, two 7 pin headers and the ZIF ( zero insertion force) socket. As you can see, the device also comes with a SMD adapter and some pinheaders for it. If you search, you will find, apparently for this programmer.

But a closer look at the PCB revealed that my programmer does not follow it exactly. So, I analyzed the PCB and came up with the following schematic. CH341A Mini Programmer Schematic. Further searching lead me to (on AliExpress). Their offered a the PCB design of the device (only top side, however).

CH341A Mini Programmer PCB (WAVGAT) Now, let's return to the schematic and analyze it a bit. The chip is powered from 5V, so its I/O ports will also use 5V. Basically this is a 5V device. The problem is that any memory you fit in the socket will be powered from 3.3V.

And this seems to be the only function of the 3.3V regulator (besides the 3.3V pin on the SPI connector). I don't know why the designer even used a regulator, if it didn't provide a switch to choose 3.3V or 5V levels and supply. By, we can see that the manufacturer recommended to connect a 0.47uF capacitor between RSTI (pin 2) and VCC for improved stability. They also forgot this one. Even so, I used the device with I2C EEPROMS (3.3V and 5V) compatible and also SPI FLASH memories (3.3V devices) without any issues. For improved reliability, I would recommend using a level shifter. In order to turn this programmer into a 3.3V device, you could cut the 5V line from VCC pin (28) and tie it to the 3.3V output from regulator.

You will also need to connect V3 pin (9) to VCC (3.3V). Note that the device works as a programmer only if ACT# pin is connected to ground via a resistor. That's why you should put a jumper across pins 1 and 2 of the UART connector. Otherwise the device will be recognized as a standard USB to serial converter. The manufacturer provides a lot of useful things on the product page.

Here are the files you can find and what they contain ( the first two are the ones you need):. self installing archive with USB to serial driver.

self installing archive with multiprotocol interface driver ( this one is for the programmer mode). archive containing driver files and serial API and library (you don't need specific API for standard serial port, but it contains some special functions to get IC version etc.). archive containing driver files for interface mode and API (header and library to access the device and use any protocol you want).

archive containing Linux driver source code and Linux API. Linux driver source code for serial port (don't need this one, it's already included in kernels).

some source code and tools written to be used with an evaluation board (may be useful for programming software that can access this device). datasheet, in Chinese. some additional info and API documentation, in Chinese. contains an ISP programming tool?. probably similar to the above, but requires login to download. The API becomes interesting due to the versatility of the chip.

You can build your own software that will read/write data from/to sensors, real time clocks or any other devices that use serial communication. You can also interface parallel devices to the chip, but this will require modification of the programmer board in order to connect to pins. There are also some other programmers and boards based on this chip. You can find most of them by searching 'CH341A' on and.

Here is an overview: CH341A Programmers and boards overview.

   Coments are closed