STM32F10X的RTC时钟源有三种:HSE/128(外部的主时钟晶振), LSE(外部的32.768KHz晶振), LSI(内部8MHz时钟分频)。 1. LSI 手册上明确写了LSI源很不准确,大约40KHz(30~60KHz之间的某一个数值),精度是+- 1%~3%左右。所以没有采用。 2. HSE/128 手册上没有写这个时钟源的稳定性和精度。我采用了8MHz的HSE,128分频后得到64KHz的RTC时钟源。实际测量发现: 时钟源的频率是62498Hz。我的问题是: --- 为什么65535Hz的时钟源会变成62498Hz? --- 是不是每一个STM32F10X的MCU都有一个不同时钟源频率值? --- 这个时钟源的精度是否比32.768KHz的要高? --- 如何校准它? 3. LSE 对于外部的时钟源32.768KHz是很准确的,精度也很好。就是没有看懂它的校准方式。哪位大侠给讲讲。 --- 特别是,为什么这个时钟源的校准不需要外部的参考基准? 而仅仅是测频率查表就行了? |
RE:RTC时钟问题
1、8Mhz的晶振是以1000为单位计算的。8Mhz=8 000 000hz
2、STM32F10X的时钟源是根据用户设置来确定的,比如RTC,你可以使用内部时钟源,也可以使用主晶振,也可以用32.768Mhz的晶振。
3、我没有接32.768,我用的就是8Mhz的晶振,使用很好。
4、校准,是要设置对应的寄存器
二、 LSE
校准指的是内部自己校准,你只需要相应寄存器中的校准位设置以后,他会自己校准。
如果有回答错误的,请指教。
回复:RTC时钟问题
谢谢楼主,是我搞错了,我以为是乘以1024.现在搞清楚了。
不过在实际测试中,我以62500进行分频,还是有每三天少8秒的差别。
请问你有什么方法来校准这个时间吗?
RE:RTC时钟问题
我使用的是外部的RTC来校准的。