OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4751|回复: 0

关于STM32F103系列单片机的RTC模块不起振或起振不正常的实验及解决尝试

[复制链接]

10

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2017-3-15
在线时间
45 小时
发表于 2017-12-19 15:47:43 | 显示全部楼层 |阅读模式
本帖最后由 Taven 于 2017-12-19 16:09 编辑

   最近迷恋上了0.96寸的OLED显示模块,琢磨着要显示点什么,忽然想起了STM32F103系列的单片机自带有个RTC模块,于是便想做个小万年历在上面显示。   效果如下:  
   IMG_20171219_151000.jpg
  OLED的显示部分代码参考了正点原子的例程,当然还有RTC部分。但是开始的时候并不是一帆风顺。
  先介绍一下我的单片机环境吧,显示模块就不说了,使用的是4线的SPI,如上图。使用的单片机是STM32F103C8T6,最小系统板,如下图:
IMG_20171219_151004.jpg
可以说这个是很便宜了,也很小巧,一直比较喜欢这类的小模块,我甚至用它做过了飞控。
下面说到重点了,呵呵呵,这个RTC的秒中断函数,几乎是4秒进一次,对,你没有听错,是4秒!,我手抓住单片机板子的排针,就正常,一放到桌上就慢了,如果放到笔记本电脑上也正常走一秒的时间,怪不怪???我第一时间尝试的是吧32767的分频系数改为8192,但是这还是有误差的,毕竟不是被4整 除,我开始怀疑是不是晶振质量问题。因为看着这塑料晶振就感觉不靠谱(下左),手上正好还有一块最小系统板,用的是爱普生的FC-135(下右),走了一夜,不差一秒。
IMG_20171219_152134.jpg IMG_20171219_152624.jpg
但后来又想,质量差,也不至于差这么多吧,毕竟一秒变四秒,有点夸张了,网上搜罗了一大堆,都在抱怨,都是说的莫名其妙的好了,或者坏了。没有办法,只得继续看原理图,看了几分原理图,包括正点原子的战舰开发板,能用的那个最小系统和不能用的那个最小系统,发现差距在:8M的晶振上都有并联电阻,正点原子的并联1M的,而那个能用的最小系统并联了10M的电阻,如果上图传的清晰地话,可以看到一个106的电阻。于是,就立即去在那块不能用的板子上并联了个10M的电阻到8M晶振上,哈!果然好了,欣喜万分,调了调剩余的程序,准备找个手机充电头供电测试一段时间的准确性,毕竟插笔记本USB口比较妨碍使用电脑,不小心碰着了掉电时间就丢失了,最小系统板上没有备份电池。然后真正奇葩的事情来了!差充电头上又是2秒走一下!!我拿过来查电脑USB口就正常。。。。。,我立即去再串了个10M,走的快了些。。。。突然我在想,这RTC走时和8M 晶振有个毛的关系啊(之前是以为两晶振这么近会有干扰),为什么不直接吧10M的电阻并联到32.768晶振上。瞬间,走时快慢和我的手,电脑USB口,充电头子再也没有关系了!
目前正在测试走时的误差,可能我这个方法不是最有效的,但是还是值得有同样问题的朋友尝试一下,最后,对于想要长时间计时准确的朋友,可以考虑搭配一个GPS模块,程序定期的自动校准一下。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-24 00:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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