検索
連載

I2C回路の失敗例:配線長を伸ばしすぎるとどうなる?Q&Aで学ぶマイコン講座(75)(2/3 ページ)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「I2C回路の失敗例。配線長を伸ばしすぎるとどうなる?」についてです。

Share
Tweet
LINE
Hatena

I2Cで通信可能な最長配線長の確認方法

 I2Cで通信可能な配線長を確認するために、異なる配線長で通信を行い、エラーが発生するかどうかを調べてみます(図1


図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
左=図2:試験結果 10cm OK/中央=図3:試験結果 5m OK/右=図4:試験結果 7.5m NG[クリックで拡大]
左=図5:試験結果 10m NG/右=図6:試験結果 10m NG[クリックで拡大]

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る