历史上的今天
返回首页

历史上的今天

今天是:2024年12月12日(星期四)

正在发生

2019年12月12日 | AVR单片机高压解锁器的制作设计

2019-12-12 来源:elecfans

概述:

利用常用的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

电路图:

AVR单片机高压解锁器的制作设计

注:出于某些考虑,线路直接以连线连接,未使用任何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的价格已经相差不多。


平时一般不用这个东西,可以放到一边去,当芯片被锁时才拿出来使用,百试百灵。

推荐阅读

史海拾趣

兆易创新(GigaDevice)公司的发展小趣事

对于热电偶隔离缓冲放大电路,网友可能会有多种问题,以下是一些常见问题及其回答:

一、技术问题

  1. 什么是热电偶隔离缓冲放大电路?
    • 回答:热电偶隔离缓冲放大电路是一种专门用于热电偶信号处理的电路,它能够将热电偶产生的微弱电压信号进行放大,并通过隔离技术消除干扰信号,确保信号的准确性和稳定性。这种电路通常包括放大器和隔离器两部分,放大器用于增强信号,而隔离器则用于隔离输入和输出之间的电气连接,防止噪声和干扰的传递。
  2. 为什么需要热电偶信号的隔离和缓冲?
    • 回答:热电偶信号通常非常微弱,且易受到环境噪声和电磁干扰的影响。隔离可以切断输入和输出之间的直接电气连接,防止噪声和干扰信号进入测量系统,提高测量的准确性和可靠性。缓冲则可以减小负载对热电偶信号的影响,保护热电偶免受损坏,并稳定信号输出。
  3. 如何选择适合的热电偶隔离缓冲放大电路?
    • 回答:选择适合的热电偶隔离缓冲放大电路时,需要考虑多个因素,包括热电偶的类型、测量范围、精度要求、工作环境等。此外,还需要关注电路的输入阻抗、输出阻抗、增益稳定性、噪声水平等性能指标,以确保电路能够满足实际应用的需求。

二、实际应用问题

  1. 热电偶隔离缓冲放大电路在工业现场的应用有哪些?
    • 回答:热电偶隔离缓冲放大电路在工业现场有广泛的应用,如温度测量、温度控制、热处理过程监控等。它们可以用于测量各种高温、低温环境下的温度,并通过与控制器、记录仪等设备配合使用,实现对温度的精确控制和记录。
  2. 如何安装和调试热电偶隔离缓冲放大电路?
    • 回答:安装和调试热电偶隔离缓冲放大电路时,需要按照产品说明书的要求进行操作。一般来说,需要先将热电偶与电路的输入端正确连接,然后调整电路的增益、零点等参数,使输出信号符合实际应用的需求。在调试过程中,需要注意观察电路的输出信号是否稳定、准确,并检查是否有噪声和干扰信号的存在。
  3. 热电偶隔离缓冲放大电路的维护和保养有哪些注意事项?
    • 回答:热电偶隔离缓冲放大电路的维护和保养非常重要,可以延长电路的使用寿命并保证其性能稳定。在使用过程中,需要定期检查电路的接线是否牢固、元器件是否损坏、输出信号是否准确等。如果发现异常情况,应及时处理并更换损坏的元器件。此外,还需要注意保持电路的清洁和干燥,避免灰尘和水分进入电路内部导致故障。

三、其他问题

  1. 热电偶隔离缓冲放大电路的成本如何?
    • 回答:热电偶隔离缓冲放大电路的成本因产品型号、性能指标和生产厂家等因素而异。一般来说,高精度、高稳定性的电路成本会相对较高。在选择电路时,需要根据实际需求和预算进行综合考虑。
  2. 热电偶隔离缓冲放大电路的发展趋势是什么?
    • 回答:随着工业自动化和智能化的发展,热电偶隔离缓冲放大电路也在不断向高精度、高稳定性、高集成度方向发展。未来,这种电路可能会采用更先进的集成电路技术和信号处理技术,提高测量精度和抗干扰能力,并降低成本和功耗。同时,随着物联网技术的发展,热电偶隔离缓冲放大电路也可能会与无线通信技术相结合,实现远程监控和智能控制等功能。
CHIMEI(奇美)公司的发展小趣事

随着电子行业的快速发展,市场竞争也日益激烈。奇美公司深知创新是企业发展的核心动力,因此不断加大研发投入,推动技术创新和产品升级。公司研发团队积极探索新技术、新工艺和新材料的应用,推出了一系列具有创新性和竞争力的产品。这些产品不仅满足了客户的需求,还为公司开拓了新的市场领域。

