製作中の温度ロガーですが、内蔵時計 (RTC: Real Time Clock) をプログラムで実現しています。WDT (Watch Dog Timer)で、1秒毎のインターバル割り込みでカウントアップさせ、すぐさまLPM3モードに移行させる事で、コイン電池(CR2032)での長期間動作が可能になっています。 この時計、遅れ/進みはあります。
MSP430は、32K水晶の負荷容量をチップに内蔵しています。またその容量値をレジスタ設定で4種類に可変出来ます。
5pFの設定にしたら、一日あたり5秒ほど遅れる時計になりました。そこで、1pFに設定を変えた所、今度は一日5秒位進む時計になりました。
さて、アイデアですが、この状況で、例えば毎日 12時間だけ5pFに設定し、次に12時間 1pF設定にすれば、遅れ・進みは相殺されて、トータルとしては見かけの時計精度を上げられるのではないでしょうか?
水晶発振回路の負荷容量は、一般的に発振余裕度を考慮して、回路とのマッチングを見た上で決定します。コロコロ変えるなどとんでもない。と、教科書的な答えとしてはそうです。しかし、趣味の電子工作ならば、試してみても面白いのではないでしょうか。
この疑問、TI の e2e コミュニティの英語の方で質問しています。
Can I change XCAP setting while running MCU ?