AVR HVPP Configurator
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.
18 Comments
hcorvelo 1 year ago
zsccat 1 year ago
PeterB126 2 years ago
仁黃1 2 years ago
zsccat 2 years ago
It does not support Attiny1614. This is for microcontrollers that support HVPP programming mode where Attiny1614 use UPDI.
You can check below WIKI page for Attiny programming modes. https://en.wikipedia.org/wiki/ATtiny_microcontroller_comparison_chart
sydalmighty 2 years ago
may I ask if you know the 12V voltage rise time for the HVPP?
zsccat 2 years ago
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.
rishabhdhiman 2 years ago
Edit:- I was able to recever my atmega328 as well after i connected 12v ground with arduino ground.
RobotBlack 3 years ago
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?
zsccat 3 years ago
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.
RobotBlack 3 years ago
zsccat 3 years ago
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.
RobotBlack 3 years ago
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.
zsccat 3 years ago
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!
fefcas 4 years ago
zsccat 4 years ago
I have updated sketch to match the schematics. Thanks again to find out that mistake I have made.
fefcas 4 years ago
zsccat 4 years ago
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.