Atmega16的解锁

ATmega16解锁
      刚刚把以前锁死的两块Mega16给解开锁,之前自己也解了很多次就是没解开。在网上看了一些解锁的方法,都是说在ISP下载功能被禁止时,可以用JTAG下载来改变熔丝位ISPEN=0,让Mega16恢复ISP下载功能。如果两种下载方式都被锁死的情况下,就只能用高压并行的方式来修改熔丝位。还有一种很简单的方法就是在Mega16玩具直升机结构XTAL1XTAL2引脚接上一个振荡信号,使单片机能处在工作状态,改变其熔丝位。
    Mega16的熔丝位配置错和对单片机的某些误操作很容易使单片机不能正常工作。一种情况是在配置熔丝位时误将ISPENJTAGEN置为1(或没有在复选框中打钩),单片机的ISPJTAG下载功能没有使能,使得单片机被锁死。还有一种情况是配置的时钟源熔丝位CKSEL3/0与单片机本身工作的时钟源不相符,这也是单片机被锁死的原因。
    我的两块Mega16都是由于时钟源选择错误导致被锁死,我也是今天刚注意到这个问题的。我将一块正常运行的51XTAL2Mega16XTAL1连接,将51XTAL1Mega16XTAL2连接,这样被锁死的Mega16就可以正常运行了。然后,先要在读取其熔丝位的配置,然后我把时钟源CKSEL3/0的熔丝位改成内部RC振荡8MHZ(改成自己单片机适合的熔
丝位即可),将改后的配置写入单片机。最后将与51连接的线断开,重新将下载器与电脑接上,就可以给M16下载程序了。
1.编程与状态说明       
(1)avr的器件手册中,使用已编程(programmed)和未编程(unprogrammed)定义熔丝位的状态。未编程表示熔丝位状态为“1(禁止);已编程表示熔丝位状态为“0(允许)   
(2)avr熔丝位可以多次编程,不是一次性的opt熔丝  
(3)熔丝位的配置可以通过并行方式、isp串行方式和jtag串行方式实现。  
(4)avr芯片加密锁定(lb2/lb1=1/0,0/0)不能通过任何方式读取芯片内部的flasheeprom数据,但是熔丝位的状态仍然可以读取,只是不能修改配置。  
(5)芯片擦除命令是将flasheeprom中的数据清除,并同时将两位锁定位状态配置成无锁定的状态(lb2/lb1=1/1),但芯片擦除命令不改变其熔丝位的配置。  
(6)下载编程的正确操作程序是:对芯片无锁定状态下,下载运行代码和数据,配置相关的
熔丝位,最后配置芯片的加密锁定位。  
(7)如果芯片被加密锁定后,发现熔丝位配置不对,则必须使用擦除命令,清楚芯片的数据,解除加密锁定,然后重新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的加密锁定位。
2.芯片加密锁定熔丝
加密锁定位
保护类型(用于芯片加密)
加密锁定方式
在线检测仪表lb2
lb1
1(出厂设置)
1
1
无任何编程加密锁定保护
2
1
0
禁止串/并行方式的再编程
3
0
0
禁止串/并行方式的再编程和校验
3.功能熔丝
熔丝位名称
说明
出厂设置
wdton
看门狗有软件控制
看门狗始终工作,软件只能调节溢出时间
1
spien
禁止isp串行编程
允许isp柯式烫画串行编程
0
jtagen
禁止jtag
允许jtag
0
eesave
芯片擦除时同时擦除eeprom数据
芯片擦除时不擦除eeprom数据
1
boden
机器人焊接系统
禁止低电压检测功能
允许低电压检测功能
1
bodlevel
低电压检测门限电平为2.7v
低电压检测门限电平为4.0v
1
ocden
禁止jtag口的在线调试功能
允许jtag口的在线调试功能
1
4.bootloader熔丝(1)上电启动地址选择
熔丝位名称
说明
出厂设置
bootrst
芯片上电后从地址0x0000开始执行
上电后从boot区开始执行
1
(2)bootloader区大小设置
bootsz1
bootsz0
boot区大小/
起始地址
出厂设置
0
0
1024
0x1c00
00
0
1
512
0x1e00
1
0
256
0x1f00
1
1
128
0x1f80
5.有关系统时钟源的选择熔丝(1)系统时钟选择
系统时钟源
cksel[3:0]
外接石英/陶瓷晶体
11111010
外接低频晶体(32.768khz)
1001
外接rc振荡器
10000101
使用可校准的内部rc振荡器
01000001(出厂设置家庭供暖系统00011mhz
外部时钟
0
(2)使用外部晶体时的工作模式配置
熔丝
工作频率范围/mhz
c1c2容量/pf
适用晶体
ckopt
宠物屋
cksel[3:0]
1
101
0.40.9
注释(1)
陶瓷晶体
1
110
0.93.0
1222
石英晶体
1
111
3.08.0
1222
0
101111
>=1.0
1222
注释(1):对陶瓷晶体振荡所配的电容,请按照厂家说明使用;  
注释(2):当ckopt=0时,振荡器的输出振幅较大,适用于干扰大的场合;反之,振荡器的输出振幅较小,可以降低功耗,对外电磁辐射也较小;  
注释(3)ckopt默认状态为“1”。
熔丝位的解锁:avr单片机熔丝位如果操作失误,可能导致单片机假死,比如设定的晶振频率与实际晶振不匹配,一般来讲,由于晶振设置的错误可以通过更改实际的晶振或者使用
有源晶振进行解锁,有源晶振按照工作电路接好以后,接入到单片机的外部时钟引脚,然后使用单片机isp设备打开熔丝位,更改单片机的时钟为内部1m或者其他内部时钟频率,就可以达到解锁的目的。

本文发布于:2024-09-22 01:21:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/163905.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:配置   单片机   晶振   芯片   锁定   下载   时钟   工作
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议