SSブログ

PIC16F886--I2C-- S-5851A アセンブラ

SII社 S-5851A 温度センサーです
I2C で制御し温度センサーを読み出します
-40℃ ~ +125℃ の範囲の仕様です

DSCN0098

緑色の小さな基板がセンサーです秋月電子でたったの110円

DSCN0096

DSCN0097


先ずは動画です
センサーを指で触れてデータが変化している様子が確認出来ます
但しこれでは使い物に成りません、バイナリを10進変換し表示
しなければ全く意味を持ちません、単なる実験です




I2C-BUS 波形です
マニュアルが日本語なのでとても助かりました



回路図、センサー基板
本当にシンプル、殆ど外付け部品は有りません
ですが特筆すべきはスレーブアドレス設定端子のAD0 / AD1 です
これは Low / Hi  設定だけでは無くて Open  でも状態認識します
詰まり一つの端子で Low / Open / Hi の状態が在るので
スレーブアドレスはその分多く合計8個を同じBUS上に並べられるのです
bandicam 2018-12-25 20-43-36-864


回路図、PIC16F886ホスト(マスター)側の基板です
bandicam 2018-12-25 20-43-13-986

I2C BUS 波形の拡大です、波形の詳細説明は写真に写っています
信号の方向はマスターから見て RX=受信 TX=送信 です、特に
ACKは双方向なので要注意です
S=スタート・コンフィギュレーション、送信
P=ストップ・コンフィギュレーション、送信
SR=リスタート、送信
DATA=測温データ、受信
A=ACK、送信又は受信
NA=NACK、送信

最初はコンフィギュレーションレジスタのイニシャライズ
写真の波形の詳細説明、間違ってます、正しくは
 S →  0x90 →  A →  0x01 →  A →  0x00 →  A →  P   全送信(TX)
DSCN0101

DSCN0102

次は測温データレジスタの読み出し

DSCN0103

DSCN0104

DSCN0105

お仕舞いは カレントリード です
これは連続して読み出す場合 0x91  を書くだけでデータが読み出せます
簡易的にして効率化を図っているのですね

DSCN0106

DSCN0107

波形を観測していて気が付いた点があります、それは測温データの
読み出し一回目は必ず 0x00 0x00 が返って来るという事です
言い換えれば測温データは前回のデータを記憶していてデータが

読み出されるとリフレッシュされる、と言い換えられます、詰まり
電源オンで一回目の読み出しはゼロクリアされた測温データが残って居て
それを読み出して初めて新鮮な測温データが書かれるという事です

温度レジスタ構成です、マイナス側に注目ですね
bandicam 2018-12-25 23-45-16-115

ソースコード等のファイルですがこのブログにアップロードすると
矢鱈に画面が縦長に成ってしまうのでダウンロード出来るように
アップロードしました、こちらからダウンロードして下さい。

素人プログラムなので笑われるのは覚悟です、が、これに依るトラブル
等は一切関知致しません、遊びの範囲でご利用下さい。



nice!(0)  コメント(0) 

PIC16F886--I2C-- S-5851A アセンブラ

SII社 S-5851A 温度センサーです
I2C で制御し温度センサーを読み出します
-40℃ ~ +125℃ の範囲の仕様です

DSCN0098

緑色の小さな基板がセンサーです秋月電子でたったの110円

DSCN0096

DSCN0097


先ずは動画です
センサーを指で触れてデータが変化している様子が確認出来ます
但しこれでは使い物に成りません、バイナリを10進変換し表示
しなければ全く意味を持ちません、単なる実験です




I2C-BUS 波形です
マニュアルが日本語なのでとても助かりました



回路図、センサー基板
本当にシンプル、殆ど外付け部品は有りません
ですが特筆すべきはスレーブアドレス設定端子のAD0 / AD1 です
これは Low / Hi  設定だけでは無くて Open  でも状態認識します
詰まり一つの端子で Low / Open / Hi の状態が在るので
スレーブアドレスはその分多く合計8個を同じBUS上に並べられるのです
bandicam 2018-12-25 20-43-36-864


回路図、PIC16F886ホスト(マスター)側の基板です
bandicam 2018-12-25 20-43-13-986

I2C BUS 波形の拡大です、波形の詳細説明は写真に写っています
信号の方向はマスターから見て RX=受信 TX=送信 です、特に
ACKは双方向なので要注意です
S=スタート・コンフィギュレーション、送信
P=ストップ・コンフィギュレーション、送信
SR=リスタート、送信
DATA=測温データ、受信
A=ACK、送信又は受信
NA=NACK、送信

最初はコンフィギュレーションレジスタのイニシャライズ
写真の波形の詳細説明、間違ってます、正しくは
 S →  0x90 →  A →  0x01 →  A →  0x00 →  A →  P   全送信(TX)
DSCN0101

DSCN0102

次は測温データレジスタの読み出し

DSCN0103

DSCN0104

DSCN0105

お仕舞いは カレントリード です
これは連続して読み出す場合 0x91  を書くだけでデータが読み出せます
簡易的にして効率化を図っているのですね

DSCN0106

DSCN0107

波形を観測していて気が付いた点があります、それは測温データの
読み出し一回目は必ず 0x00 0x00 が返って来るという事です
言い換えれば測温データは前回のデータを記憶していてデータが

読み出されるとリフレッシュされる、と言い換えられます、詰まり
電源オンで一回目の読み出しはゼロクリアされた測温データが残って居て
それを読み出して初めて新鮮な測温データが書かれるという事です

温度レジスタ構成です、マイナス側に注目ですね
bandicam 2018-12-25 23-45-16-115

ソースコード等のファイルですがこのブログにアップロードすると
矢鱈に画面が縦長に成ってしまうのでダウンロード出来るように
アップロードしました、こちらからダウンロードして下さい。

素人プログラムなので笑われるのは覚悟です、が、これに依るトラブル
等は一切関知致しません、遊びの範囲でご利用下さい。



nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。