浜松市にいる組み込みおやじ-電子工作、回路設計、ファーム TIPS

このブログはビーコンの代表である菅原が、電気電子、電子工作、組み込みソフトウェアなどで、自分が苦労したところや面白い発見などを記事にしていきます。電子工作やマイコンに親しむ人が少しでも増えたらという思いでつづります。
やっぱり、電子工作が好きなんですよ。
Arduino UNO Rev3 の3.3V出力は無負荷だと電圧が高くなる
0

    ※途中までの考察が間違っていたので、急ぐ方は後半の愡のところから読んでください。

     

    Arduino UNO Rev3 に 気圧センサーをつなげて I2C通信でデータを取得している。

    で、どうも信号の電圧がおかしい。。

     

    みてみると I2Cのデータ通信をするときに電源電圧がさがり、しばらくすると回復するようにみえる。

    UnoRev3

    上が 3.3V 電源電圧

    下が I2Cの SCL信号

    よく見ると 通常時 4V程度になっている。

     

    UNO Rev3 の互換品である Maruduino UNO R3 で見ると 4V越えている。
    Maruduino

     

    ちなみにずいぶん古い ARUDINO Duemilanove を見ると 3.3Vぴったり。
    Duemilanove

    ARDUINO UNO Rev3の3.3V電源は

    LP2985-33DBVR(MAX 150mA)

     

    Duemilanoveの3.3V電源は

    FT232RL の3.3V出力 (MAX50mA)

     

    LP2985の仕様書を読んでもオープン時の挙動については書いていなかった。

    つなげている圧力センサーが低消費電力タイプで 2uA程度しか消費しないので、ここでは実質オープン。

    I2Cバスのプルアップ抵抗は 4.7KΩにしているので、通信していると3.3Vに近くなり、通信が終わるとじりじりと電圧が上がるようだ。

    UNO Rev3とMarduinoの違いは、なにか分からないが、LP2985-33DBVRの個体差なのではないか。

    一応デバイスも壊れないで動いているが、Absolute Maximum ratings の Max supply voltage では 4.0Vなので、これはまずい。

     

    対策として1kΩの抵抗を3.3V端子に入れると、3.3Vになった。

    ちょっとロード抵抗を入れたほうが良いだろう。
    1K

     

    ◆追伸

    Twitterにして指摘をいただいた。どうも Wire.h がマイコンの内蔵プルアップをONにしているためらしいということだ。

    ■[工作] ArduinoでI2Cする際のプルアップ抵抗について

    http://d.hatena.ne.jp/ohguma/touch/20161219/p1

     

    マイコンの電源 5Vの内蔵プルアップと 3.3Vに接続されている4.7Kx2で i2Cの端子の電圧があがり、それが圧力センサーの内部の寄生ダイオードなどからVCCに流れて、電圧が上がっていると推測される。

     

    3.3Vの電流がほとんど流れない状態では、LDOレギュレータが上がった電圧を下げることは難しいのだろう。
     

    1KΩの抵抗を入れて、アイドリング電流が流れるようにすれば VCCは大丈夫ですが、よく見ると各端子は 3.3Vより高い。

    5Vのプルアップと3.3Vのプルアップがぶつかっているので、当然端子電圧は 5Vと3.3Vの間の電圧になる。

    これもよろしくないので、Wire.begin()の後にI2C端子を強制的にLOにしてみる。

     

     Wire.begin();
      digitalWrite(SDA, 0);
      digitalWrite(SCL, 0);

    すると端子も 3.3Vになった。
     

    端子も3.3vになった

    電気的には問題はなくなったが、せっかくあるライブラリを強制的に変えるのは、ちょっと気持ち悪いところもある。

    Wire.bigin()から digitalWrite()までの間はわずかな時間だが、プルアップされているし。

    ちゃんとした回路にするのであれば TXS0102DCUR などの電圧変換のIC SDA/SCLを入れた方が、良いだろう。

     

     

    | ビーコン菅原 | Arduino | 03:08 | comments(0) | trackbacks(0) |
    Arduino UNO Rev3 の I2Cは2CHじゃなかった
    0

      Arduino UNO Rev3 では、 SCLとSDAの端子が追加された。

      てっきり Arduino UNO Rev3 で I2Cが2CHになっていると勘違いしていたが、1CHしかなくて 内部的に二股に分かれているだけと先ほど知った。

       

      I2Cのセンサーもいろいろと魅力的なデバイスが増えているので、端子が2系統あった方がいい場合も多いだろう。

       

       

       

      | ビーコン菅原 | Arduino | 00:39 | comments(0) | trackbacks(0) |
      Arduino の純正 プロトタイプ基板
      0

        JUGEMテーマ:電子工作

         

        サンハヤト Arduino 用ユニバーサル基板 MODEL UB-ARD01では Rev3のArduino の足がたりない。

        http://blog.suga41.com/?eid=366

        で紹介した。

         

         

        そこで本家ARDUINOのサイトから購入してみた。

        https://store.arduino.cc/usa/proto-shield-rev3-uno-size

         

         

        9/28(木)に注文して 10/7(土)に届いた。結構時間がかかる。

        WebShop の写真だと 基板だけのようだけどこのように足が長いピンソケットも付いてきた

         




         

         

        たった今見つけたんだけど スイッチサイエンスで adafruit プロトシールド R3 というのがでていた、これでも大丈夫そうだ。

        https://www.switch-science.com/catalog/2010/

         

         

         

        | ビーコン菅原 | Arduino | 13:37 | comments(0) | trackbacks(0) |
           1234
        567891011
        12131415161718
        19202122232425
        2627282930  
        << November 2017 >>
        + RECOMMEND
        + RECOMMEND
        + SELECTED ENTRIES
        + RECENT COMMENTS
        + RECENT TRACKBACK
        + CATEGORIES
        + ARCHIVES
        + つぶやき
        + MOBILE
        qrcode
        + LINKS
        + PROFILE