DIY编程器网

标题: Atmega fusebit doctor (HVPP+HVSP) [打印本页]

作者: liyf    时间: 2011-10-20 06:44
标题: Atmega fusebit doctor (HVPP+HVSP)
Atmega fusebit doctor (HVPP+HVSP) – fix the fusebits






3 May 2010 | | Dodał manekinen Atmega fusebit doctor, as name says it, device for repairing dead Atmega (and Attiny from v2.04) family AVRs by writing correct fusebits. Most common mistakes or problems are a wrong clock source (CKSEL fusebits), disabled SPI programming (SPIEN fuse) or disabled reset pin (RSTDISBL fuse). This simple and cheap circuit will fix you uC in a fraction of a second. If in first case we can help ourself with clock generator, then in 2nd and 3rd cases bring uC back to life is impossible with standard serial programmer. Most of people do not decide to build parallel programmer because its inconvenient and its cheaper and faster to buy new uC.


This circuit uses the parallel and serial high-voltage programming method. With those methods, we can talk to our “dead” chips which have reset or isp disabled:
HVPP = high voltage parallel programming.
HVSP = high voltage serial programming.
Supported chips list:
Code to this point supports 145 chips, but not all have been tested. Tested are lighted green. Report a problem – and i make a fix
1kB:
AT90s1200, Attiny11, Attiny12, Attiny13/A, Attiny15
2kB:
Attiny2313/A, Attiny24/A, Attiny26, Attiny261/A, Attiny28, AT90s2333, Attiny22, Attiny25, AT90s2313, AT90s2323, AT90s2343
4kB:
Atmega48/A, Atmega48P/PA, Attiny461/A, Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8kB:
Atmega8515, Atmega8535, Atmega8/A, Atmega88/A, Atmega88P/PA, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, Attiny84, Attiny85, Attiny861/A, Attiny87, Attiny88, AT90s8515, AT90s8535
16kB:
Atmega16/A, Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162, Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A, Atmega168P/PA, Atmega169A/PA, Attiny167, AT90pwm216, AT90pwm316, AT90usb162
32kB:
Atmega32/A, Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA, Atmega325, Atmega3250, Atmega325A/PA, Atmega3250A/PA, Atmega328, Atmega328P, Atmega329, Atmega3290, Atmega329A/PA, Atmega3290A/PA, AT90can32
64kB:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A, Atmega644P/PA, Atmega645, Atmega645A/P, Atmega6450, Atmega6450A/P, AT90usb646, AT90usb647, AT90can64
128kB:
Atmega103, Atmega128/A, Atmega1280, Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256kB:
Atmega2560, Atmega2561
About:
Just put your dead mega in socket, press the START button, and enjoy your good-as-new processor. There are three slots on board, for most common AVR’s, pins compatible with: Atmega8, Atmega16, Attiny2313. There is also an extra goldpin connector with all signals so you can attach adapters:
“#1 adapter” as HVPP extension, for 20pin Attiny26 compatible and 40pin Atmega8515 compatible processors.
“HVSP adapter” for 8pin and 14pin HVSP processors.
Or make your own adapters for other types of processors, in trough-hole or surface-mounted, you can use the breadboard for this – just connect signals to correct pins. How? Check your AVR datasheet, go to “memory programming” and then “parallel programming” – check the signal names, all signals are described under the DIP40 slot. In doctor memory there is a lot of free space so project may be developed all the time. One sided PCB with 55mm x 92mm dimensions. On top side you need to solder several jumpers, or, make this PCB as double sided – choose yourself. Resistors from R7 to R23 may be in 100ohm to 10K, but i suggest from 470ohm to 1K.

ATTENTION! While mounting the DIP40 slot, you must to remove it pins from 29 to 37. These pins must not have electrical contact with inserted uC pins, traces runs there only to make the board smaller (onesided). Take a look at pic on the left, these you must remove from slot.

