找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1264|回复: 5
收起左侧

关于AVR单片机内部RC频率校正,求前辈们指点

[复制链接]
ID:656419 发表于 2022-6-3 04:32 | 显示全部楼层 |阅读模式
深刻认识到我的学习方法不对,我应该花费些时间从头一步一步脚踏实地的开始学习的,而不是像现在这样遇到的问题无数,,希望求得前辈们指点,我在这个问题上卡了太久了,急需校正单片机内部RC的频率。
单片机型号是MEGA128A单片机,需要校正的是内部4M的频率;
问题1:用烧录器读单片机,能读到一个内部RC校准的值,这个值是不是就是需要写到 OSCCAL的值?
88888888.jpg

问题2:如果我先烧录一个程序到单片机,再把这个读到的值写到FLASH中,是不是就能让程序把这个值写到 OSCCAL里?
如果我的想法是对的,哪位前辈能帮忙写一下这个程序?我百度了一下,发现几行程序就能搞定,,,拜谢!
相关资料https://zhidao.baidu.com/question/333747913.html

另外我在坛子里发现了一位前辈的程序,好像是用算法计算出来的校正值 然后写到OSCCAL里的,这个方法是不是更好?
http://www.51hei.com/bbs/dpj-202379-1.html
只是他写的是8M的频率校正,,如果我用于MEGA128A,4M频率  应该怎么改呢?

拜谢!拜谢!拜谢!
回复

使用道具 举报

ID:1031962 发表于 2022-6-3 13:57 | 显示全部楼层
AVR的内置RC振荡器并非完全不可以用于串行通信,但是前提是要校准。
说到这个校准,单单去读取它的校准字去校准并非万无一失,毕竟我试验过后发现校准了精度还不够。
如果非要用内部RC,并切要求可靠性高,那就用示波器去测,去调整。
说了这么多,其实最简单的方法就是用外部晶振,花了2毛钱,解决很多问题。
我的新版板子今天收到了,焊了一套,发现用外部晶振屡试不爽,舒服得很!
回复

使用道具 举报

ID:656419 发表于 2022-6-3 14:56 来自手机 | 显示全部楼层
电子狂人1 发表于 2022-6-3 13:57
AVR的内置RC振荡器并非完全不可以用于串行通信,但是前提是要校准。
说到这个校准,单单去读取它的校准字 ...

万分感激!我这就去试一试,,,4M晶振电容还是22pf吗??,,,
回复

使用道具 举报

ID:383215 发表于 2022-6-3 16:51 | 显示全部楼层
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振荡器和改用外接晶体的问题。
回复

使用道具 举报

ID:123289 发表于 2022-6-6 10:14 | 显示全部楼层
用内部RC做时基,仅适用于对频率精度要求不高的场合。
建议的校正方式:(为A机作RC校准的方法)
1、找到一个可以改变振荡频率的参数FN。在A机中写程序计算出这个参数FN。
2、先预估一个近似的FN。并以此为时基,从A机的IO口输出一串脉冲SP。
3、用另一个精准时基的单片机B,测试出A机SP的频率,并计算出它的误差,再将这个误差参过串口,回送给A机。
4、A根据串口得到的SP误差数据,修正FN数据,即大功告成。
回复

使用道具 举报

ID:383215 发表于 2022-6-7 12:15 | 显示全部楼层
楼主应该对自己电路的精度做个评估,看看单片机内部RC振荡器对电路究竟有多大影响,再来考虑是否需要校正RC振荡器,如果校正RC振荡器都达不到要求,再加晶体。我的电路有18B20、有串口通信,经过测试,ATMEGA8L和STC8H1K08完全达到要求,无需校正RC振荡器,我的电路里还有一个30分钟的定时,用计数可控硅过零触发脉冲解决了,相当于交流电的频率,这个精度的平均值低于晶体、高于RC振荡器,30分钟的平均误差几秒钟而已,也达到要求,我的朋友要求30分钟误差不超过一分钟就可以,这个要求实在太低,目前暂时不想研究如何校正RC振荡器。请楼主看看我测试单片机内部RC振荡器的帖子http://www.51hei.com/bbs/dpj-221508-1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表