2026年03月07日

I2Cカウンタ基板

ボタン押し回数や機器の使用回数、移動距離、ドアの開閉回数等、カウントして値を保持する場合に便利なのがカウンタICです。カウントICの中でもS-35770は24bitのバイナリアップカウンタでI2Cを介してカウント数を読み出すことが可能です。また、IC自体で0.01uAと消費電力も小さいため、電池で運用することも可能です。カウント信号の最大入力周波数は1000kHzで比較的高い周波数にも対応しています。

ただし、S-35770はカウントアップ専用で、カウントダウンすることはできません。また、I2Cを介してカウントデータを読み出すのみで、リセットすることはできません。なお、フリーレジスタ機能があり、カウント値とは別に3バイトの値を書き込み、読み出しすることが可能です。

S-35770のそのままの仕様ではリセットやLOOP(キャリーアウト信号)のIO状態をI2Cから取得や制御できないため、I2Cから制御可能なGPIO、PCA9536と組み合わせてI2Cを介して制御できるカウンタ基板を作成してみました。また、CR1220の電池を搭載することでカウント値を保持できるようにしました。

img1.jpeg

img2.jpeg



本基板はCR1220電池を搭載しているため、電源なしでカウント値の保持だけでなく、カウントも行うことが可能です。例えば、通常は本基板とスイッチ等(本基板のBATピンとCLKピンをスイッチに接続)を組み合わせてカウント数を本基板でカウントし、必要な時にマイコンと接続してカウント数を読み出すといった使い方が可能です。

なお、I2C GPIOを介してカウンタのリセット操作やLOOP信号の読み取りができますが、電池運用する場合は注意点があります。メイン電源を切る前にリセット信号のGPIOをデフォルトの入力に戻す必要があります。この理由として、GPIO出力のままの状態ではメイン電源が切られた際に電池でプルアップしているRST信号がLOWに引っ張られてカウンタがリセットされてしまうためです。この問題を防ぐためにI2C GPIOを入力状態にすることでRST信号がLOWに引っ張られることを防ぐことが可能です。

回路図やサンプルコード等はこちらで公開しています。また、スイッチサイエンスにて販売を開始しました。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック