RTC8564NB + PIC 24FJ64GA002使用のデジタル・クロック
投稿日 2026年07月26日

RTC8564NB(左)と温度センサーのADT7410 モジュール
背景は秋月電子が提供しているRTC8564NBとADT7410の資料
RTC8564NBはどんなRTC?
RTC8564NBは秋月電子でも販売されているI2CインターフェースのRTC(リアルタイムクロック)です。ブレッドボードなどで使いやすいよう8ピンDIP化したモジュールで、今日現在800円となっています。(ただし生産は終了しているようです。) 内部に高精度の32.768KHz発振部を持っています。時計のほかにアラーム機能、カウントダウンタイマー機能を持ち、クロックピン出力は32.768KHz、1024KHz、32Hz、1Hzを選べます。アラーム機能は曜日、日、時、分が可能で、それぞれ独立で設定可能です。カウントダウンタイマー機能は、4096Hz、64Hz、1秒、1分を256カウントするカウントダウンタイマーです。途中で止めることもでき、その時のカウンター値を読み込むこともできます。リピート動作も可能です。アラーム機能、カウントダウンタイマー機能ともに割り込み信号はオープンドレインでピンに出すことができます。残念ながら温度センサーは内蔵していません。時刻補正情報はデータシートに記載されているので、別途温度センサーを用意して補正する必要があります。(後述) その他、うるう年機能を持っています。24/12切替は無く24時間式固定、30秒リセットもありません。動作電圧範囲は1.8Vから5.5Vです。
I2Cインターフェースは400KHzで問題なく動作しました。データシートを参照して各レジスタにデータをセットすれば間違いなく動きます。0x00から0X0Fまでの16個のレジスタに必要な値をセットします。時分秒等をレジスタに書き込むときは、STOPビットを1にしてから行い、書き込みが終わったらSTOPビットを0にします。さして難しいところはありません。
ADT7410温度センサー
前述のようにRTC8564NBには温度センサーが内蔵されていません。このため温度補償をする場合は、別途温度センサーを用意しなければなりません。今回は温度センサーにADT7410を使用しました。高精度・高分解能 I2C・16Bit 温度センサーでこれも秋月電子で購入可能です。今現在600円です。ブレッドボードで使いやすいようにモジュール化されています。

ブレッドボードの左端にADT7410、その隣にRTC8564NB、PIC24FJ64GA002
前回のRTC4543SA使用のデジタル・クロックを改造
前回RTC4543SA使用のデジタル・クロックを作成しましたが、今回はそのRTC4543SAをRTC8564NBに置き換え、ATD7410を追加。表示機能やボタン等はそのまま流用しました。RTC4543SAは独自のシリアル・インターフェースでしたが、RTC8564NBはI2Cインターフェースです。主な改造はその辺りです。RTC8564NBはアラーム機能とカウントダウンタイマー機能を搭載していますが、今回それらは使わず、プログラムで対応しています。RTC4543SA使用のデジタル・クロックについては以下を参照ください。
RTC8564NBの温度補償
RTC8564NBのデーターシートを見ると、室温25℃を中心に負の温度特性を持っています。つまり源発振器である32.768KHzのクロックは、室温が25℃から上がっても、下がっても低く(遅く)なる傾向。つまり時計が遅れる傾向があります。

RTC8564NBのデータシートに掲載の周波数温度特性例
25℃辺りを中心に負の温度特性になっている
この図によると(1)の任意の温度における周波数差ΔfTは ΔfT= α(ΘT-ΘX)^2 で近似できるとのことです。ここでαは2次温度係数 約-0.035 x 10^-6、ΘTは頂点温度 約25℃、ΘXは任意の温度です。(2)の周波数電圧特性は電源電圧3.3V辺りで0ですし、あまり変動しないので無視します。
毎秒ΔfT= α(ΘT-ΘX)^2を計算して累積します。一日(86400秒)で1秒遅れになる温度差は約±18.185℃で、ΔfTは11.574 x 10^-6です。つまり25 - 18.185 = 6.815℃、または25 + 18.185 = 43.185℃の室温が一日続けば1秒遅れるので、+1秒補正しなければなりません。実際には室温は刻々変化するので、その温度差でのΔfTを累積し、誤差が1秒になったら+1秒補正することになります。
EPSONのホープページでRTC用の便利ツール(エクセルシート)が用意されており、上記のシミュレーションが簡単に行えます。温度等は整数でしか入力できません。

EPSONのRTC用便利ツールの時計精度 vs 温度特性の計算エクセルの画面
室温44℃を入力すると1日で約1秒遅れる計算になる
これで計算してみると、室温44℃または6℃のとき25℃から約±19℃の温度差となり、その温度差が続けば計算結果は1日で-1秒(遅れ)となります。中段は発振器の周波数誤差をppmで入力する場合です。下段は経過日時と発生誤差から発振器の周波数誤差をppmで求める場合です。いずれにしても整数でしか入力できないので、あまり正確な値は期待できません。

初夏の一日。ありそうな室温変化が約1.9ヶ月続くと1秒の遅れが生じる
このような一日の温度変化が約1.9ヶ月続けば約1秒の遅れが生じることになります。
(JF1VRR)
