DIY programmer for BIOS.

Universal USB programmer for MK AVR, I2C Eeprom and SPI Flash 25xx

I decided to entertain myself at your leisure, but at the same time to have a pacemen in programming, but I got a little carried away, and this project was born. Not as usual, some unnecessary without eater, of which I got a whole heap in my bins, and a completely useful thing. USB programmer for microcontrollers AVR, SPI Flash 25 series and i2C Eeprom 24xx.

Initially, there was an idea to practice in a package exchange between a microcontroller (STM32 in this case) and a computer on the COM port. At first, as usual, I directed LEDs from the computer through a simple terminal, then the program was added to C#. Then the first packages of obtaining the ATMEGA328 microcontroller ID and implementing the function behind the function, while delaying the firmware of the “iron” part and software on the PC, it turned out to be a full.fledged project.

The “heart” programmer is the STM32F103C8T6, known to many of the Chinese scarf Blue Pill. It is connected to a computer via a USB-UART converter (my favorite CH340G). Someone rightly rightly notice that in this microcontroller there is a hardware USB and you can safely implement a virtual COM port on it (hid CDC). But! In the “Iron” converter there is one important plus, there are all the lines of the port of the port that (in my case DTR) can be used to control the microcontroller. In the soy scheme of the fishing line for a trimmer, DTR controls the discharge (NRST) of the microcontroller. There is also a big plus that there is no problem of “eggs and chicken” when creating a programmer (that is, what to flash the programmer itself?). Good ST-Microelectronics Engineers took care of us and added usart bootloader to their controllers. And since my board already has a USB-SUSART converter connected to the USART1 STM-ki, it remains only to download the StmflashloadDDDEMSTRATOTO STM program, put the “Boot” jumper (on my board you still need to clip the “reset” ISP AVR connector for plus or the minus of the same connector is simple, boot1. PB0 is connected to this connector, and when programming through the bootloder, it should not hang out in the air) and flash the microcontroller with the finished firmware.

Having run ahead, I will say that along the way I began to redo the programmer for a hardware USB, which I divorced in advance on the board. USB I have a custom like Custom HID. Speed, of course, 2-3 times higher, but it has not yet been possible to get stable work. Single packages are transmitted back and forth without problems, but with a continuous stream during operations of reading-records of firmware, packages are sometimes lost. But I work on it.

The principle of operation of my programmer is as follows: the host sends the microcontroller a package with a request, the microcontroller sends a package with an answer. The microcontroller itself, without demand, does not go to the host, except the only case. hardware reset (sends a package of the programmer). Also, in the exchange, there is no sending packets through temporary delays, which could cause software to the software. Only a query. Further, the packages both from the host and from the “iron” are processed in the design “Switch-Case” depending on the marker byte.

The length of the package I made a fixed (23 bytes). This is a compromise between the amount of useful information in the package and the speed of its transmission in the case of service packages that carry only one useful byte. I won’t disassemble the package in detail, I can only say that there are 16 useful bytes in it (that is, those that transmit these firmware), the rest of the officials of the service (start and feet of byte to check the integrity of the package, packet marker, address). Of course, it would be more efficient to make a package of not fixed length, but this would greatly complicate the software and firmware of “iron”.

The exchange rate has chosen the maximum for CH340G. 2 megaboda. STM-ka at this speed works without problems. As a result, the exchange rate was acceptable. Read-write AVR and I2C Eeprom is very comfortable, but spi flash. not really. They are very capacious. A flash drive for one megabyte (not to be confused with megabit) is written or read for about four to five minutes. Respectively, 8 megabytes will be read or written for about 16-20 minutes. Fortunately, packages exchange stably and errors or cliffs when recording/reading does not arise. In principle, you can go to drink tea while it is written (joking).

Now let’s get acquainted with the minimum programmer scheme:

The minimum scheme is a microcontroller with a minimum bandage, a USB-SART converter is also in a minimum bandage and programming connectors. In principle, you can use the same Blue Pill board by connecting a programmable device on the wires, the only thing you need suspended for a plus of 3V3 SCL and SDA i2C1 lines for EEPROM programming.

Why the scheme is minimal? Because initially the device was developed on a home.made evaluative board with the displayed ports of the microcontroller. And this was enough for programming “on wires” the listed memory chips and MK. In general, I also planned the support of PIC microcontrollers. To do this, in the final board I still have a voltage converter of 12 volts, a supply control circuit, and a 3V3 level converter. 5V for legs PGC, PGD and PGM PIC controllers.

