一、前言
在之前测试了DS3231这款时钟芯片,但是在其中对老化寄存器对输出频率进行补偿实验中,并没有看到补偿的效果。在 B站的朋友留言,建议对芯片寄存器修改之后,应该启动温度转换。这样才能够看到老化寄存器修改后时钟频率变化的效果。下面对此进行测量一下。
这是一块之前设计的电路板。上面集成DS3231,就在这个电路板上,对DS3231进行测试。
使用示波器测量DS3231第三中断管脚输出的方波信号,软件设置它的频率为 1024Hz,利用这个信号可以测量DS3231内部的32.768kHz的频率变化。
▲ 图1.2.1 DS3231 输出的 1024Hz的方波信号
为了提高测量精度,将输出方波信号的频率提高到 8192Hz,使用 FA-2 频率计测量这个信号的频率。这个频率计是我手边精度最高的频率测量设备了。可以看到现在DS3231输出的信号频率基本上变化在**千分之一赫兹*。
首先,在老化寄存器设置数值为 0 时,测量输出的频率为 8191.9842Hz。修改老化寄存器,将其修改为7F,然后 开启温度转换。之前一直没有做这个手工温度转换。此时,测量频率变化为8191.9393Hz,比之前小了0.0449Hz。接下来,将老化寄存器的数值修改为 FF,最高位是符号位,此时,对应的输出频率为 8191.9853Hz。
Old Register | Frequency |
---|---|
0 | 8191.9842Hz |
0x7f | 8191.9393Hz |
0xff | 8191.9853Hz |
0x80 | 8192.0424Hz |
最后,将老化寄存器的数值修改为 80,输出频率上升到 8192.042Hz。由此可见,通过手工开启温度转换,的确,老化寄存器的数值可以改变DS3231的内部频率,该寄存器数值为有符号8位整数。该数值越大,内部震荡频率越小,最大可以将频率数值变化 百万分之七左右。
本文测试了时钟芯片DS3231中的老化寄存器对于时钟频率的影响。需要在修改寄存器数值之后,启动内部温度转换才能够产生效果。最大可以将频率变化超过 7个ppm。最后感谢B站的朋友给出的建议,最终帮助我解开了前面遇到的困惑。
也反应了我对于DS3231技术文档没有仔细完全阅读。
B站朋友留言:关于DS3231的作用: https://www.bilibili.com/opus/1029766615953047556#reply254335255200
[2]测试 DS3231 时钟芯片: https://zhuoqing.blog.csdn.net/article/details/138816272
[3]DS3231时钟芯片: https://www.bilibili.com/video/BV1Kr421j7sy/?spm_id_from=888.80997.embed_other.whitelist&t=62.101568&bvid=BV1Kr421j7sy&vd_source=018fb56143bdd99e9082b03b2d65a531
[4]Extremely Accurate I2C-Integrated RTC/TCXO/Crystal: https://www.analog.com/media/en/technical-documentation/data-sheets/DS3231.pdf