« 超Low-EndマイコンRS08を使おう - MC9RS08KA2で音楽を奏でる (12) | メイン | MPLAB IDE V8.0インストール(前編) »

2線式 温・湿度センサSHT11 (2)


 今回は2線式通信のフォーマットやコマンドについて説明します。

 ところで筆者は、実験の際にブレッド・ボードなどに実装できるアダプタ基板を製作したので、それを紹介しておきます。市販の0.5インチ・フラット・パッケージIC用のピッチ変換基板でも代用できると思います。下に写真を示しますが、SHT11をはんだ付けした後にピン・プラグをはんだ付けすれば、ブレッド・ボードに実装できます。実際に使用するのは写真下側の4ピンのみです。

アダプタ基板のブレッド・ボード実装例

pic2-1.jpg

(1) コマンドの通信フォーマットの概要

 温度、湿度の測定コマンドの通信フォーマットを簡略化して描くと下図のようなっています(この図ではCRCは受信していない)。

drw2-1.jpg

  測定値のA-D変換値は8~14ビットですが、転送データとしては16ビットとして扱われ、上位8ビット、下位8ビットの順にスレーブ送信されます。2バイトのデータの後にCRCバイトがスレーブ送信されます。なお、この図では"NOACK"を"NAK"と表現しています。

 マスタは2バイトの測定データのマスタ受信時にはそれぞれ"ACK"(DATA="L")で応答しますが、最後のCRCバイトの受信時には"NOACK"(DATA="L")で応答します。なお、上図のように2バイト目の測定データ受信時に"NOACK"で応答すると、最後のCRCバイトのマスタ受信(スレーブ送信)を打ち切ることができあます。

 温度、または湿度の測定コマンドを8ビット送信した後は、ビット数に応じた変換時間がかかることに注意してください。この時間が経過した後でないと、測定結果は読み出せません。詳細は次に述べます。

 

(2) 湿度測定

 湿度の測定にはA-D変換などの処理時間が必要で、測定コマンドを送信してから、A-D変換のビット数に応じた変換時間を待つ必要があります。この変換時間は8ビット時には11ms、12ビット時には55ms必要です。A-Dコンバータのビット数はステータス・レジスタで設定できます。

 変換中はDATA信号はアイドル("H"レベル)になっていますが、変換が終了するとSHT11はDATA信号を"L"レベルにドライブします。ホストではこのDATA信号の立ち下がりエッジを検出してから、2バイトのデータ・バイトとCRCバイトを読み出す必要があります。

 測定したA-D変換値と実際の湿度は線形(直線的な比例関係)ではないため、リニアライズが必要です。次の式で実際の湿度値に変換できます(電源電圧5Vの場合)。

<12ビットの場合>
  湿度値 RHlinear = -4 + 0.0405×SORH - 2.8×10-6×SORH2

<8ビットの場合>
  湿度値 RHlinear = -4 + 0.648×SORH - 7.2×10-6×SORH2

※SORHは変換された湿度のディジタル値。この式には温度補償(温度による補正)は含まれていない。

 

(3) 温度測定

 温度の測定にはA-D変換などの処理時間が必要で、A-D変換のビット数に応じた変換時間を待つ必要があります。この変換時間は12ビット時には55ms、14ビット時には210ms必要です。A-Dコンバータのビット数はステータス・レジスタで設定できます。

 湿度の場合と同様、変換が終了すると、SHT11はDATA信号を"L"レベルにドライブします。ホストではこのDATA信号の立ち下がりエッジを検出してから、2バイトのデータ・バイトとCRCバイトを読み出す必要があります。

 次の式で測定したA-D変換値を実際の温度値に変換できます(電源電圧5Vの場合)。

<14ビットの場合>

  温度値 Temperature = -40 + 0.01×SOT

<12ビットの場合>

   温度値 Temperature = -40 + 0.04×SOT

※SOTは変換された温度のディジタル値。

 

(4) ステータス・レジスタへ書き込み

 ステータス・レジスタへの書き込みフォーマットは下図のようになっています。

drw2-2.jpg

 ステータス・レジスタではヒータのON/OFFと温度、湿度のA-Dコンバータのビット数の設定が可能です。A-Dコンバータのビット数は、湿度8ビット/温度12ビットまたは湿度12ビット/温度14ビット(デフォルト状態)の2通りから選択します。

 ステータス・レジスタ送信の際は、コマンドに続けてステータス・レジスタの内容を送信しますが、SHT11からは"NOACK"ではなく、"ACK"が返ってきますので注意してください。

 

(5) ステータス・レジスタからの読み出し

 ステータス・レジスタからの読み出しのフォーマットは下図のようになっています。この図ではCRC(チェックサム)を受信しています。最終データは"NOACK"(図では"NAK"と記述)で応答しています。

 

drw2-3.jpg 


SHT11 入手先: 有限会社ストロベリーリナックス

SHT11 メーカ: SENSIRION

 中尾 司

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/892

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1