I will say right away, with the peaks I have not grown together yet. In fact, they turned out to be rare. children without a father. As it turned out in every PIC line there are a bunch of subfamily, which differ not only in a set of commands, but also with programming algorithms and a lot of parameters. And HEX files for PIC different families also differ radically. They contain a program, and EEPROM, and configuration bats. And all this at different addresses and in different quantities of different models. For example, PIC16F84 and PIC16F84A have different recording and erasing algorithms, and several teams differ in them. In general, there can be no question of any standardization, it feels like PIC engineers competed, who will make it more complicated and worse. The maximum that I was able to squeeze from the PIC16F73 I have is to get a cell with ID. And then it’s not entirely correct, although it is read stably (if someone has the experience of programming PIC, not writing programs, namely firmware algorithms, you can share your experience, I will try to realize at least a couple of faces of 16).

To complete the picture, I will also give a circuit of a voltage converter by 12 volts:

As well as a diagram of levels of levels and voltage controls of 5 volts and 12 volts:

Programmer Memory of Memory of Herprom/Flash. CH341A

Small in size, the electronic firmware device is connected to the port of the USB port. The sorcerer allows you to quickly program memory chips 24xx, 25xx series and similar. Consider electronics for a better representation, understanding, application in practice.

Memory of memory of the 24XX series (EEPROM), 25XX (Serial Flash) are used in electronic technology schemes everywhere.

This kind of chips are present in almost any design of modern household / industrial equipment controlled through microcontrollers.

For electronic workers working with such equipment, the necessary tool is a programmer, in particular, the CH341A model, which allows you to program memory chips without losing a printed circuit board.

The full view of the CH341A programmer gives a description (Datasheet), supplemented by standard technical characteristics. Nevertheless, consider the device of the electronist through the eyes of the layman, which is often perceived by a potential user easier and easier for official documents.

Universal CH341A programmer for working with widespread microcircuits of memory of the EEPROM and Flash type. Every self.self.respecting electronic man is obliged to get such a device

The assembly of the device is based on the USB Bus Convert Chip microcontroller of the CH341A series. The programmer is designed for a physical connection to the port of USB computers running modern Windows OS. Memory programming module is assembled on a printed circuit board with dimensions of 45×25 mm (see. the picture below).

The appearance of the assembly board of the programmer on the bottom. On the area of ​​45×25 mm in size, the microprocessor itself and the concomitant strapping by electronic microelements are located

On one side of the printed circuit board there are electronic components of the CH341A programmer. On the second side of the electronic board, a mechanical panel (ZIF) is installed for temporary fastening of programmable chips.

The mechanical ZIF panel of the firmware supports the chips in DIP houses. Ensures the convenience of the user when reading or “firmware” of memory chips is performed.

Universal programmer CH341A. application in work

Connection of the flash memory chip 25xx series with the Cabinet Execution of SOP8/SOP16 on the programmer is carried out through the corresponding contact sites. Two such sites are located directly on the CH341A programmer at the ZIF panel.

Universal programmer CH431A and a set of additional elements. A miniature board with holes for pins, on the back has a site for SOP chips

Also complete with the CH341A programmer is supplied with an additional mounting printed circuit board. This accessory is used in case of programming memory microcircuits with architectural execution of SOP8/SOP16 buildings. Under the intra.cycle programming on the printed circuit board of the CH341A programmer, power contact is displayed under voltage 3.3 volts and relevant contacts of ISP integration:

At the same time, it is possible to work with the periphery according to the RS232 interaction (conclusions on the board RX, TX, GND). The CH341A programmer diagram is designed for power supply of 5 volts from the external source. This is a voltage when connecting the programmer to a personal computer, it comes by USB tire.

CH341A programmer connected to the USB port for a computer for a memory of memory microcircuits. The glow of the red indicator indicates the availability of power in the device diagram

On the programmer printed circuit board, the power supply indicator is built. red LED. The mode of external or internal programming is turned on by the survey or installation of a jumper on the contacts of the P/S (Parallel/Serial), also introduced into the CH341A programmer circuit. By default, the jumper is installed.

The position of the installed jumper at the contacts P/S (Parallel/Serial) The CH341A programmer corresponds to the internal programming mode. In this case:

carried out directly through the ZIF panel of the CH341A programmer. Meanwhile, on the payment programmer of the universal CH341A, the jumper can be removed from the P/S contacts (Parallel/Serial). Programming in this mode allows a direct connection to a programmable memory chip without falling out of the board.

CH341A programmer. Firmware/Reading software

