打印
[AVR单片机]

AVR的熔丝位在什么条件下用高压编程器不能恢复?

[复制链接]
7164|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yewuyi|  楼主 | 2007-8-19 21:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
maychang| | 2007-8-19 22:18 | 只看该作者

比较特殊

以ATmega48为例,该芯片的RESET引脚可以设置成I/O引脚,作为PC6使用。这是因为该芯片有内部上电复位电路,可以保由外部上电复位。RESET引脚是否作普通I/O用,是靠熔丝位决定的。
作普通I/O引脚用,上电后可以将其设置成输入引脚,也可以设置成输出引脚。如果上电后的初始化将其设置成输出,那么该芯片就不能擦除,当然也就不能改写。
因为上电后,根据上次熔丝位设置,RESET引脚不作复位用,初始化程序又将其设置成输出引脚,但高压编程时这个脚需要加12V电压,因为已经设置成输出,12V电压无法加到这个脚上,导致编程失败。
此时同样不能用SPI编程,原因相同。芯片只能作废。

使用特权

评论回复
板凳
双龙| | 2007-8-19 23:00 | 只看该作者

楼主说的情况,应该是很少很少很少发生,目前我只碰到2个

第一个:几年前,我们一个M8客户,拿M8在LABTOOL-48XP上设了熔丝(据他说,是设错了),结果发生了maychang所说的现象,能工作,但不能再擦写了,结果做报废处理。
第二个:是用TINY13的,用北京润飞的RF2148烧录器,也发生 能工作,但不能再擦写的情况,但是把该芯片拿到LABTOOL-48UXP上再烧录,却是可以再擦写的。

结论:熔丝不要随便设,一定要按手册来。
慎用复位做I/O这个功能。
工程师做批量前,把测试工作做好。前面所说的问题,在研发中或批量前肯定能发现。
量产编程器要选好的,最好给操作工设定“工程”,不要让操作工自己瞎设。

使用特权

评论回复
地板
maychang| | 2007-8-19 23:11 | 只看该作者

只要不将RESET引脚设置成输出

就不会出现这种不可恢复的错误。
我可是毁了两片才明白过来的,这个代价不算太小了。

使用特权

评论回复
5
315avr| | 2007-8-20 00:35 | 只看该作者

哦,如此吗?白天问下Bw_315avr,他了解这个...

使用特权

评论回复
6
yewuyi|  楼主 | 2007-8-20 08:16 | 只看该作者

原来如此,受教受教……

俺没有浪费,真是太幸运了……


呵呵,不管什么情况下,俺从不把RST当IO使用的

使用特权

评论回复
7
zhiwei| | 2007-8-20 09:04 | 只看该作者

双龙的SLISP的确安全的多

ISPEN等熔丝不让设置,有好处的。不过我用过Tiny13,把RST脚用作AD采样输入,用通用编程器SUPERPRO可以恢复熔丝。

使用特权

评论回复
8
315avr| | 2007-8-20 09:38 | 只看该作者

2楼maychang说的,RST引脚设置输出,我试了芯片没作废哦

2楼maychang说的,RST引脚设置输出,我试了芯片没作废哦!
我设置的输出(高、低电平)都没问题的,奇怪了~!

使用特权

评论回复
9
avr| | 2007-8-20 09:52 | 只看该作者

使用并行烧录方式理论上都可以恢复

使用并行烧录方式理论上都可以恢复,但是否恢复成功取决于编程器对烧录时序的控制。只要时序控制得好,内部的程序根本得不到运行的时间,RESET即使配置成输出状态也不会有什么影响。

使用特权

评论回复
10
315avr| | 2007-8-20 10:08 | 只看该作者

哦,看来我滴高压编程器不错,不过我得多试几种芯片

哦,看来我滴高压编程器不错,
谢谢LS指点,不过我得多试几种芯片!

使用特权

评论回复
11
yewuyi|  楼主 | 2007-8-20 10:50 | 只看该作者

呵呵,俺没测试,反正俺不会用RST当IO……

使用特权

评论回复
12
箫天| | 2007-8-20 13:56 | 只看该作者

同意avr的观点

恢复不了是因为没有进入编程模式,并行编程是通过时序控制芯片进入编程模式,内部程序运行前进入编程模式,就可以进行并行编程。如果熔丝配置的是外部晶振,而编程时外部并没有接晶振,内部程序无法运行,也可以进入编程模式。我试验过各种情况,都可以恢复熔丝。

使用特权

评论回复
13
315avr| | 2007-8-20 14:57 | 只看该作者

如果是内部时钟,而我连接编程前就已...

再请教几点,请不吝赐教:
1. 如果是内部时钟,而我连接编程前就已上电,内部程序正常运行,那就有可能进如不了并行编程模式?是吗?
2. 而如果烧录时序控制得好,就不会进不去编程模式是吗?
3. 这么说能否完全畅通无阻都是取决于烧录器烧录时序的控制了?

使用特权

评论回复
14
qjy_dali| | 2007-8-20 21:53 | 只看该作者

这么看来Atmel把AVR的熔丝做得太灵活了

有时候反而害人...

使用特权

评论回复
15
双龙| | 2007-8-20 22:15 | 只看该作者

熔丝设置多,说明功能多。

不要因为害怕熔丝设置而因噎废食,熔丝设置不过一纸老虎尔。

使用特权

评论回复
16
pheavecn| | 2007-8-20 22:28 | 只看该作者

最麻烦的是0/1颠倒。真晕。

使用特权

评论回复
17
mikesullen| | 2007-8-20 22:38 | 只看该作者

同意avr的意见

我也试过TINY13,MEGA8,MEGA16都没有问题。

使用特权

评论回复
18
箫天| | 2007-8-21 14:14 | 只看该作者

数据手册里有详细时序说明

TO 315avr:
再请教几点,请不吝赐教:
1. 如果是内部时钟,而我连接编程前就已上电,内部程序正常运行,那就有可能进如不了并行编程模式?是吗?
A:是的。如果一直加电而且程序正常运行,无法进入编程模式

2. 而如果烧录时序控制得好,就不会进不去编程模式是吗?
A:要分开来看,如果一直外加电(不是由编程器控制)而且程序正常运行,无法进入编程模式。编程器本身也要控制对目标芯片5V和12V的加电时序。

3. 这么说能否完全畅通无阻都是取决于烧录器烧录时序的控制了?
A:时序控制标准是规定死的。高压编程器都是按照数据手册要求来设计的。

另外,网上有些简易并行编程器的电路图,多是把目标芯片的VCC直接连5V电源,那是错误的。

顺便秀一下我的高压并行编程器,漂亮吧。

使用特权

评论回复
19
315avr| | 2007-8-21 15:07 | 只看该作者

heihei,LS去我的网站看看我的可脱机高压编程器,一起讨论下

使用特权

评论回复
20
x16558| | 2017-4-27 14:45 | 只看该作者
maychang 发表于 2007-8-19 22:18
以ATmega48为例,该芯片的RESET引脚可以设置成I/O引脚,作为PC6使用。这是因为该芯片有内部上电复位电路, ...

我在初始化程序里面设置成输入,程序正常运行时设置成输出,这样行不行呢。(注:正常程序运行的时候需要按键按下才执行。这种能不能恢复呢。)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1416

主题

20007

帖子

232

粉丝