AVR HVPP Configurator

6.0K539

Intro: AVR HVPP Configurator

Recently I have got some ATMEGA8L chips that cannot be read nor programmed through USBASP. I was wondering whether these chips are usable or totally broken.

I have read the datasheet of chip and realized that the chip may not be able to read if it is locked and/or the fuse settings are wrong.

It also mentioned that High Voltage Parallel Programming (HVPP) can be used to rescue the chip. Therefore I build this to test it out.

You can make one to rescue your chips as well.

STEP 1: Build the Circuit

You need following items:

1. One working ATMEGA micro controller (ATMEGA8/88/168/328, I have used a ATMEGA168PA board)

2. One 28 pins DIP socket for the target chip (You may use ZIP socket if you have one)

3. One NPN transistor (2N3904 or 2N2222 etc, I have used 2N3904 here)

4. Two 1K resistor

5. One 150R resistor (To limit current for red LED, you need 100R for green or blue LED)

6. One LED for +12V indicator (I have used red LED)

7. A 12V battery (A23) or a step-up module (I have used MT3608 step-up module in this project)

Solder them all together based on the Schematic.

STEP 2: Program the Configurator Micro Controller

Load the source code in Arduino IDE, select your board and update the chip.

Or you can program the chip directly by using my pre-compiled HEX files.

STEP 3: Configure the Problem Chip

Now, everything is ready. It is time to fix the problem chip.

You can use command through the Serial Monitor in Arduino IDE (BAUD 57600) to configure the chip. The full menu can be found inside the Arduino source code.

Alternatively, you can use the windows GUI to communicate with the configurator. The GUI has included all the functions that the configurator provide.

You may download the executable file or source code from my github and compile it yourself.

STEP 4: Final Words

I have successfully rescue these un-readable chip and they all working fine after I have erase the chip and reset the fuse settings.

You can fix your problem chips as well.

To get more information and the full source code for the project, please visit my github.

https://github.com/zsccat/HVPP-Configurator

18 Comments

Thank you very much! Works perfectly with attiny828! I just recovered 46 units, thanks again!
No problems. I am really happy this can help you.
You dont need 12V for HVPP or HVSP,...just constant 5V are fine. At least if you use a AVR Dragon
Can it work with attiny1614 ?
hi, great article!
may I ask if you know the 12V voltage rise time for the HVPP?
Hi,

Eash chip may has its own timing requirement.

For example, for ATMEGA8.

You can check the datasheet and search Parallel Programming. You should be able to find required information in the "Enter Programming Mode section.
Hii, I was able to successfully recover my Atmega8 with this but fuse bit in my Atmega328P is not setting. Do i need to do something differently for Atmega328P?

Edit:- I was able to recever my atmega328 as well after i connected 12v ground with arduino ground.
Hi
I made this(I used Uno) and when write a fuse byte, works
normally but when I click on "Read fuses" reads all of them "04". And
also my ATmega8a is still unable to programming:( Do you think my uC is
dead or there's a mistake in my wiring?
Hi RobotBlack,

You may need to earse the chip before you can program it again. Please try to click on the "Earse Chip" button on the UI, then reconnect to the chip and try to program it again.
I tried it several times but uC didn't change.
Hi RobotBlack,

Can you read the chip ID out? Does the ID read out match the correct one?

I do have a few dead chips and all of them cannot read the correct ID out or the ID read out did not match the correct one.

Sure, please check your wiring as well. Make sure all these wires are connected as per in the program. The parallel programming use a lot of chip legs. If any of them are wrong, it will not work.

Anyway, check the chip ID first. If you can read the correct ID out, it means you have got the chip connected correctly.
Hi zsccat,
Thanks for your attention. I had two ATmega8a with same problem. So I changed 12v power supplay and tried with a new ATmega328p and it worked! Its HVPP module broke down when I used first ps (but still works with Serial Programming). My first ps had 16v!! :/

I suggest everyone to use a trusted power supply because most fake power supplies have a voltage much different from their nominal voltage.
Hi RobotBlack,

As your HVPP module is broken, you will need to be careful when applying fuses. HVPP suppose to be the last hope to recover a chip. Good luck and happy making!
Liked I lot this, I succeeded in the second try. After I had verified all the connections and looking at the ATMega328 datasheet, I had to swap the DATA bits on the sketch, because as they are shown in the schematics, they are inverted from MSB to LSB.
Hi fefcas,

I have updated sketch to match the schematics. Thanks again to find out that mistake I have made.
Yes, I see, thanks for that!.
Hi fefcas,

Sorry for the trouble, I did build the circult first and create the schematics just before I get it uploaded to instructables. I think I may had make a mistake when I create the schematics. Thank you for find out my mistake and I will update the sketch later to match the schematics.