私は時間を維持する予定のATMegaプロジェクトに取り組んでおり、ソフトウェア時間(millis()ベース)、DS1307、またはDS3231(ChronoDot)RTCのオプションを選択できるようにしています。
最も基本的に、私がやりたいのは、はんだ付けに使用できるChronoDotのヘッダーを用意し、ソフトウェアでなんとかしてChronoDotが接続されているかどうかを検出し、それを使用するように切り替えることです。通常、DS1307またはDS3231が同じI2Cレジスターを使用しているため、DS1307またはDS3231が存在することを確認するのは簡単ですが、最初の確認後は少しずれ、後者にはより多くの機能があります。したがって、どちらが接続されているかを判断したいと思います。一般的に、私はデフォルトのオプションとしてDS1307をはんだ付けするためにボード上に直接配置することを計画しており、DS3231サポートはデュアル4ピンヘッダーを介してのみ完全なChronoDotを使用します。ChronoDotは基本的に、DS1307が通常行く場所に適合します(この場合は装着されません)。私が特にChronoDotに焦点を合わせている主な理由は、普及しており、入手が簡単で、エンドユーザー(これはキットの場合)にSMDはんだ付けを必要としません。だから、これが私が考えていることです...
DS1307とDS3231はどちらもチップにVbatラインがありますが、実際には何も必要ありません。ただし、ChronoDotにはブレイクアウトボード上に実際のVBatピンがあります。DS1307ではなくChronoDotヘッダーからVbatのみを接続して、それをATMegaのデジタル入力ピンに接続することができます。しかし、その入力ピンは抵抗によってグランドにプルダウンされていますか(本当にどの値なのかわかりません...おそらく4.7k?)。私のEE理論が正しければ、そのピンを読み取ることができます。ローになった場合、クロノドットはありませんが、クロノドットはあります。
このようなもの:
この回路のシミュレーション – CircuitLabを使用して作成された回路図
ここでの私の主な質問は、これを行うと、RTCのバックアップバッテリーが消耗してしまうかどうかです。通常、メインの5V電源が供給されている間はバックアップバッテリーから電流が引き出されませんが、これをデジタル入力に接続すると、常にバッテリーから電力が引き出されますか?または、いわばピンを「切断」するために、ピンを読み取った後にピンを挿入する必要があるモードはありますか?出力に変更できることはわかっていますが、出力とローに設定されている場合、基本的にはバッテリーを接地していると思います。
とにかく、私のEEコースはずっと前のことです。ここでの理論に関するどんな助けもいただければ幸いです。