The action of the universal physical module CH341A at the program level is supported by the “parental” software. “CH341A Programmer” (here version 1.four).

Used drivers for operating systems and intenses:

It is distributed on the Internet for free.

Working window operating window according to 1.30 is simple for perception and understanding of both novice electronic workers and professionals. All basic designations of the program integration version 1.30 translated into Russian. In general, the program supports several regional integration languages. However, version 1 is also presented above.4 (English Inte Wee).

This is the way the software window for the CH341A programmer looks like. Convenient, easy to perceive and understanding the Inte We supporting designation in Russian

Of course, in order to successfully join the software with the device, correctly and efficiently program, you need to install system drivers. These are components that complement software are usually included in the installation package of software software.

When connecting the programmer to the USB port, the system automatically issues (only old versions of Windows) a message about the need to install devices drivers. You just need to specify the path to the folder where the required files are located. Recent versions (for example, Windows 10) require digital signature files. Here you can download official drivers endowed with digital signature.

Subtleties of programming memory microcircuits through the CH341A Inte Wee

The logical question of novice electronic workers: how to flash the EEPROM memory microcircuit in the DIP case using this device? So, working with EEPROM memory chips (24xx, 25xx) in the DIP case, is carried out approximately as follows (subject to pre.installed drivers):

  • On the ZIF panel, the handle is installed perpendicular to the body.
  • Insert the microcircuit into the cell according to the designation on the board 24xx or 25xx (1 leg closer to the handle).
  • Lower the handle in position parallel to the panel body.
  • Connect the CH341A programmer to a USB port.
  • Connect the device in the Windows dispatcher.
  • Run Programmer and perform the required actions (reading, firmware, comparison of control amounts, etc.D.).

Programming chips from a series of flash memory 25xx with a body performance of SOP is done somewhat different. Contact ZIF panel in this case can also be used, but provided that the microcircuit is mounted on an additional printed circuit board.

An additional printed circuit wage must be equipped with contact electrodes, by soldering the electrodes into the corresponding openings of the board. The operational (programmable) microcircuit will also have to be soldered on contact platforms.

Meanwhile, there is a simplified method of communication. On the main board of the CH341A programmer, there are sites for SOP configuration. A programmable chip is neatly applied to such a site with the calculation so that the legs of the microcircuit exactly fall on the contact paths.

Contact sites for placing memory microcircuits in corps design type SOP. Two sites for a series of 25xx and one under the series 24xx

DIY programmer for BIOS

Category: Instructions published: September 12, 2020

If for some reason you ruined the BIOS firmware, or there was a failure during the firmware of the BIOS of the motherboard, then only the programmer will help to revive it. In this instructions, we will consider how to assemble and connect the CH341A programmer with a clothespin to flash the BIOS chip without falling it out, but by connecting a clothespin to it.

This instruction is suitable for any motherboard, whether Chinese or branded (ASUS, MSI, GIGABYTE, and T.D.)

The first thing to do is to combine the Processor with a clothespin correctly:

Connect the connector from the clothespin wire so that the red wire is connected to the contact of a special transition panel

Insert the transition panel into the programmer and fix it with a small lever by lowering it down (an example for the chip of the 25th series)

Now connect the programmer’s clothespin to the BIOS chip so that the red wire is on the first leg of the chip, as a rule it is indicated by the point

To successful firmware and to avoid damage to the components of the board, you should pull out CPU, RAM and battery, as well as connect 24-PIN and 8-PIN food, compliance with such conditions practically guarantees successful firmware.It should be noted that it all depends on the features of the board, for example, there are boards that are sewn without connection, and sometimes the board is not stitched without a battery, you need to try.

After everything is correctly connected to the BIOS chip, you can connect the programmer to the USB of the computer (preferably to USB 3.0, so the firmware speed will be faster) and proceed to the firmware. It is not recommended to use USB extension cords.

BIOS firmware Asprogrammer:

Download and unpack the archive with the Asprogrammer program, install both drivers from the “CH341-DRIVERS” folder, after which the programmer should correctly determine the device manager

Launch the Asprogrammer program and select the CH341A in the programmer tab

In the “microcircuit” tab, select the necessary according to the marking of your BIOS, or use the “search” in the same tab and start entering the marking until you find your own

Build an Arduino EEPROM programmer

Now you first need to “read” the microcircuit (button with a green arrow to the right) and just in case “save” the native Dump BIOS (button with the image of the diskette)

Next, click the button for loading the firmware into the editor (button with the image of the folder), select the necessary file (any extension, the programmer does not matter what extension of the ROM, Bin file, or without expansion at all)

