stc单片机的内部R/C时钟误差太大
stc单片机的内部R/C时钟误差太大,两小时有-16.5的误差,跑快了,设置频率12M,读出来有12.011M,做了几块板子,时钟频率都不一样,有的有11.981M这么小的,就算是读出来的频率小于12M的定时也会快几秒,坑啊,还是换成外部晶振比较牢靠点。产品已经投下去200套了,这个时候出现这个问题,也是太无奈了,吸取教训。
是你自己挖的坑呀!
内部RC本来就1%左右的精度。 自己挖的坑,含着泪也要过去,测试的时候就测了几分钟,也没感觉出来 敢用RC来做时钟你也够胆,做时钟需要专门的时钟芯片,32768的晶振还需要外加电容微调。每台表还要用标准表来校
看似简单实则很麻烦 xxdcq 发表于 2017-9-21 11:36
敢用RC来做时钟你也够胆,做时钟需要专门的时钟芯片,32768的晶振还需要外加电容微调。每台表还要用标准表 ...
不是实时时钟 ,只是做一个两小时的工作计时,误差在10s之内 这是明显的设计问题,不怪stc 456good789com 发表于 2017-9-21 11:46
不是实时时钟 ,只是做一个两小时的工作计时,误差在10s之内
只要不要求精确没什么问题,两小时都等过来了也不在乎多那10来秒 本帖最后由 456good789com 于 2017-9-21 13:00 编辑
xxdcq 发表于 2017-9-21 12:40
只要不要求精确没什么问题,两小时都等过来了也不在乎多那10来秒
技术要求是2小时误差在10s内,偶尔有一两块会超过10s 那就不行了 对于使用者来说两小时误差十几秒是感觉不出来的,也不影响使用,但是如果拿去检测就不达标了 RC只用于精度无要求的场合 本帖最后由 datouyuan 于 2017-9-21 17:01 编辑
456good789com 发表于 2017-9-21 11:46
不是实时时钟 ,只是做一个两小时的工作计时,误差在10s之内
算是给楼主点经验教训。
内部RC时钟的精度在几MHz的情况下,精度最多能做到1%,这还得由厂家校准后才行。
在几百kHz或以下的情况下,精度一般是10%,意思是一个小时误差有6、7分钟的误差算正常的。
没有仔细看手册,上面写着±0.3%
关注这个问题的人应该很多,希望楼主能多测量一些(比如10台、20台,2、3个温度点),把数据分享一下。
我向版友咨询过能否用stc内部RC进行串口通信:https://bbs.21ic.com/icview-1665954-1-1.html
这点偏移还叫,,很多rc震荡的串口通信都有问题 内部有这么高的精度已经不错了,至少能用UART了,10年前玩PIC的时候是不可想象的,连SILICON的芯片也不能用RC玩UART xhtwork 发表于 2017-9-21 22:06
关注这个问题的人应该很多,希望楼主能多测量一些(比如10台、20台,2、3个温度点),把数据分享一下。
我 ...
串口通讯对时钟偏差要求是小于4.5%,这么低的要求,最差的内部RC时钟(MHz级)都可胜任。 456good789com 发表于 2017-9-21 20:47
没有仔细看手册,上面写着±0.3%
±0.3%是恒定温度下的。
这个是常识,不用看手册。所有mcu的内部RC性能都差不多。 这已经不错了,最早STC的内部RC,误差最大能到50%,只能算是有时钟,芯片能工作了,做串口通讯都是妄想。做最简单的蜂鸣器都变调严重。
本帖最后由 ddllxxrr 于 2017-9-22 16:02 编辑
我多说过一千遍了,形成产品时,一定要用外部晶振。你这么省,到底是为毛 datouyuan 发表于 2017-9-22 10:17
串口通讯对时钟偏差要求是小于4.5%,这么低的要求,最差的内部RC时钟(MHz级)都可胜任。 ...
确实有计算表明“串口通信对时钟偏差的要求是小于4.5%”,但计算是基于特定位采样方式的,我不清楚各种UART器件是否都如此。
另外,因为STC的手册编排看起来不是很严谨,所以我不敢无条件相信其数据的严谨性。虽然知道很多朋友用RC能正常UART,我还是用晶振了,胆小、那个项目pcb面积也不紧张。
页:
[1]
2