連載
I2C回路の失敗例:配線長を伸ばしすぎるとどうなる?:Q&Aで学ぶマイコン講座(75)(2/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「I2C回路の失敗例。配線長を伸ばしすぎるとどうなる?」についてです。
I2Cで通信可能な最長配線長の確認方法
I2Cで通信可能な配線長を確認するために、異なる配線長で通信を行い、エラーが発生するかどうかを調べてみます(図1)
確認方法として、1台のマイクロコントローラー(マイコン)で2つのI2Cチャンネルを使用し、I2C1からI2C2へデータを転送して送信データと受信データが同一であるかどうかを調べます。今回は、前述した通信失敗の要因(3)クロストークの影響が分かりやすいように、I2CのSCL信号とSDA信号をツイストペアケーブルで配線します。実験用のマイコンとして、今回はI2Cポートを2つ以上備えた、STマイクロエレクトロニクス(以下、ST)の汎用32ビットマイコン「STM32G0B1」*1)を使用しました。
*1)https://www.stmcu.jp/stm32/stm32g0/
試験条件は以下の通りです。
使用ケーブル | Ethernetケーブル UTPカテゴリー6 |
---|---|
通信速度 | 400kHz |
I2C割当 | I2C1->マスター、I2C2->スレーブ |
SCL/SDAプルアップ抵抗 | 2.7KΩ |
確認用データ | 32byte、データの中身は全て0xAA |
スレーブデバイスのアドレス | 0xa |
データ転送方法 | DMAによる送受信 |
I2Cで通信可能な最長配線長の結果
試験結果は以下の通りです。
配線長 | 結果 | 波形 |
---|---|---|
10cm | OK | 図2 |
5m | OK | 図3 |
7.5m | NG | 図4 |
10m | NG | 図5 |
20m | NG | 図6 |
Copyright © ITmedia, Inc. All Rights Reserved.