版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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//charisunsigned:Yes//CodeVisionAVR#include#include//引脚定义#defineDATAPORTA//锁死芯片的PORTB#defineRDY_BSYPINC.4//锁死芯片的PD1#define_OEPORTC.3//锁死芯片的PD2始终为1#define_WRPORTC.2//锁死芯片的PD3#defineBS1PORTC.1//锁死芯片的PD4#defineXA0PORTC.0//锁死芯片的PD5#defineXA1PORTD.7//锁死芯片的PD6#definePAGELPORTD.6//锁死芯片的PD7#defineBS2PORTB.0//锁死芯片的PA0#defineRSTPORTD.2//9014的B极电阻#defineXTAL1PORTC.6//XTAL1#defineLEDPORTB.1//LED#defineDDR_LEDDDRB.1//#defineVCC_ONADMUX=0x40//锁死芯片的VCC#defineVCC_OFFADMUX=0x00//进入编程状态#definePROG_ENABLEBS1=0;XA0=0;XA1=0;PAGEL=0;//初始化voidinitial(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;}//芯片擦除voidchip_erase(void){XA1=1;XA0=0;BS1=0;DATA=0x80;XTAL1=1;XTAL1=0;_WR=0;_WR=1;while(RDY_BSY==0);}//重写熔丝位voidwrite_fuse(charLB,charHB){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);}//高压恢复voidrecover_fuse(void){PROG_ENABLE;RST=0,VCC_ON;//最关键的时序问题chip_erase();//擦除write_fuse(0xE1,0x19);//恢复熔丝为默认(也可自己设定为其他值)}//结束状态voidfinish(void){DDRB=0x00;PORTB=0x00;DDRC=0x00;PORTC=0x00;DDRD=0x00;PORTD=0x00;DDRA=0x00;PORTA=0x00;DDR_LED=1;LED=1;VCC_OFF;}voidmain(void){initial();delay_ms(200);recover_fuse();finish();}功能与使用方法:功能:将单片机锁定位与存储器擦除,并且将所有熔丝们都恢复为出厂默认(也可以改为自己想要的值)。使用方法:按下按键1秒钟以上时间,若看到LED指示灯亮,说明解锁成功。若尝试数次仍不见LED指示灯亮,说明芯片非锁死,而是损坏了。特点:1,不需要PC端软件,完全脱离电脑工作2,专门用来恢复熔丝,解锁单片机,不附加累赘功能3,使用方便,整个过程不到1秒时间4,可通过预留插针,将高压编程所需引脚引出,对其它型号单片机只要把对应引脚相连,即可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论