Presentation:
I would like to present you IMSProg linux program with graphical interface for CH341a programmers, which allows you to read and write data into 24Cxxx, 25xxx, 93xxx, 95xxx series chips.
The program consists of two independent modules - the programmer itself and the chip base editor.
The program itself detects SPI chip and loads its parameters from the database, any parameter can be changed manually. The program allows you to split the binary image of a chip into parts and write them separately.
The hex editor search form allows you to search the dump not only for numeric and text information, but also for archive headers, images, BIOS, UEFI, etc.
The i key in the program brings up a form showing the slot for installing the chip and adapter into the CH341a programmer.
The program interface supports English, Spanish, German, Chinese, Spanish and Russian languages. It is determined by the language of the current linux locale.
Detailed instructions on how to build the program from source code and how to use the program are available on GitHub and I won’t duplicate them here.
You can also download the DEB-package and RPM-package.
The chip database is regularly updated and today contains about 400 positions. I will be glad to receive any criticism and suggestions for improving the interface of the IMSProg program. Please test the operation of different chips with my program.
History of creation:
For a long time programs for СР341a devices were written only for the Windows platform. Only FlashRom for SPI Flash, ch341aProg for i2c EEPROM were created for the Linux platform.
Then came SNANDer - the first console universal utility for 24xxx/25xxx/93xxx chips. I got excited about the appearance of this program and even wrote a startup script for it.
But a while back I was surprised - I was throwing away every other I2C chip due to the inability to read and write them. It turned out that during reading and writing the SDA pin is less than 1.5 volts. I thought the CH341a programmer was faulty. I put a resistor between the power pin and the SDA pin. The SDA level became higher. The rejected chips began to work. That said, my first i2c chip program worked without any resistor. After that, I found a bug in the SNANDer program. That’s how I knew I’d have to write the program myself.
Here are the steps:
First step: I wrote a chip editor for the EZP2019 - EZP2025 programmer databases.
Next step: I wrote an SPI chip programmer using Setarcos “ch341 SPI c-programmer tools”, EZP2019 chips database format and QHexedit component.
It worked beautifully, but only for SPI NOR Flash chips.
Last step: I wrote the IMSProg program using modified SNANDer code, QHexEdit code, my EZP Chip Editor code and based on my CH341a_spi_programmer.