After we uploaded the right firmware to the editor, click the firmware button “Remove protection. erase. Record. Check “, after which the script of the program will do everything, it remains only to wait for the end of work

Washing the microcircuit lasts about 30 seconds, during which time it may seem that everything was hanging, but this is not so. When the recording begins, a green strip of process will appear. Upon completion of the process, you will see the inscription that everything went successfully if not. That error message.

P.S. Due to the features of some motherboard, not all microcircuits can be flashed without falling out of the motherboard. In some cases, you can’t do without falling out.

If you are sure that everything is connected correctly and all the contacts are available, and the microcircuit does not lend itself to the firmware, try to fall out the chip, other elements of the motherboard may interfere with its firmware.


I think there will be no problems with Mega2560, the legs are numbers for MOSI, MISO and SCK are slightly different, but they should be neighboring. I don’t know about USB-TTL and COM-TTL, it seems to me there are any programmers who work through these adapters, but I have not met

I understand it.= you have the 2nd PINS This is SDA. 15th- SCL, 14- MISO 16- MOSI. This is a hardware handout provided for by the manufacturer of the controller?

programmer, bios

Then on Mega2560 20th PIN. SDA, 21Y. SCL, 50. MISO, 51. MOSI. And solder to the flash drive?

SDA. leg 1 MISO. leg 2 VCC. leg 3, 7, 8 gnd. foot 4 mosi. leg 5 Scl. leg 6

I already poured a sketch into the controller, Bin loaded your Bin in the program with firmware, the controller flashes with LEDs when firmware in the void. it remains to solder the patient and experiment.


A little wrong, CS Flef’s foot should go to D2 (digital 2). SCL on Mega2560 52 PIN. Miso and Mosi is right. Here the table is https: // www.Arduino.CC/EN/Reference/Spi

I looked according to the scheme. yes, 52 pin is SCK. I just have inscriptions on my board where 21. SCL.

In general, I stepped, right there right in the middle of the board there is a 6-pin ICSP connector-I will connect from there. there is MISO and Mosi and SCK and VCC and GND. And the 2nd PIN is set in the sketch at the beginning?

Regarding adapters. they are probably used in a different situation, there is UART integer, t.e. by RX and TX data are transmitted.

DIY programmer for BIOS

