5.3 芯片锁死后的解决方法
特别注意:要明确一个概念,AVR芯片锁死这种现象一般来说都是因为熔丝位配置不当造成的,属于用户操作不当。配置熔丝有风险,配置时必须谨慎。
一、锁死的原因
导致熔丝位锁死有很多种情况,如由于自己的操作失误,意外把ISP与JTAG都禁用了;又如由于编写的代码涉及熔丝内部寄存器,运行程序时并没有注意,致使熔丝锁死;再如由于外部晶振未接而出现假锁死状态等等。下面将举一个具体的例子说明熔丝位的锁死问题:
A先生使用的是USB AVR ISP编程器,芯片使用的是ATmega16,目标板并没有为配置外部晶振。在一次配置熔丝位的时候,A先生把ATmega16的时钟熔丝位配置为外部晶振时钟源,然后就发现芯片锁死了,不能进行正常的烧写程序与读写熔丝位等操作。
这是因为当熔丝位配置为外部晶振的时候,目标板必须含有外部晶振,而A先生的板子上并没有这个硬件模块,所以当A先生把熔丝位设为外部晶振时无法进行正常的烧写程序与读写熔丝位等操作。
二、锁死了怎么办?
1、了解锁死原因,比如说上面的例子,A先生知道是因为没有外部晶振而锁死的,所以这时候只需要在硬件上接上一个外部晶振即可以正常工作;
2、直接使用专门的高压编程器,比如说STK500。高压编程器可以通过特殊的编程接口,对芯片强制解锁;
3、一些芯片成本不高,比如说ATtiny13这种便宜的芯片,同时锁死的数量又不多,而且不知道锁死原因,并且又不方便购买较为昂贵的高压编程器,这时候可以采取抛弃的方式,将锁死的芯片扔掉,并对后续的熔丝位编程多加注意,将损失降到最低。
|