macsbug

Just another WordPress.com site

ESP8266 の プルアップ抵抗

with 5 comments

ESP8266 の I2C プルアップ抵抗について。               2016.02.10

I2C のプルアップ抵抗はどのような意味があるのか 信号を観測しよう。
接続ピンは、SDA = GPIO_5 、SCL = GPIO_2 で調べました。

基本:ESP8266のI/OはOpenです。つまり外付けにプルアップ抵抗が必要です。
現実:抵抗無くとも動きますが、環境によって不安定 又は 動かなくなります。
_  手などを触れると 異常動作したり 動かなくなります。
理由:ESP8266にプルアップ抵抗を繋がなくとも動いていた理由は、
_  接続した I2C OLED( OLEDから供給) があるからナントカ動いていた。と言う訳。

特徴:I2Cは 電源,GND,SDA,SCLの4本で複数接続できるのが強みです。(カスケード接続)
_  ESP8266は使いこなしてくるとI/O数が少なくなる為、I2Cの利用が便利です。

 I/O の入出力はオープン。
FETがONしVbusが 0Voltになる。
外部に抵抗(Rp)を入れる事により
電流が流れる。
RpとCb(Bus Capacitance)に
より遅れが発生する。
 I/O の入出力はオープン。
FETがOFFしVbusに電圧がでる。
外部に抵抗(Rp)を入れる事により
電流が流れる。
RpとCb(Bus Capacitance)に
より遅れが発生する。

波形を見るとあきらかです。

 ❌
I/O 端子に
プルアップ抵抗無し(∞)。
立ち上がりの鈍りが大きい。
小さい波形はスレシュホルド値
より低いので動作しない。
 ❌
I/O 端子に
プルアップ抵抗無し。
OLEDを接続。
OLEDからの電力(抵抗)により
ナントカ動いている状態。
 ⭕
I/O 端子に
1KΩのプルアップ抵抗を接続。
OLEDを接続。
より安定した動作。
 上記の拡大波形。

スパイクは他の要素(L成分)がある。


基本と計算:

TIのI2C Bus Pillup resistor calculation によると
電源3.3Vでは、Rp(Minimum Pullup resistance)は、約1KΩ である。
Cb(Bus Capacitance)=200pFの時、Rpは、min=966.667Ω~max=1.77KΩ。
計算式:MAX=(300x10E^-9)/0.8473*200*10E^-12=1.77KΩ。
_   MIN=(3.3-0.4)/(3E^-3)=966.667Ω。

I2C接続の速度(100kps,400kbps)や容量(200pF,400pF,550pF)に依存した
「RC遅れ」を計算し速度と消費電力を考えましょう。


事例:

ESPRESSIFには基本が書かれています。
[Release Date 20160206] [Document list 0A-0D] ESP8266 Hardware Guide
I2Cの回路は以下に書かれて、I2Cのプルアップ抵抗は 2.2KΩ。
0B-ESP8266__System_Description__EN_V1.4_20160203
20/27 Page  Figure 2-2: ESP-LAUNCHER interface schematics


Sparkfun の事例は、2.2KΩ。
SparkFun ESP8266 Thing


hallard氏の事例は、4.7KΩ。WifInfo : Wifi Teleinfo server


参考:
pic KnowHow:I2Cモジュールの使い方:基本から解りやすく書かれています。
Texas Instrument:I2C 概要:カスケード接続。

趣味の電子工作の部屋byすん:I2Cバス仕様書:I2C規格の詳細。
ESPRESSIF:[Document list 8A-8Q] ESP 8266 Interface Reference
_ ESP8266 I2C User Guide:8C-ESP8266__Interface_I2C__EN_v1.0.pdf


メモ:
修正や新しい内容は随時追加する事とします。
ESP8266はI/O数が少ない為に、I2Cで構成するとシンプルになる。
_ I2C として基板に4本の I2C BUS をもうけた基板だと便利でしょうね。
_ ただし、I2C BUS なる物は配置が規格化されていない為に不便です。
_ 部品の方でも同じ配置になっていない物があります。
_ I2C の IC も出ていますので、これで構成すると全体がすっきりした物になるでしょう。
_ 例:I2C OLED, I2C Temp,Humi,Pressure IC,I2C ADC,I2c Timer, I2C EEROM,,,。


Written by macsbug

2月 8, 2016 @ 5:47 pm

カテゴリー: ESP8266

コメント / トラックバック5件

Subscribe to comments with RSS.

  1. I2Cのプルアップについては前から気にはなっていたのですが、オシロで立ち上がりなど見ればいいのですね。

    1年後くらいにI2Cのデバイスを扱うことになりそうで、2.2kΩか4.7kΩのプルアップにするかを決めることになりそうです。その際にはこの記事を元に自分でオシロ測定をしようと思いました。

    7of9

    2月 11, 2016 at 6:07 am

    • 7of9さん、ブログ見に来ていただきありがとうございます。
      7of9さんの UDP通信とグラフ表示に大変興味があり、これまで、どうやったらいいのか解らずでした。じっくり読んで実現したいと思っています。

      macsbug

      2月 12, 2016 at 2:50 am

      • UDP通信とグラフ表示に興味を持っていただきありがとうございます。
        不明な点はメールやQiitaのコメントなどでお聞きください。ご遠慮なく。

        7of9

        2月 15, 2016 at 3:19 am

    • 7of9さん、再度しらべてみますと以下の記載もありました。
      ここでは、2.2KΩ。
      ESPRESSIFには基本が書かれています。
      [Release Date 20160206] [Document list 0A-0D] ESP8266 Hardware Guide
      http://bbs.espressif.com/viewtopic.php?f=21&t=412&p=1545#p1545
      I2Cの回路は以下に書かれて、I2Cのプルアップ抵抗は 2.2KΩ。
      0B-ESP8266__System_Description__EN_V1.4_20160203
      20/27 Page  Figure 2-2: ESP-LAUNCHER interface schematics

      macsbug

      2月 14, 2016 at 12:36 am

      • リンクの情報ありがとうございます。
        色々な情報が記載されているようで勉強になります。

        R66とR67が2.2kでプルアップされていますね。

        こういう回路情報が公開されているというのはすごいですね。他の実装時にも色々参考になりそうです。

        7of9

        2月 15, 2016 at 3:22 am


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。