Hello everyone, there was a need to reflash the BIOS PLCC32 flash drive and the like it, the NET programmer (Flash seems to use FWH/ LPC protocols, tell me how to reflash/ make a programmer to it (if possible) I also thought of making an old CD-ROM programmer. I haven’t figured it out yet

Once upon a time a long time ago, I have not had any programmer at all, I sewed such flash drives “Hot-vvop” technology. Its essence is as follows: a panel is installed on the maternal board of the computer, into which the IC with BIOS-M is stuck. The computer is loaded, then the working flash drive is carefully extracted, and the one that needs to be flashed in the place of it. Next, the cerebral program is launched (for each manufacturer MB its own) and the required firmware is poured into the flash drive. In this way I flashed a lot of flash drives until I burned MB. Then I thought about buying a programmer. I even have a special tool for extracting such ICs from the panel.

P.S. If this is a one.time action, reach any SC where they repair electronics. There for a moderate fee (about 100-200) you will be sewn this flash drive.

Once upon a time a long time ago, I have not had any programmer at all, I sewed such flash drives “Hot-vvop” technology. Its essence is as follows: a panel is installed on the maternal board of the computer, into which the IC with BIOS-M is stuck. The computer is loaded, then the working flash drive is carefully extracted, and the one that needs to be flashed in the place of it. Next, the cerebral program is launched (for each manufacturer MB its own) and the required firmware is poured into the flash drive. In this way I flashed a lot of flash drives until I burned MB. Then I thought about buying a programmer. I even have a special tool for extracting such ICs from the panel.

P.S. If this is a one.time action, reach any SC where they repair electronics. There for a moderate fee (about 100-200) you will be sewn this flash drive.

I thought about this, the action is not a single one. I’m thinking about buying a programmer, but Daneg Nat Eh. And about the firmware through the CD-ROM fee, is it worth it to bother

We fuel the BIOS by the CH341A programmer

In this material, we will analyze the firmware of the BIOS by the CH341A programmer, with a clothespin for the body of the SOP8 chip with an SPI integral. This is now one of the most common microcircuits under the micro.opram of motherboard. I will show you an algorithm of actions as I usually do it myself. These are far from all the functions of this device, but we don’t have to know it now.

Typically, the programmer is addressed in the case of unsuccessful firmware or simply experiments with a micro.opram. For holders of sockets of LGA 2011-3 Chinese boards, I usually recommend buying the device, it will definitely not be superfluous. Still, sometimes the boards fly up that, with unsuccessfully installed memory timings, just like a jump-by JCMOS or a battery, not be able to reset. Yes, and there are times when the BIOS just flies and the post indicator shows us FF. Also, a system with a damaged BIOS program can cyclically start, stop and so in a circle. It is especially true when there is a backup chipper.

so, let’s begin. To get started, let’s configure our programmer to work. We take the clothespin and adapter SOP. It is necessary to combine the clothespin cable with the red line and the unit (1) of the first pin on the adapter.

Now all this farm needs to be installed in the programmer, according to the rolling as indicated in the picture.

Now you need to hook the clothespin to the BIOS chip. As you can see in the picture, the first leg of the chip is indicated by the key, in the form of an injected point. There may also be a designation of the first contact of the chip on the board. On this board, the manufacturer also added the designation with paint. This fee has two bios chips of the main and backup. This is just now in the topic, very convenient for leadership.

Now there are nuances. In some cases, you need to disassemble the fee. Pull out memory, processor, turn off all devices. And connect 24pin power from the power supply, respectively power it. Basically, when firming a clothespin, a duty meal is required to initialize the bios microcircuit in the program.

So we have already caught on the microcircuit. In the figure, I connected power from the power supply. But the most interesting thing is that for this board it is not necessary. Chip MX25L3206E is determined so. For Chinese boards, such as Huananji, this option will not work, food must be supplied. Well, usually I will not deinstall memory and processor. By the way, since there is a post codes on the Juances, when a good connection of the clothespin, the characters light up.

Supply Software “For the CH341A programmer” we connect the programmer to USB. We put the drivers, there are in a package with the Asprogrammer program. The Interface line (USB EPP/) should appear in the list of devices dispatcher.

In the window opened, click the programmer point. the selection of CH341A and the SPI Inte Weep if you do not fit by automatically. In the search (microcircuit. search) we drive the microcircuit model. In our case, the MX25L3206E is now in order to verify the working scheme, you can read the BIOS chip microprogram. Press the read button. If everything is successful, we keep the image and the backup will be ready.

At this stage, the image of the new bios should already have. In general, the expansion can be anything, the main thing is that in our case it does not exceed 4MB. There are also bios size 8/16GB. For example, the PlexHD X79 has Full Rom 8MB, BD4 X99. 16MB with the extension of Bin/ROM. I now have a Gigabyte S1155 board, the expansion of the FD BIOS image is clicking on the folder icon and load the new BIOS for our board to the program. Then we click on the icon “write down” but not by the button itself, but on the context menu with a black arrow down. And there we already click on the drop.down point “Remove protection. erase. Record. Check “We agree to the conditions in the window that opened and the firmware process begins. On the programmer, the yellow indicator “Run” should light up the entire process takes about two minutes. If everything is successful, in the log of the program we will see the text “Ready. time of execution”

After turn off the PC and try to start) if all the norms are content with a revived payment or new firmware.

If at the stage with the capture of the clothespin, it doesn’t work out to initialize the microcircuit, then most likely the chip is exclusively will help and the firmware separately from the board will help. There is also an option to fail the chip itself. The BD4 X99 board comes across with the DIP8 BIOS chip (visually slightly more SOP8.). For this programmer, this is also not a problem. And if it is also installed in the so.called “crib, bed”, then generally gorgeous. But not in the case of BD4, here the chip is soldered directly into the fee) and its dismantling is required for firmware. For all the time, such a fee has never come across. But she is)

If there are questions of GOU in Комментарии и мнения владельцев, forum, forum chat, chatru (in the lower right corner) we will try to figure it out.

Assembly of the device

For assembly we will need:

  • 1 DB25P connector, can be cut off from an unnecessary cord from the printer
  • 4 things. Resistors of 150 Ohms
  • 1 Any electrolytic capacitor with a capacity of 100 μF or more and a working voltage of 6.3 in or more (is needed when entering from PSU)
  • A piece of a flat train with an IDC connector for 10 contacts (it is perfect in the presence of a SPI connector on the board)
  • Molex plug (like on ATA hard drives), or a CR2032 battery nest

There is nothing scarce, everything can be found in a heap of rubbish or for a penny in any radio store. In the worst case, you can try to do with several pieces of wires in general, connecting contacts with the SPI directly to the LPT, however, in this case, you need to be extremely sharp, and it is difficult to guarantee the correctness of the recording.

