Mega16无源晶振程序跑飞,用上有源就没问题
Mega16无源晶振程序跑飞,用上有源就没问题。我用的mega16上的16m,用Jtag mkII 仿真显示程序跑飞,换上8M也出现这样情况。(我确定熔丝为是设置正确的)
然后换上有源晶振,配置熔丝位后,仿真就显现能正常,不知道为什么。
有谁也出现过这样的情况吗 晶振质量问题,遇到过,换个晶振就好了 换了个8M也不行。不行,只能用内部晶振了,就怕内部不稳定 单片机内部的振荡电路驱动过大,让晶体振荡在谐波上了。
在晶体上并联一个1M左右的电阻或者在XTAL1脚上串联一个100Ω左右的的电阻试试。 楼主可以看看这篇文章
历时四个月无法解释的,不可不说的M16 BUG
http://www.ouravr.com/bbs/bbs_content_all.jsp?bbs_sn=639392 http://pcscope.blog.163.com/blog/static/6116690620080115336791/
AVR单片机的内部振荡器的频率校正 2008-01-11 17:33
分类:原创 字号: 大大中中小小 Osccal是频率校准值,不能不重视
[ 2007-12-24 12:27:00 | By: pcscope ]
AVR系列单片机都有内部RC震荡器可以省去晶振很有使用价值,由于生产中的
的误差需要加入一个校准值来校正频率。这个值可以存入单片机的flash 或
eeprom中,在程序运行时再输入到Osccal中,RC震荡器就会按校正值工作了。
校正值是多少很重要,由于RC震荡器要受到温度和电压的影响,如果设置的
数值太临界,当时单片机可以正常工作,但是当电压或温度变化时频率超出了
正常的工作范围,将影响单片机的工作,比如串口通信就要出现乱码。
我设计了以下程序就是要确定这个修正值的。修正值的范围在1-255之间可以
调整的范围在0.5-1.5倍的标准频率,我将Osccal的值从1-255每个值都运行一
次,并向串口输出打印一次,如果频率超出了工作范围,输出的就是乱码,
只有频率在工作范围内才能打出正常的文字和当时所用的修正值,修正值
不是唯一的而是一串,大约有十几个,取中间值比较保险,如果取边上的
就不稳定,不了解这一点,你所做的设备可靠性就很差。
te1$regfile = "m48def.dat"
$crystal = 1000000
$baud = 9600
Dim X As Byte , S As String * 10
Dim Os As Byte
Dim I As Byte
Config Portb = Output
Print " Osccal" ; Osccal
Osccal = 145
Os = Osccal
Config Portb = Output
For I = 1 To 255
Portb = Not Portb
Osccal = I
Print "hello mega8 " ; Osccal
Waitms 250
Next I
End 仿真的时候程序容易跑飞,MCU与上位机通讯出问题的可能性很大.首先M16上16M已经是手册上给出的频率上限了,作为一个设计者应该留有余地,也别是大批量产品的设计.上8M,我建议你配置成和16M一样的熔丝位.按照手册配置8M的熔丝也是一个临界,振幅很低,容易被外界干扰不稳定,设置成手册上16M的熔丝位,振幅提高,同时也提高抗外界干扰能力.偷懒了,没看手册,熔丝位的说明各位将就. 本帖最后由 liudingding 于 2019-10-29 19:21 编辑
老兄,你的问题怎么解决的?我也碰上类似问题了,我用M12816M外部晶振,DRAGON仿真器,一条等待指令,最多两三秒钟就跑飞了,换成内部时钟或者外部8M晶振就没问题了,不接仿真器 没问题,电源退偶是0.1+2.2+10uF, liudingding 发表于 2019-10-29 19:20
老兄,你的问题怎么解决的?我也碰上类似问题了,我用M12816M外部晶振,DRAGON仿真器,一条等待指令,最 ...
这祖坟挖的的,都10年了,哎,avr都已经不知道死了多少年了 liudingding 发表于 2019-10-29 19:20
老兄,你的问题怎么解决的?我也碰上类似问题了,我用M12816M外部晶振,DRAGON仿真器,一条等待指令,最 ...
CKOPT 熔丝需要勾选 liudingding 发表于 2019-10-29 19:20
老兄,你的问题怎么解决的?我也碰上类似问题了,我用M12816M外部晶振,DRAGON仿真器,一条等待指令,最 ...
我你多年前使用 m128 - 16u 的单片机, 时钟频率使用 外部 16MHz, 现如今都已经正常工作了 好多年了, 而且还加入了 ucos-ii ,会场的稳定哟
熔丝位设置
UART0_printf("EXTENDED = 0x%X, HIGH = 0x%X, LOW = 0x%X \r\n ", 0xFF, 0x85, 0x3F); CKOPT 熔丝 要使能 换了几只16M晶体的都跑飞,是仿真时跑飞,本地电子商场没16M晶体,换了个14.7456M晶体不跑飞了,过几天买几只16M晶体看看怎么样 liudingding 发表于 2019-10-30 09:51
换了几只16M晶体的都跑飞,是仿真时跑飞,本地电子商场没16M晶体,换了个14.7456M晶体不跑飞了,过几天买几 ...
电压几V?
页:
[1]