楼主应该对自己电路的精度做个评估,看看单片机内部RC振荡器对电路究竟有多大影响,再来考虑是否需要校正RC振荡器,如果校正RC振荡器都达不到要求,再加晶体。我的电路有18B20、有串口通信,经过测试,ATMEGA8L和STC8H1K08完全达到要求,无需校正RC振荡器,我的电路里还有一个30分钟的定时,用计数可控硅过零触发脉冲解决了,相当于交流电的频率,这个精度的平均值低于晶体、高于RC振荡器,30分钟的平均误差几秒钟而已,也达到要求,我的朋友要求30分钟误差不超过一分钟就可以,这个要求实在太低,目前暂时不想研究如何校正RC振荡器。请楼主看看我测试单片机内部RC振荡器的帖子http://www.51hei.com/bbs/dpj-221508-1.html |
用内部RC做时基,仅适用于对频率精度要求不高的场合。 建议的校正方式:(为A机作RC校准的方法) 1、找到一个可以改变振荡频率的参数FN。在A机中写程序计算出这个参数FN。 2、先预估一个近似的FN。并以此为时基,从A机的IO口输出一串脉冲SP。 3、用另一个精准时基的单片机B,测试出A机SP的频率,并计算出它的误差,再将这个误差参过串口,回送给A机。 4、A根据串口得到的SP误差数据,修正FN数据,即大功告成。 |
MEGA128用的很少,MEGA8用的比较多,其次是MEGA16,MEGA8用内部RC振荡器,无论是18B20还是串口通信,都已成功,目前没有发现问题。我认为降低RC振荡频率和降低通信速率,单片机应该更加稳定,所以MEGA8仅用1兆RC振荡器,通信速率也很低,由于AVR单片机价格高的离谱,被迫使用STC8系列,准备替换MEGA8,也只用1兆RC振荡器,由于有的STC8HIK08的1兆RC振荡器无法使用,被迫把RC振荡器的频率提高到1.2兆,AVR单片机除了抗干扰能力略高于STC单片机,其它方面已经没有优势,我用了十几年的AVR单片机,现在准备放弃了,能替换MEGA128的STC单片机也很多,只要在抗干扰能力方面要求不是很高,就没有问题。至于单片机内部RC振荡器,也就是受电压和温度影响最大,不是电池供电,电压没有问题,剩下的就是温度了,过段时间我准备做个简易恒温箱,实际测试一下不同温度对AVR和STC单片机的内部RC振荡器到底有多大影响?然后再来考虑是否需要校准内部RC振荡器和改用外接晶体的问题。 |
电子狂人1 发表于 2022-6-3 13:57 万分感激!我这就去试一试,,,4M晶振电容还是22pf吗??,,, |
AVR的内置RC振荡器并非完全不可以用于串行通信,但是前提是要校准。 说到这个校准,单单去读取它的校准字去校准并非万无一失,毕竟我试验过后发现校准了精度还不够。 如果非要用内部RC,并切要求可靠性高,那就用示波器去测,去调整。 说了这么多,其实最简单的方法就是用外部晶振,花了2毛钱,解决很多问题。 我的新版板子今天收到了,焊了一套,发现用外部晶振屡试不爽,舒服得很! |