Adaptive Networks Inc公司的发展小趣事

随着全球化趋势的加速,奇美公司开始实施全球化战略,积极拓展国际市场。公司通过在海外设立分支机构、参加国际展会等方式,加强与国际客户的交流与合作。同时,奇美还积极引进国际先进的技术和管理经验,提升公司的国际化水平。这种全球化战略使得奇美能够更好地融入全球电子产业链,提升公司的国际竞争力。

广东爱晟电子(exsense)公司的发展小趣事

2020年新冠疫情期间,爱晟电子积极响应政府号召,全力支持抗疫工作。公司不仅向抗疫一线捐赠了防疫物资,还组织员工参与志愿服务。同时,公司还利用自身的技术优势,研发出适用于医疗设备的NTC热敏电阻,为抗击疫情提供了有力支持。这些行动彰显了爱晟电子的社会责任感和担当精神。

Floeth Electronic Ltd公司的发展小趣事

随着业务的不断拓展,爱晟电子意识到品质是品牌的核心。公司引进了先进的生产设备和管理体系,严格按照ISO9001质量体系运作,确保产品质量的稳定性和可靠性。同时,公司还加强了对原材料的质量控制,与国内外优质供应商建立了长期稳定的合作关系。这些举措使得爱晟电子的产品在市场上赢得了良好的口碑,品牌影响力逐渐增强。

Deltrol Controls公司的发展小趣事

在电子设备的制造过程中,螺线管是不可或缺的元件之一。然而,传统的螺线管生产方式存在效率低下、质量不稳定等问题。Deltrol Controls通过引进先进的生产设备和技术,实现了螺线管的精细化生产。这一举措不仅提高了生产效率,而且保证了螺线管的质量稳定性。凭借这一优势,Deltrol Controls在电子行业中的竞争力得到了显著提升。

问答坊 | AI 解惑

合泰HT46R47的应用资料分享

HT46R47高性能8位OTP单片机     HT46R47为台湾合泰HOLTEK公司产品,一个带4路9bitA/D转换器的高性能8位单片机,仅63条精简指令,所有指令均为单周期,片内含64x8数据存储器(RAM),2k字节OTP只读程序存储器,13个双向I/O口线,6层硬件 ...…

查看全部问答>

MSP430x22x4程序包

此程序包包含MSP430单片机各个模块的程序应用,并且每个模块都有多个程序举例,通过对它们的学习,相信你的对430的理解更上一层楼!有不足之处请大家批评指正!…

查看全部问答>

MSP430F149单片机实现的步进电机通用控制器

MSP430F149单片机实现的步进电机通用控制器…

查看全部问答>

现在的嵌入式系统,使用什么编程,使用什么系统,使用什么协议与标准?

现在的嵌入式系统,使用什么编程,使用什么系统,使用什么协议与标准?…

查看全部问答>

寻找IT界人才

  本公司是家上海的猎头公司,与上海众多IT公司有合作.希望全国各地的IT人才联系我们,我们希望通过我们的平台,尽我们最大的努力帮你们找到一份满意的工作.   有意者请联系我们~ MSN:jack_8310@hotmail.com,   QQ:2861 ...…

查看全部问答>

求助CD4094的工作原理

我用三片CD4094来驱动15段数码管,一片用作数码管的位选,另两片级联起来显示数据,我想问一下,我的显示码是先发送低位还是高位,也就是怎样发送才能让串行数据和4094转换后的并行数据对应起来!…

查看全部问答>

求助~~~~~~~~~~~~~

BOOL CCESeries::OpenPort(CWnd* pPortOwner,/*使用串口类,窗体句柄*/                         UINT portNo,/*串口号*/                 ...…

查看全部问答>

自己做的2812板子,调试问题

  最近刚按别人提供的原理图做了一块2812的板子,板上有外扩RAM,flash和ADS8361等 画图、pcb制板和焊接都是自己亲手做的,由于全是第一次动手做,很费事,也走了很多冤枉路。     前两天刚好全部焊接好,很激动的通上电调试 ...…

查看全部问答>

430IO口高阻态怎么设置

请问各位,如果想把430的IO口设置为高阻态怎么设置?仅仅把它设置为输入就可以了吗?如:     P3DIR &= ~BIT0; …

查看全部问答>

help~大家帮忙看看,如何把蓝线取下来?

没见过这种把线压到PCB板上的方式,新手,怎么取下来啊? …

查看全部问答>