Introduction
The BIOS, or Basic Input/Output System, is a firmware that controls the boot process and the hardware settings of your computer. Sometimes, you may need to update or repair the BIOS to fix some issues or improve the performance of your computer. However, flashing the BIOS can be risky, as it may cause your computer to become unbootable or unstable if something goes wrong. One of the tools that you can use to flash the BIOS safely and easily is the CH341A programmer, which is a cheap and versatile device that can read and write various types of chips. In this article, we will show you how to flash the BIOS using a CH341A programmer, and what you need to prepare before you start.
What You Will Learn
- Memory types
- Getting familiar with the CH341 converter
- Getting familiar with AsProgrammer software
Memory Types
In general, there are two types of memory:
1) Volatile: In this type of memory, the stored data is erased when the power is cut off; RAMs fall into this category;
2) Non-volatile (ROM): The data stored in this type of memory won’t be erased even with a power cut; EEPROM and SPI FLASH are the most popular ROM memories.
We use EEPROM memories when we need to store small amounts of information and a low speed of data transfer is sufficient. On the other hand, Flash memories provide more volume and higher speed of data transfer, but they tend to be slightly more expensive than their EEPROM counterparts.
Because of their lifespan, EEPROMs are limited to tens or hundreds of thousands of erasing and writing cycles. You must keep that in mind during the design process.
Recent EEPROMs have increased their lifespan to one million times and can operate on multiple bytes at the same time.
We can program EEPROM and Flash memories within the circuit to store some of the important system parameters that are constantly changing and should not be erased after power on/off.
One application of this type of programming is for controlling the position of jacks or motors. For example, in 3D printers, if the power goes out during operation, the last position of the motor is erased, and the user has to restart the process from scratch. Therefore, to prevent this and avoid potential damage, it’s important to store the last system position in memory.
You can also program EEPROM memories outside the circuit. They are used in computers, mobiles, and other devices to store basic system information (such as serial codes and initial settings).
CH341A EEPROM and Flash Memory Programmer
To program EEPROM and Flash memories outside the circuit, you need to use a programmer. In this tutorial, we will learn how to use the CH341 programming module.
This module includes a socket for DIP components and an auxiliary board for programming SMD components.
Required Materials
Programming EEPROM and SPI Flash Memories Using CH341A Programmer
1- Preparation
To program Flash BIOS using CH341A programmer, first, you should download its driver from this link.
Next, unzip it and run the DRVSETUP64.exe file in the CH341A folder (image below).
Now, click on “Install.”
Finally, you should see the message below.
Moving on, download the latest version of AsProgrammer software from here.
Now, unzip the downloaded file and run the “AsProgrammer.exe” file.
2- Programming
Run the AsProgrammer software. The first step to program a memory is to select its type and specs. Since we have a SPI Flash, we go to “IC -> SPI” and select our memory model. If your memory is an EEPROM, it probably uses the I2C protocol.
Now you can implement your desired task on the memory. By clicking on “Read IC,” the module will start reading the memory. Depending on the memory size, wait a few moments.
Once the reading process is finished, its content will be displayed in hexadecimal form.
You can click on “Save” to store the read data. You can open the stored file and click on “Program IC” to copy the memory. You can also click on the hexadecimal data read from the memory and change them manually.
What’s Next?
In this tutorial, we first learned about different types of memory. Then we talked about how we can program the non-volatile EEPROM and SPI FLASH memories.
Many circuits use different non-volatile memories. Using a CH341A Programmer, you can program or fix your broken FLASH BIOS memory.