PIC16F19155のRTCCには、RTCCをキャリブレーションできるレジスタ RTCCAL があります。 これは、SOSCのカウントを 1分間に4パルスづつ校正できるレジスタです。
このRTCCALレジスタに1を設定すると 2.0345ppm 校正でき、これは月差で5.27秒程度になります。 適正なキャリブレーション値を設定すれば、月差2.7秒程度まで校正出来る事になります。
計算のもとになる数値は下記の通りです。
- SOSC(RTCC)周波数 32.768 kHz
- 1日 1440 分
- RTCCAL値 1bitで1分に4パルス 校正できる。
上記をもとに1日に校正可能な秒を計算すると、、
- 4パルスの校正秒/日=1440分÷(32.768kHz × 1000) × 4パルス
つまり4パルスで一日あたり、 0.17578125 秒/日 校正できることになります
1日に1秒 を校正するには、
- 1秒÷ 0.17578125 = 5.6888 RTCCAL値 設定すれば良い事になります。
※RTCCAL値 1 = 4パルス
以上をもとに例えば、5日で3秒ズレた場合の RTCCAL 値は、
- 5.6888 × 3秒 ÷ 5日 = 3.413333333 RTCCAL値 を設定すれば良いことになります。
上記の考えを元に、時刻合わせをするたびにRTCCAL値を計算するロジックを組み込みました。 ひと月ごとに何度か時刻合わせをすれば、自動でキャリブレーションがかかるのではないかと考えています。
20210301(+8h)
0 件のコメント:
コメントを投稿