Translate

ページ

2015年5月31日日曜日

I²C延長実験(HRM1017+BME280+HDC1000)



結露モニタ プロトタイプ1(BME280とHDC1000使用)にて、LANケーブルを利用したI²Cの延長を試しましたが、何が起こっているのかをLabToolを使って調べてみました。
(真面目にバッファICを使って延長する方法は、NXPのアプリケーションノート(AN10658)。とっつきにくい場合はI²Cサンプルブックから。)

プログラムの動作を見る限りでは、何の違いもなく45mまで延長出来たように見えましたが、アナログ的には随分と状況が悪化していることが分かりました。

主たる原因はバスの容量の増加に伴う信号の立ち上がりの鈍化。
規格上のI²Cバスの容量の400pFですが、
Cat6ケーブルの容量は5~6nF/100m (1kHz)程度らしいので、500~600pF/10m。
現在の何の工夫もない状態では、高々10m位までで使うのが良いようです。

最初の公開時に言及していたリンギングは、測定方法に問題がありました。測定点のそばでGNDを確保したところ無くなりました。

このような状態で一見うまく動いているのは、たまたま、今回の組みあわせ(HRM1017+BME280)が良かったのかもしれません。
電圧降下は激しいので、少なくとも低電圧動作が可能なマイコン/センサの方がうまく動きそうな気がします。

mbed祭 2015@初夏の東銀座用資料

mbed祭 2015@初夏の東銀座で展示した、
「mbed HRM1017+BME280使用 結露モニタと LANケーブル利用I2C延長」
の資料です。

用意したプレゼンテーション資料です。うまく映せずすいませんでした。 

別途用意していた配布資料+回路図です。

HRM1017用のコードは以下で公開しております。


LabToolについて

LabToolはNXP社の光速ADコンバータ搭載マイコンLPC4370を使った簡易測定キットです。
詳しくは、以下のリンク先をご覧ください。

実験装置概要
回路とプログラムは結露モニタ プロトタイプ1(BME280とHDC1000使用)です。液晶表示装置を追加しています。
I²Cバス上のデバイスは、HRM1017を除いて4つ
LANケーブルの手前には、HRM1017そばにHDC1000と液晶表示装置、そのうちHDC1000に10kオームのプルアップ抵抗
LANケーブルの先にはBME280と液晶表示装置、それぞれに10kΩのプルアップ抵抗となります。

測定結果

以下に、バスの接続ケーブルを伸ばしていくにつれ、SCLシグナルがどうなっていくのかを記しています。(HRM1017側のSCLと、ケーブルの先のI²CバスのSCLを取得しています。)

ジャンパケーブル接続(数10cm)



2mのCat6 LANケーブル
少し信号がなまっている位で、あまり違いは見えません。



    7mのCat6 LANケーブル使用
    電圧降下、波形のなまり



    15m Cat6 LANケーブル使用
    さらに信号は悪化
    回路自体は動作している



    30m(15mLANケーブル2本連結)
    波形の悪化に伴い、動作周波数が勝手に50kHzに落ちている。クロックストレッチという現象が発生している?
    プログラム自体は正常に動作しているように見える。値も正常。



    45m(15mLANケーブル3本連結)
    30mの時と同様
    プログラム自体は正常に動作しているように見える。値も正常。




    0 件のコメント:

    コメントを投稿