Scheme from the author’s website, when connecting directly to the chip (for flash memory with a working voltage of 3 volts):

The SpipGM programmer can also be used for flash memory chips with an operating voltage of 1.8 volts. The author uses an additional module for this (a kind of adapter), which is connected to the main module and consists of additional resistors for dumping voltage and an amplification cascade on transistors BC547 for the output signal of the chip (scheme to the author’s sites above). The following is the adaptation of the connection scheme immediately designed to work with chips for 1.8v. To obtain a voltage of power in 1.8 Volta applied voltage divider (gray resistors, preferably 1/4 of watts), the divider, if desired, can be counted to other denominations (I indicate options 10 and 12 Ohms, or 100 and 120 Ohms), and even better replaced by suitable DC- DC converter (for example, TLV70018). Any diodes, they are needed to minimize errors and, in principle, you can do without them.

We will connect the programmer not to the chip, but to the SPI_J1 connector.

If the connector is 7 contact, then it is connected to it as follows:

1 Food 3.3V 2 land from power and output 18 on LPT 3 resistor. LPT 7 4 resistor. LPT 8 5 resistor. LPT 10 6 resistor. LPT 9

Also, on some motherboards there are 9 contact connectors, there the connection scheme is slightly different:

DB25P connector is good because you can place all the necessary details inside it. It is advisable to use the shortest length of the cable, otherwise there will be recording errors. It would be nice to close the wires with a screen, either from the antenna cable, or just wrapping a foil from the chocolate, not forgetting to connect the screen to the ground (GND).

When food from the battery, the capacitor can be excluded. Personally, I took from 5 tires of the power supply (red wire), connecting to it through the Molex connector and extinguishing the voltage with diodes up to ~ 3.3V (two or three diodes will be enough).

The power supply is still more reliable than the battery. Having a separate PSU, you can write down directly from the tire 3.3 (orange wire ATX connector). To start the power supply without a computer, you need to close the green and black wires.

Spipgm program

Now you can proceed to software.

The program supports a large number of chips (full list in the Readme file.txt) and at the request of the author works faster than analogues. You can download the fresh version from the author’s website, or from here:

The project, by the way, is developing to this day, the author often posts updated versions of the program with information about new chips, improvements and corrections.

The following files in the archive:

Spipgm.EXE. executable file for DOS/WIN9X

Spipgmw.EXE. executable file for Win9X/NT/2K/XP/VISTA/7 (only x32, support x64 no)

IOPERM.DLL. Library for low.level access in Win9X/NT/2K/XP/VISTA/7 (without UAC)

It is most reliable to flash from DOS by loading from Hiren or any other suitable loading CD/Flash. But you can from Windows.

Syntax and basic teams:

Syntax: spipgmw/[file name] [address] [size] [/l = address] [/d = delay]

I. identification of memory of memory D name of the file. Count the contents of the memory flash in file P file P file. Write a flash memory from the firmware file (without erasing) V file name. compare the contents of the memory flash with the firmware firmware. complete erasure of memory flash. testing of washing Flash memory u. unlock protection against recording (depends on the signal wp#)

File name. Full name of the file, for example: File.Bin, File.Rom and t.P. The expansion of the role does not play, the main thing is that it is the correct image file and the name is correctly indicated.

BIOS firmware via SPI:

spipgmw /i. chip identification. For verification, is everything correctly connected, the program must determine the type of set memory. If this does not happen, check the correctness of the connection and support of the chip by the program.

Spipgmw /D Bios.BAK. if you need to save a backup copy of the existing BIOS.

Spipgmw /p File.Rom. recording firmware (“File.ROM “. the name of the firmware file, you need the file to be in the same folder with the program)

spipgmw /v File.Rom. compare the recorded data with the firmware file. Or you can make a dump spipgmw /d test.Rom and compare its contents with the original firmware file in some HEX editor.

It is possible to have a small number of errors. Depends on the length of the cable, stability of power, type of memory. Of course, it is desirable that there are no errors at all, but even with a certain number of errors, the computer will most likely start, and there you can already flash the BIOS with regular means.

This method is suitable not only for the firmware of BIOS of motherboards, but also of any other devices having a SPI connector, or directly, any supported chip.

To study. Maybe the earth is not bred there. Maybe it’s not SPI at all. Or connect to the chip directly.

Oh, promised, look, you will find the link yourself, or suggest? Ryan released at the end of May 2.28.

Rayer released 06.10 2.28 under x64. Something did not go with me. He checked under 10.

programmer, bios

I also do not work at 10 (the last update 1809, I can’t check for others yet). With a dozen a bunch of dancing with a tambourine: you need to turn off the UAC, turn off the digital signature of the drivers (for this you may need to turn down in UEFI), run strictly from the admin CMD and not with PowerShell. And not the fact of what else will work. It is much easier to download a boot disk with XP from the Internet and quickly do business.

Wrote off with Martin, the author. IOPORT.DLL, the driver is loaded dynamically, so the regserv32 blah blah does not roll. I had to take advantage of to rush for the ASUS bit S9 Quadenable in the register of status. Everything turned out, mother started. Along the way, he sewed and verified the entire firmware entirely, under the moos and Win X64. Everything is with a bang.

Error, there is Los Dos. I always have a section of Dosovsky at hand, I started to put on the RK-86 CP/M, an electronic disk, a tape recorder with controllers 580VV51, V53, VK28-38. Now with UEFI BIOS on a short leg, with the help of guys, something has reached. For example, in ASUS BIOS I was able to shove instead of a stupid firmware ez normal Shell.EFI. Something like this. I go in periodically.

And, I insert any microcodes anywhere, and with checks with checks. T.e., No mistakes. There is an interesting topic, to put 1150 on a socket with the help of Chinese adapters BGA-1150 laptop processor i7-4980HQ. cache l4 acceleration at will. Make a permanent job from a boost. The price of a guy from Ryazan 11.000. With a guarantee. Review. https: //

I have once recently moved away from all these modifications, finishing, sawing. Yes, and manufacturers of the motherboard are not standing still, in recent years, everything is fine to pour through the firmware on any mothers. What else is needed) well, in general, it is always a cool topic to digest.

