庆祝:救活MEGA8熔丝位锁死
我自己做了一块MEGA8的ISP,是和MEGA8515建在一块PCB上,可能是两块芯片的编程引脚隔离不好,导致我MEGA8锁死,我郁闷了好久,今天才看armok / 2004-10-25 / www.OurAVR.com 的搞错熔丝位,导致芯片死锁的恢复办法几个办法,看到其中用有源晶振救活的方法,可是手头没有有源晶振,也没有其他的好东西,突然想到,实验室里的信号发生器可以产生方波,不过最高也只有400kHz,我再想到AT89S51很低频率也可工作,猜想MEGA8应该也可以,就将这个信号+3V400kHz加到PB6上去,再写入熔丝位,真就救活这块芯片拉,真是太高兴了。谢谢armok 整理的资料,谢谢彩虹数码提供的方法。
大家遇到这情况,如果是有信号发生器,不妨采用这种方法一试,我是成功过一次了。
欢迎各位朋友讨论,也可加我QQ:20144822,在AVR的学习上我还是菜鸟,欢迎大虾们指教。 我的错把融丝写成外部RC振荡器了,能救活吗? 我是在自己做的板子上进行的实验,不过我没有试更低的频率。只要是熔丝位的问题,
可以试试这个方法阿。我救活之后我现在还不敢乱写熔丝位,我对AVR还不是太了解,我们现在的
课程好紧,学这个也是业余做做。 一般情况下,在XTAL1加上外部振荡源,用ISP软件先将溶丝设置为内部RC 1M,接下来再设置溶丝与实际使用的相配。
理论上在XTAL1上外部振荡源的频率在0-8/16M,也就是说64K是可以的(当然0是不行的),但ISP的SCK脉冲宽度要大于2个系统时钟宽度。有些ISP软件的SCK比较快,内部等待延时不够,故造成使用比较低频率的外部振荡源时ISP与芯片的通信失败。
这几个软件:SLISP、ICC、CVAVR和BASCOM-AVR中的ISP性能有区别,可轮流试一下,并多试几次。我也多次将溶丝烧错,使用128K加BASCOM-AVR中的ISP功能,都救过来了。 AVR是静态逻辑的。所以原则上大于0的频率都可以的。不过你得找到能适应这么低频率的ISP软件。哈哈。SL的ISP软件有低速模式。可以试试。呵呵。 SPI串行下载的串行时钟(SCK) 的最小低电平时间和最小高电平时间要满足如下要求:
低:>fck<12MHz时为2 个CPU 时钟周期, fck>=12MHz时为3个CPU时钟周期
高:>fck<12MHz时为2 个CPU 时钟周期, fck>=12MHz时为3个CPU时钟周期
也就是说MCU的时钟频率最起码要比下载软件的ISP时钟高3倍。
每个ISP下载软件的SCK都不一样,部分有低速模式选项----支持32.768KHz的MCU时钟。
SLISP比较完善,支持多种模式
TURBO模式: SPI时钟没有任何延时
FAST模式: SPI时钟大约在100KHZ
NORMAL模式: SPI时钟大约在50KHZ
SLOW模式: SPI时钟大约在5KHZ,适于32.768KHZ超低频系统。
TURBO SLOW模式: SPI时钟大约在1KHZ,支持16KHZ以下的时钟频率。
PonyProg有SLOW,NORMAL,FAST,TURBO四种速度,但没告知SLOW的速度几何。 今天救活一块MEGA32熔丝位锁死。按照网站上的说明:用有源晶振救活的方法。不过怎么熔丝位锁死的还搞不清。
用WinAvr调试时,用以下的设置(makefile),只要按一下:Make Program就可以把程序用并口下载到Mega32上。
#---------------- Programming Options (avrdude) ----------------
# Programming hardware: alf avr910 avrisp bascom bsd
# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
#
# Type: avrdude -c ?
# to get a full listing.
#
AVRDUDE_PROGRAMMER = stk200
# com1 = serial port. Use lpt1 to connect to parallel port.
AVRDUDE_PORT = lpt1
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
# Uncomment the following if you want avrdude's erase cycle counter.
# Note that this counter needs to be initialized first using -Yn,
# see avrdude manual.
#AVRDUDE_ERASE_COUNTER = -y
# Uncomment the following if you do /not/ wish a verification to be
# performed after programming the device.
#AVRDUDE_NO_VERIFY = -V
# Increase verbosity level.Please use this when submitting bug
# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
# to submit bug reports.
#AVRDUDE_VERBOSE = -v -v
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
一直很方便,有点一步到位的感觉。直到电脑忽然出了点故障,在下载的过程中另外一个程序罢工,下载停住,把熔丝位锁死了。不知大家是否有遇到类似的情况。 选错外部RC就自己搭个外部RC电路就可以了啊,具体的芯片DATASHEET里面有 用信号发生器不错 一次拯救成功。 我把它写成了要用外不时钟,不知道怎么加外部时钟,请各位指教一下
! M128L偶用8M和4M的有源晶振都不行,莫非真的是IC坏了,还没用过啊 你可能弄错了
128RxDTxD和mosimiso对换 庆祝一下:我用有源晶振救活了M128!!!! 用非门,电阻,电容,可以做个800khz的脉冲电路,也是不错的选择 再找一个能用的板子,编写个程序,从一个io输出方波,接出来就可以了。 我没有信号发生器,不过我的AVRISP和89S52的ISP在一块板上,所以我使用89S52的ALE作时钟源也可以,呵呵 我的M16也遇到这个事,不过我用一个89C51(12M晶体),从他的30脚可以引出1M的信号,修复了 用89c51的和slisp我也试过,每次都成功 如果板子上有串口电路,让pc机发55h,最大波特率,8位,无校验,停止位1,
呵呵,TTL的这侧就有脉冲了,接过来用,就可以 erxun 老孟:
您提供的方法相当实用! progisp 有个提供时钟大勾,就可输出时钟信号用于解锁 请问zhifeng,软件上打上勾后,上位机发送命令给编程器吧?最终的时钟其实还是由编程器提供的吧?能否问一下你这个选项打上勾后给编程器发的指令是什么?我现在自己改造做了个USBISP,如果知道你发送的数据,我也给自己的编程器加这么一个功能,呵呵。谢谢啊。
另外在这里问 一下,不是所有的AVR芯片都支持高压串行编程吧?那AVR_DOPER里面的高压编程有什么用处?只支持那几种能用高压串行编程的芯片吗?我看了一下图纸也是只有三条线哪(信号)。 你们好
我在用8515L过程中在开始几次工作多很正常,但今天下午系统不能正常工作我检查了晶振电压正常,复位也正常,VCC GND都很标准,但IO口不工作
16M晶体 无计可施下请给位老师支个招救救急
谢谢 牛人 ! 如果手头没有信号发生器,自己可以做一个,用你现在手里有的板子做一个,无论是51还是AVR,如你手里还有一块MEGA8电路板,写程序烧进去,使这个管脚输出一个方波再接到需要救活的MEGA8上就可以了! 我试过,此方法不行。。。 哈哈,我刚才用另一个MEGA8输出脉冲信号解锁成功,以后不敢乱配熔丝了 如果你把ISP功能和复位脚功能都去掉,用外部时钟也无济于事………… 唔唔~~我也试试 我也遇到过这样的问题,只要搭接一个阻容振荡器,我用的数据是电阻1.8K,电容22P,然后重新刷好熔丝位就可以了 还是做个高压编程器好 什么样的熔丝错误都能恢复 mark mark,我正在就,我用的马老师的板子
2楼说可以弄好?
我把128K的插在X1上,确实可以烧了,但是拔出来之后,就不行了呢 这个只能是用于晶振设置错误才能用吧?我把JTAG禁用了能救活吗? mark先,哎。。 maek 记号, 用mega8做的isp下载器就有12M晶振,把它引出来,接到XTAL1应该就可以用isp方式更改熔丝位了,改成内部RC 1M的就救活了,我试过除了设成外部32768k不能用isp救活,其他的都可以。因为要求外部isp速率要求为目标振荡频率的1/4,设成外部32768的话,1/4频率太低了,isp提供不了这么低的频率,只能用高压并行编程恢复了。看看有哪位又解决方案?毕竟如果是TQFP封装的话,用isp是最方便的。 mark 我也记录一下,现在还不明白,片子为什么不能够烧录程序,哎 回复【2楼】armok 阿莫
-----------------------------------------------------------------------
马老师的开发板上面就用方波就可以救活,配置为外部时钟,外部RC,外部低频晶振,外部晶振(高频)的我都实际试过,ISP用的是双龙的USPISP,方波最低125Hz都可以恢复。如果还有问题的话,可以降低ISP的通信速度试试。 我今天用50M有源晶振救活了一块MEGA8515;本来误操作熔丝位点击了使用外部RC晶振,烧写时发现芯片锁死,此后烧不进程序,芯片也不工作。看到此文,找了一个方形50M有源晶振,1脚空,2脚接地,3脚接8515的XTAL1,(8515的XTAL2空置),4脚接电源,通电后看到数码管点亮了,说明芯片内部的程序起作用了,然后重烧,可以烧写,OK了。 谢谢分享 试过直接用手摸着时钟脚加干扰直接救活了mega8
不过要多试几次 不能保证一次过 学习了
页:
[1]