PICで気圧、温度、湿度計 by 24FJ64GA004 その9
RTCC機能を校正する?


PIC24FJ64GA004でRTCCの精度が悪かったのは、PIC24FJ64GAシリーズのRTCC用外部発振回路は、システムクロック用の外部発振回路に比べて、非常にセンスティブで有り、ハードウエアが持っている浮遊容量に大きく左右されていたのが原因でした。

PIC24FJ64GA004は表面実装のQFP(44ピン)0.8mmピッチで、変換基盤を通じて1つ目基盤に配線しています。RTCC用の外部サブ発振回路の配線が必要以上に長くなり過ぎていたのです。

そこで、バイパスコンと同様に、表面実装のQFP(44ピン)0.8mmピッチの足を変換する基板上へ、32.768kHzの水晶と、R4(100k),C9(15pF),C10(15pF)を移設した所、大変良好になりました。

 
変更前。中央の変換基板の右上の部分に銀色の水晶とR4,C9,C10が見える。
変更後。中央の変換基板上に水晶とR4,C9,C10を配線を短くする為に移設。

なお、上記写真で時刻と気圧の表示の間にある「25」という数値は、気温と相対湿度%から算出した近似RBGT現在値です。25であればパソコン等の軽作業が可能です。

RTC専用IC等を使えば簡単に精度の高い時刻を得られ、餅屋は餅屋と云う事はよく判っているのですが、28ピンのPIC24FJ64GA002のRTCC機能でも多少難が有ったとは言え、15pFで大変良好(月差数秒)に動作しているので、同じシリーズのPIC24FJ64GA004のRTCC機能をどうしても諦めきれなかったのです。

現在は、PIC24FJ64GA004もPIC24FJ64GA002のC9,C10と同じ15pFで良好のようです。というのも、いままでCを変更しながら調整してきましたが、今度の移設後には、始めて時間が進まずに、遅れる様になったからです。

なお、R4(220k)は安定した発振を得られる為には必要です。これが無いと、途中で32.768kHzの発振が止まってしまう事が有ります。

いままでは、Cをいくら変更しても進むばかりで、RTCCの数値補正可能な範囲内にすら入らず、マイナス補正の最大値を入れても、進んでしまいどうにもなりませんでした。

今回は、マイナス補正値最大で遅れて、補正ゼロで進む様になったので、様子を見ながらやっと正しいRTCC校正用補正値を入れる事が出来そうです。後は、温度等による安定度です。

RTC専用ICには精度は勝てない様な気もしますが、せっかくRTCC機能を持っているのに、外部にRTCを積んでしまうのもちっと悲しくて。

でも、現状の回路で24FJの電源を落としてしまうと、RTCC専用のバックアップがないので、時計が初期値に戻ってしまいます。

これを改善するのは、PIC24FJ64GA004への電源は配線を分離してしまい、他の回路だけが切れる様にし、他の回路への電源OFF時には、PIC24Fを強制的にスリープにしてしまえばいいのです。

データーシートによれば、PIC24FJのRTCCは、スリープ状態でも他の機能やI/Oとは独立してサブ発振回路を動作させて、
時刻をカウントをし続ける事が可能な仕様になっているのです。

事実、現状のAir3では、PIC24FJ64GA002も、PIC24FJ64GA004も供に、計測完了待ちの間はPICをスリープさせて、RTCCのみで動かしています。

これは、16F886や16F1938等の省電力Air3が27日間単三アルカリ電池で駆動できるのに対向して、高機能のPIC24FJの必要電力を極力抑えて、バッテリー駆動で3週間という連続稼働時間を得る為でした。

PIC24FJ内部の他の部分は、スリープ時には、システムクロックが停止し、ウェイクアップ用の設定端子以外の、全てのI/Oへの電力が遮断されるのです。余分なバッテリーバックアップ回路は不要です。

ここまで改造をすれば、電源を切ってもPICはスリープ状態でRTCCのみで細々と生き残り、電源ONで正しい時刻を継続して表示できる様になります。

という、計画だったんです。伏線が長ーい!ようやく忘れていた本来の目的を思い出しました。(って、おいおい、忘れていたのかい!)(Jul. the 11th 2011)

 

注意事項
General disclaimer
トッ プページへ

なお、当ホームページで公開しているデーター(写真、音声)等を個人の枠を超えて複製・転用する事はご遠慮下さいませ。
ご意見/苦情/ご感想はこちらまで