Good afternoon. I soldered, launched, the definition is clearly, unlocking does not pass, erasure, too, an attempt to record and count only zeros derives. What could be? The voltage of 3.5V, slightly lifted and lowered, nothing changes What could be? F: \ spipgmw.EXE.I spi Flashrom Programmer 2.28 (C) 2008-2018 by Martin Rehak; Rayer@seznam.CZ Compiled by GCC at 11:48:02, Oct 6 2018 (Win9x/NT/64 Compatability) Spi Connected to LPT AT AT I/O BASE Address: 378H, SCK PULSE WIDTH: T0us Flashrom Jedet, Type: EF4016H WINBONBONDD W252H 4MB) S/N = de6710659F875821H Status = 3a00h (SUS, CMP, LB3, LB2, LB1,-QE, SRP1, SRP0, SEC, TBP, BP2, BP1, BP0, Wel, BSY) 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 F: \ Spipgmw.EXE.U SPI Flashrom Programmer 2.28 (C) 2008-2018 by Martin Rehak; Rayer@seznam.CZ Compiled by GCC at 11:48:02, Oct 6 2018 (Win9x/NT/64 Compatability) Spi Connected to LPT AT AT I/O BASE Address: 378H, SCK PULSE WIDTH: T0us Flashrom Jedet, Type: EF4016H WINBONBONDD W252H 4MB) S/N = DE6710659F875821h Status = 3A02h, WE bit is enabled, blocks protection is enabled Unlocking… Status = 3A00h, unlock failed, maybe OTP lock or try to set WP# pin at high level f:\SPIPGMW.EXE.E spi Flashrom Programmer 2.28 (C) 2008-2018 by Martin Rehak; Rayer@seznam.CZ Compiled by GCC at 11:48:02, Oct 6 2018 (Win9x/NT/64 Compatability) Spi Connected to LPT AT AT I/O BASE Address: 378H, SCK PULSE WIDTH: T0us Flashrom Jedet, Type: EF4016H WINBONBONDD W252H 4MB) S/N = de6710659F875821H Status = 3a02H, We Bit is Enabled, Blocks Protection Is Enabled Error: Flashrom Is Locked, Run Unlock Command First! F: \ spipgmw.EXE.P flash1.Bin Spi Flashrom Programmer 2.28 (C) 2008-2018 by Martin Rehak; Rayer@seznam.CZ Compiled by GCC at 11:48:02, Oct 6 2018 (Win9x/NT/64 Compatability) Spi Connected to LPT AT AT I/O BASE Address: 378H, SCK PULSE WIDTH: T0us Flashrom Jedet, Type: EF4016H WINBONBONDD W252H 4MB) S/N = de6710659F875821H Programming Page at: 003FFF00H (100%) f: \ spipgmw.EXE.D Flash4.Bin Spi Flashrom Programmer 2.28 (C) 2008-2018 by Martin Rehak; Rayer@seznam.CZ Compiled by GCC at 11:48:02, Oct 6 2018 (Win9x/NT/64 Compatability) Spi Connected to LPT AT AT I/O BASE Address: 378H, SCK PULSE WIDTH: T0us Flashrom Jedet, Type: EF4016H WINBONBONDD W252H 4MB) S/N = de6710659F875821H Reading secretor at: 003FF000H (100%) F: \

