メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

PukiWiki最新記事
[ リロード ]   [ ソース ]  [ トップ | インデックス | 単語検索 | ご意見、ご感想 ]

Counter: 12400, today: 1, yesterday: 3

ArduinoでI2C接続するときにSCL,SDAにプルアップ抵抗は必要か?

Arduino UNOなどでI2C接続するときにSCL,SDAにプルアップ抵抗を付けるように
ホームページなどで書いてる人がほとんどのようですが、これらの抵抗は、
Wire.hのライブラリを使っている限りは必要ないと思われます。

というのも、ハードウェアとしては、Atmega328Pのデータシートをみればわかるように、
プルアップ抵抗をON/OFFできるようになっており、ONになっていると
SDA, SCLがプルアップ抵抗Rpuの20KΩ(Min)〜50KΩ(Max)を介してVCCに接続されます。

また、Wire.hのライブラリをみると、

 // activate internal pullups for twi.
 digitalWrite(SDA, 1);
 digitalWrite(SCL, 1);

となっており、Wire.begin()が実行されるとプルアップされるのがわかります。

ということで、プルアップは必要ないですよね?
これらのバスは動作速度が遅いので内部プルアップに加え外部でプルアップしても問題ないと思われますが、
あえてする必要もないだろうし、実際にプルアップしなくても正常に動作してます。

   

ページコメント
投稿された内容の著作権はコメントの投稿者に帰属します。

トラックバック [ トラックバック(0) ]
トラックバック URL: http://myboom.mkch.net/modules/pukiwiki/tb/180