当前位置:首页 > 单片机 > 单片机
[导读]简单全能的AVR单片机高压解锁器(制作方法,以MEGA16为例,附电路与C源程序,注:不是高压编程器)AVR高压解锁概述:利用常用的AVR单片机ATmega16制作的高压解锁器,可以解开所有芯片锁死的情况(除非芯片损坏、烧毁

 

简单全能的AVR单片机高压解锁器(制作方法,以MEGA16为例,附电路与C源程序,注:不是高压编程器)AVR高压解锁
概述:
利用常用的AVR单片机ATmega16制作的高压解锁器,可以解开所有芯片锁死的情况(除非芯片损坏、烧毁)。制作作品经实验验证,解开了山东大学物理学院AVR单片机实验室所有近40片锁死的单片机以及许多同学锁死的单片机。制作方法简单,保证你一小时之内做完。
所需元件极少(如电路图所示):仅一只三极管、一片7805,三支电阻、一只LED、三个小电容,一片可用的单片机,一个12V电源。
程序与电路连接可方便的移植到其它型号单片机上(凡支持高压编程的,都可以)。
希望能对初学单片机的同学有所帮助,特别是我们学校暑假参加电子设计比赛的同学。
制作背景(常见芯片锁死情况与高压解锁介绍):
AVR单片机是我们学校同学经常使用的单片机,尤其是中高档单片机ATMEGA16。
单片机在使用的时候,经常出现由于配置熔丝位的失误或电路的失误而造成单片机锁死的情况,锁死之后,便无法再对单片机进行编程。
常见的锁死的情况以及常用的解决办法:
1,时钟选择错误(可通过有源晶振配合ISP或JTAG下载器、高压编程器进行解锁)
2,ISP被禁(可通过JTAG下载器、高压编程器进行解锁)
3,JTAG被禁(可通过ISP下载器、高压编程器进行解锁)
4,锁定位加密(可通过单片机设定允许的方式进行单片机擦除)
5,以上情况的组合:
1+2(可通过有源晶振配合JTAG、高压编程器进行解锁)
1+3(可通过有源晶振配合ISP、高压编程器进行解锁)
1+4(可通过有源晶振配合单片机设定允许的方式进行单片机擦除)
2+3(只能通过高压编程器进行解锁)
2+4(可通过JTAG下载器、高压编程器进行单片机擦除)
3+4(可通过ISP下载器、高压编程器进行单片机擦除)
1+2+3(只能通过高压编程器进行解锁)
1+2+4(可通过有源晶振配合JTAG下载器、高压编程器进行单片机擦除)
1+3+4(可通过有源晶振配合ISP下载器、高压编程器进行单片机擦除)
2+3+4(只能通过高压编程器进行单片机擦除)
1+2+3+4(只能通过高压编程器进行单片机擦除)
6,其他锁死情况(可通过某些方法或高压编程器进行解锁)

可以看出,高压编程器是解锁功能最强的、不需要有源晶振配合的解锁工具。但是,与目前常用的编程下载器相比,高压编程器有许多缺点:
A,编程速度慢
并行编程脉冲宽度需要大于250ns,如果是高压并行编程器,则烧写速度不会超过4Mbit/s,如果是高压串行编程器,则速度更慢。
B, 占用引脚多。
无论高压并行编程器还是高压串行编程器,需要占用的目标单片机的引脚数都在16以上。
C, 需要12V的DC电压,而且电压范围窄(RESET:11.5~12.5V,VCC:4.5~5.5V)
因此,现在很少有人用高压编程器对单片机进行编程,多数都用ISP或JTAG编程方式。因而专门的高压编程器价格也不低,简易的高压编程器价格在100以内,但是只能适用于某一种或两种单片机型号,而且需要专门的程序下载软件及驱动。
但是因为它在对单片机进行解锁方面的功能,使的高压编程器并未完全被淘汰。
因而使用高压编程器时便会感觉很矛盾:
1,编程器的主要功能是给单片机编程,但是现在ISP或JTAG方式编程速度高、占用引脚少,而且相应的软件也非常完善,单就对单片机编程而言,完全不会使用高压编程的方式来对单片机编程。
2,不使用高压编程器,很多时候单片机锁死后很难解开。但是仅为给单片机解锁而专门买个高压编程器,而且还要配合专门的软件使用,既不值又麻烦。

通过查阅数据手册中高压编程的内容,利用常用的ATMEGA16单片机,可以设计制作一个不需要PC端软件、不附带编程功能、专门对单片机解锁的AVR高压解锁器。

制作方法:
下面以对锁死的MEGA16单片机进行解锁为例,与大家分享制作方法与源程序。对于其它型号的单片机,只要具有高压编程接口,只需要查阅数据手册,将对应引脚接好即可。
这些引脚都是用于高压编程的:DATA;RDY_BSY;_OE;_WR;BS1;XA0;XA1;PAGEL;BS2;RST;XTAL1;VCC

电路图:



注:出于某些考虑,线路直接以连线连接,未使用任何NetLabel。图中的电容也可省略,一般没问题。

源程序:

//主单片机AVCC接VCC,利用AREF引脚控制锁死的单片机的VCC(5V电源电压能达到4.9V);
//主单片机的I/0寄存器ADMUX 控制AREF与AVCC的开关;
//三级管(9014)B极电阻100K,C极电阻1K,E极接GND(12.2V电源电压,能达到11.9V)
//锁死的单片机的RESET与VCC必须几乎同时加电压,不能有明显时间差;
//主单片机的熔丝位:禁用JTAG(因使用PORTC);1M内部时钟;


//Chip: ATmega16
//char is unsigned: Yes
//CodeVision AVR
#include
#include

//引脚定义
#define DATAPORTA//锁死芯片的PORTB
#define RDY_BSYPINC.4//锁死芯片的PD1
#define _OEPORTC.3//锁死芯片的PD2始终为1
#define _WRPORTC.2//锁死芯片的PD3
#define BS1PORTC.1//锁死芯片的PD4
#define XA0PORTC.0//锁死芯片的PD5
#define XA1PORTD.7//锁死芯片的PD6
#define PAGELPORTD.6//锁死芯片的PD7
#define BS2PORTB.0//锁死芯片的PA0
#define RSTPORTD.2//9014的B极电阻
#define XTAL1PORTC.6//XTAL1
#define LEDPORTB.1//LED
#define DDR_LEDDDRB.1//
#define VCC_ONADMUX=0x40//锁死芯片的VCC
#define VCC_OFFADMUX=0x00

//进入编程状态
#define PROG_ENABLEBS1=0;XA0=0;XA1=0;PAGEL=0;
//初始化
void initial(void)
{
DDRB=0xFF;
DDRC=0xFF;DDRC.4=0;PORTC.4=1;
DDRD=0xFF;
DDRA=0xFF;

_OE=1;
_WR=1;
XA0=1;
XA1=1;
PAGEL=0;
BS2=0;
BS1=0;
RST=1;
XTAL1=0;
LED=0;
VCC_OFF;
DATA=0x00;
}
//芯片擦除
void chip_erase(void)
{
XA1=1;XA0=0;
BS1=0;
DATA=0x80;
XTAL1=1;XTAL1=0;
_WR=0;_WR=1;
while(RDY_BSY==0);
}
//重写熔丝位
void write_fuse(char LB,char HB)
{
XA1=1;XA0=0;
BS1=0;
DATA=0x40;
XTAL1=1;XTAL1=0;

XA1=0;XA0=1;
DATA=LB;//熔丝低位
XTAL1=1;XTAL1=0;
BS1=0;BS2=0;
_WR=0;_WR=1;
while(RDY_BSY==0);

XA1=1;XA0=0;
BS1=0;
DATA=0x40;
XTAL1=1;XTAL1=0;

XA1=0;XA0=1;
DATA=HB;//熔丝高位
XTAL1=1;XTAL1=0;
BS1=1;BS2=0;
_WR=0;_WR=1;
while(RDY_BSY==0);
}
//高压恢复
void recover_fuse(void)
{
PROG_ENABLE;
RST=0,VCC_ON;//最关键的时序问题
chip_erase(); //擦除
write_fuse(0xE1,0x19); //恢复熔丝为默认(也可自己设定为其他值)
}
//结束状态
void finish(void)
{
DDRB=0x00;PORTB=0x00;
DDRC=0x00;PORTC=0x00;
DDRD=0x00;PORTD=0x00;
DDRA=0x00;PORTA=0x00;
DDR_LED=1;LED=1;
VCC_OFF;
}
void main(void)
{

initial();
delay_ms(200);
recover_fuse();
finish();
}
功能与使用方法:
功能:
将单片机锁定位与存储器擦除,并且将所有熔丝们都恢复为出厂默认(也可以改为自己想要的值)。
使用方法:
按下按键1秒钟以上时间,若看到LED指示灯亮,说明解锁成功。若尝试数次仍不见LED指示灯亮,说明芯片非锁死,而是损坏了。
特点:
1,不需要PC端软件,完全脱离电脑工作
2,专门用来恢复熔丝,解锁单片机,不附加累赘功能
3,使用方便,整个过程不到1秒时间
4,可通过预留插针,将高压编程所需引脚引出,对其它型号单片机只要把对应引脚相连,即可解锁;
5,制作简单,成本低廉。
PS:尽管市面上的高压编程器是用比ATMEGA16低档的ATMEGA8作为主单片机,但是我们根本不需要专门的单片机作为主单片机,只要保留程序和电路板,就可以用任一块未锁的单片机来解锁别的单片机。并且现在ATMEGA8的价格与ATMEGA16的价格已经相差不多。
平时一般不用这个东西,可以放到一边去,当芯片被锁时才拿出来使用,百试百灵。

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

引言   现场总线作为生产过程自动化发展的重点,对推动自动化技术起到巨大的推动作用,是现代化工业的标志。MODBUS作为现场总线的一种通信协议,它实现了PLC控制器、工控仪表与设备间的通

关键字: avr单片机 智能控制系统 modbus协议

一、项目概述 1.1 引言 温室是一种可以改变植物生长环境、为植物生长创造最佳条件、避免外界四季变化和恶劣气候对其影响的场所。它以采光覆盖材料作为全部或部分结构材料,可在冬季或其

关键字: avr单片机

一、项目概述 1.1 引言 随着社会的发展,高层建筑和智能化建筑的不断出现,作为垂直运输工具的电梯得到了越来越广泛的应用,人们对电梯服务质量及可靠运行提出了越来越高的要求。在20

关键字: avr单片机 节能电梯

VR给人一种沉浸感,具有传统娱乐方式不可比拟的优势。理想的VR让人分不清现实和虚拟,VR领路人相信VR能够改变人们的生活方式。 过去的时间,那些VR领域的佼佼者们有两件事做得非常好:一是

关键字: avr单片机

什么是AVR单片机?应该如何取学习?学习单片机的小伙伴都知道,衡量单片机性能好坏的指标主要有:可靠性好、功能强、高速度、低功耗和低价位,依靠这几点,作为单片机家族中性能较高的AVR,你真的能理解吗?

关键字: AVR avr单片机 寄存器

单片机诞生于20世纪70年代末,它是指一个集成在一块芯片上的完整计算机系统。单片机具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外...

关键字: avr单片机 单片机

pic单片机使用较多,因此学习pic单片机的人数也相对较多。对于pic单片机,它的优点众所皆知。此文对pic单片机的讲解在于介绍pic单片机的IO口操作。但本文不仅仅局限于pic单片机,同样将对51单片、AVR单片机IO...

关键字: avr单片机 pic单片机 io操作

对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文...

关键字: 51单片机 avr单片机 pic单片机

单片机控制开关电源,单从对电源输出的控制来说,可以有几种控制方式。

关键字: avr单片机 开关电源

针对AT24Cxx系列eeprom存储器,写的时候有越页功能,不用考虑页边界,I2C用软件模拟实现,完善中…#define SDA1() PORTC|=1

关键字: at24c01 avr单片机 eeprom 读写程序
关闭
关闭