今回は安価に高精度を実現するMEMS発振器を紹介したいと思います。RTCの精度が悪い場合、RTCの時刻が頻繁にずれ、時刻調整やネットワークから時刻を取得する頻度を多くする必要があります。
マイコンで時刻や日付を保持するためのRTCを利用する場合、内蔵RTC機能を使用するか、外付けRTCを利用することになります。外付けの場合はRV-8803-C7やDS3231といった温度補正があるRTCを利用することで高精度に時刻保持することが可能ですが、部品が増え、コストが高くなりがちです。内蔵RTCの方が通信ラグがなく、比較的安価に実装することが可能です。ただし、精度は一般的な32.768kHz水晶発振子では20ppm前後とあまり期待できません。また、水晶発振子の外部負荷容量によっては更に精度が悪化する場合があります。一般的な水晶発振子の精度と時刻ずれの関係は下記の通りです。実際は昼夜の温度変化、季節の温度変化の影響、負荷容量によって更に大きくずれることが想定されます。
20ppmの場合、1年で11分前後
5ppmの場合、1年で3分前後
1ppmの場合、1年で30秒前後
今回は内蔵RTCで安価に高精度を実現する方法として、温度補正機能内蔵のMEMS発振器、SiT1552を紹介したいと思います。23年2月時点で1個200円~300円で温度補正機能を内蔵し、5ppmの精度を実現しています。データシートを見る限り、SiT1552AC-JEでは5ppm以内を謳っており、実力値としては1~2ppm前後あるようです。また、1.5V~3.63Vの広い電源範囲と1uA以下の消費電力でRTC用途にも最適です。
32.768kHzの水晶発振子を接続する代わりにXINにSiT1552のクロック出力を接続し、電源を供給して使用します。XOUTは未接続にします。マイコン側に水晶発振子か、発振器の設定パラメータがある場合は発振器に変更します。水晶発振子と異なり、MEMS発振器はそのままクロックが出力されます。そのため、負荷容量の調整や配線長を水晶発振子ほど考慮しなくてもよく、設計負荷が減ります。
SiT1552はCSPパッケージで非常に小さく、そのままでは扱いにくいため、ブレイクアウト基板を設計してみました。
実際にSiT1552を実装して、使い勝手が良ければまた、製品として提供を開始する予定です。今回は温度補正機能付きのMEMS発振器を利用することで比較的安価に内蔵RTCで高精度を実現する方法を紹介しました。内蔵RTCで安価に高精度を実現する方法として、今回紹介した方法の他にマイコン内蔵の温度計を使用して温度補正する方法もありますが、水晶発振子毎の温度特性のばらつきもあるため、調整が難しいのが難点です。RTCの部品を減らしつつ、より低コストに高精度を実現したいという場合に最適だと思いました。