Electric scheme

Scheme of a homemade programmer SPI Flash 25 series

Stabilizer for 3.3 volts, in this case, if there is an extreme need, you can replace a tablet with a lithium battery, 2016-2032, it, fresh, gives out about 3 volts, and such a diet will be enough, for one-time firmware.

Universal USB programmer

The Internet presents many circuits of the programmers of microcontrollers. I represent the option of an intra.cycle universal USB programmer with the possibility of debugging, which I use. You can assemble this programmer with your own hands.

The basis of the programmer is the FT2232D chip. It is a USB converter in two UART ports. The peculiarity is that the “upper” channel or can work in JTAG, SPI and I 2 C modes, which is required for programming microcontrollers, various memory microcircuits, etc.P.

The development of this USB programmer is carried out on a computer using libraries from FTDI Chip.

The device from the USB integration is powered. With proper assembly, the scheme does not need to set up. The functioning of the device depends on the skill of the developer in. Resistors R8, R9, R12, R13, R14, R15, R16 are current.limiting when the device is incorrectly connected, respectively, the conclusions of the programmable device should not connect with other elements in the circuit, or have such tights that, when the voltage dividers are formed, would not distort logical Levels. The U1 chip is used to save user settings.

Conclusions U2 (channel A): 24- ADBUS0- exit- in JTAG TKK mode, in Spi SK mode; 23- ADBUS1- Exit- in JTAG TDI mode, in SPI Do; 22- Adbus2- input- in JTAG TDO mode, in SPI DI mode; 21- ADBUS3- output- in JTAG TMS mode, in SPI mode as an auxiliary signal (CS); 20. ADBUS4. In JTAG mode, input / exit, in SPI mode auxiliary output. This output is used to supply Reset signal to a microcontroller; 15. ASBUS0. freely programmable input \ output in all modes (optionally used to supply power to the programmable device); 13. asbus1. freely programmable entrance \ exit in all modes.


In principle, these conclusions are multifunctional. Their behavior is determined by the selected mode when opening the port.

Channel B is used to debug a programmable device. To do this, you only need to have a unused UART port in a microcontroller. Further, the work of technology. In the microcontroller program in the right places, we use the function of the formatted output of Printf.

40 –BDBUS0- output- in UART TXD mode; 39 –BDBUS1- input- in UART RXD mode; 28- BSBUS2- output- in the UART LED-indicator mode (ignites when data transmission via USB); 27- BSBUS3- exit- in UART LED indicator (ignites when receiving data via USB).

Below is a printed circuit board of the programmer

To date, this universal programmer supports AVR microcontrollers according to JTAG and SPI integrates. over, the speed of the ATMeGA64 firmware in JTAG is not more than 5 seconds, according to SPI no more than 8 seconds. Fundamentally, you can flash any microcontrollers that the specification for the programmer is distributed. At the moment, for example, a development is underway to support NEC microcontrollers.

The working form is divided into two parts: on the left of the table for working with Flash (above) and EEPROM (from below), you can open files or upload firmware from a microcontroller, make verification, rule the contents of memory cells; On the right is a text field for debugging, data from channel B is displayed here, you can also enter the text that will go to the port (functionally this is an analogue of Hyperterminal). Development is carried out on the Visual C# for Windows platform. It is also possible to develop in other languages. The programmer can work under linux.

Literature used: 1. BUT.AT. Evstigneev “Microcontrollers AVR of the Tiny and Mega ATMEL Families”, M. Publishing House “Dodeka-XXI”, 2005. 2. Future Technology Devices International Ltd. “FT2232D DUAL USB UART/FIFO I.C.”. Datasheet, 2006. 3. Future Technology Devices International Ltd. “Software Application Development D2xx Programmer’s Guide”. Document, 2009. four. Future Technology Devices International Ltd. “Programmers Guide for High Speed ​​FTCJTAG DLL”. Application Note AN_110, 2009. 5. Future Technology Devices International Ltd. “Programmers Guide for High Speed ​​FTCSPI DLL”. Application Note an_111, 2009. 6. Andrew Trolesen “C# and Platform.Net »M.,Sp. Peter, 2007.