Usage:
The ALLOW ERASE jumper allows doctor to erase whole flash and eeprom memory, if it is open, doctor will newer erase memory but may not cure device if lockbits are enabled, so you choose. After insert dead uC and press the START button, doctor will initiate the parallel or serial high-voltage programming mode. This is chosen automatically, device will recognize HVSP adapter and start to work in HVSP mode. After that, doctor wait for high state at RDY/BSY line. Then, read device signature and check if it supports it. Next, memory erase is performed if user allows that. Then lockbits are checked, and if they not blocking device, doctor sets all fusebits to fabric, having regard to whether there are extended fusebits or not. Some of older AVR have only one byte of fuses – LOW – and this is also included. After fusebits are verified, the proper leds is flashed.
Leds explanation:
green on – patient successfully cured, fusebits repaired. If lockbits are enabled, just verify fusebits with factory ones – and if they ok – light up green.
red on – signature problem, can’t read, no device in socket, or no such signature in database.
green flashing – signature ok, fusebits are wrong. Lockbits enabled, chip erase permission required (read below).
red flashing – signature ok, no lockbits, but for some reason can’t write new fusebits.
Terminal:
Note that terminal is not needed, device works without pc, and all we want to know we get from leds.
You can find extra RS232 output, and connecting this to the terminal, sends all information about fixing process – see exemplary printscreens in gallery. All the info is send “on fly” via uart. Use proper converter to connect this with pc. If you have COM port for RS232, use MAX232 based converter (eg this). If you are using laptop, use the USB converter (like this or this).
Terminal settings:
baudrate: 4800
parity: none
databits: 8
stopbits: 1
handshake: none
Other:
Use one of the following microcontrollers as the doctor-chip: Atmega8, Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P – and their newer/low-voltage “A” or “L” versions.
Use stabilized 12V supply voltage. Higher voltage can damage fixed chip!
Code was written based on high-voltage parallel and serial programming section of datasheet of suitable AVRs.
If you are searching for attiny family AVR’s fusebits fix device, then check my previous project, the Attiny fusebit doctor. Unfortunately, some bugs show off and this project is no longer updated since the “Atmega fusebit doctor” supports all the Attiny family AVRs. But, source code is attached for this project, and with avr datasheet, it will be easy to understand this programming mechanism.
Fusebits:
Internal 1MHz clock, and enabled EESAVE bit – see README file.
If you use a brand new chips as doctor, you don’t need to change anything – 1MHz clock is already set as default. EESAVE bit is optional. It disallows to erase the eeprom when firmware is actualized, eeprom is used to store the fixed chips counter which is send trough uart.

--------------------------------------------------------------------------------

UPDATE 2.1X ADDS NEW FUNCTIONALITY!
Send your own fuses and locks trough terminal, talk with chips with broken signature. If you connect terminal Tx pin to PCB Rx pin – manual mode will be enabled automatically. This requires Tx-terminal pin to be HIGH and OUTPUT when idle. It must pull up the 10K pulldown. If this condition is not met, doctor will work in normal – automatic mode.
HOWTO:
First, doctor will read signature. And if fail, it will ask to type signature manually.
Type two last bytes of signature in HEX (4 chars) and hit enter.
Then, doctor will try to read the chip depending on given signature.
When succeed, select an option:
1 – write fusebits – this will perform a fuse write cycle with fuse-values from buffer (default).
2 – modify fusebits – this will let you to type fuses manually, values in buffer will update. Type one byte in HEX (2 chars) and hit enter. Repeat for each byte (if exist).
3 – set lockbits – type new lock value in HEX (2 chars) and hit enter – do this with caution! Remember that unused bits are always 1! E.g. if want to enable LB1 and LB2, type FC (11111100)
4 – erase the chip – this will just erase the chip and locks, it require “allow erase” jumper for safety.
5 – end – exit programming and drop voltages, now you can safely remove the chip.
See how Attiny13 with broken signature was repaired.
See how the same chip was “broken” again.
Do not suggest LEDs when in manual mode – they just blinking randomly
ATTENTION – Firmware 2.1x NEED a pcb updated to version 2h!
适配器





运行界面

pin对齐说明

更新包,里面该有的都有了
atmega_fusebit_doctor_smd_adapter_1.0.rar (95.95 KB, 下载次数: 15)
atmega-hvpp-fusebit-doctor_update11.rar (522.55 KB, 下载次数: 25)
全部更新打包
atmega-hvpp-fusebit-doctor_archive.rar (3.22 MB, 下载次数: 1245)

作者: hdzl    时间: 2011-10-20 13:07
高压编程器,阿莫哪里的好像没这么详细吧
作者: liyf    时间: 2011-10-20 22:15
反正我先把能找到的放上来,大家分享

作者: hdzl    时间: 2011-10-24 11:00
咋没找到对应的PC端运行软件?
作者: 绝对整烂    时间: 2011-10-24 20:17
想要这个。。。。。看样是DOS的?那又搞不定了
作者: liyf    时间: 2011-10-24 20:53
呵呵,这个可离线操作的,就是跳好线,按那个按钮
作者: hdzl    时间: 2011-10-25 09:42
那个串口是干什么用的?不是用来连接上位机的吗?
作者: liyf    时间: 2011-10-25 10:56
这个的意思就是直接用windows的超级终端连就可以了,按这个的设置
Terminal settings:
baudrate: 4800
parity: none
databits: 8
stopbits: 1
handshake: none

作者: hdzl    时间: 2011-10-25 12:19
串口调试?
作者: liyf    时间: 2011-10-25 19:13
基本差不多吧,直接用超级终端连上就行了
作者: 8312    时间: 2012-6-12 11:40
直接用windows的超级终端

作者: shh200438    时间: 2019-2-20 19:38
感谢分享, 正在找解锁avr
作者: shh200438    时间: 2019-5-20 16:25
太好了, 终于在这里找到了.
作者: feiniao00o    时间: 2019-7-7 09:11
这个牛叉的不得了!!!!!!!!




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2