SSブログ

Arduino の I2C レベル変換に嵌まっています [AKC]

 K3NG キーヤーに I2C 接続の LCD ディスプレイを付けるところで嵌まっています。

Arudino の 5V I2C I/O 系と LCD ディスプレイの 3.3V I2C I/O 系の接続にレベル・コンバーター IC を使っているのですが、うまく通信できません。
使っているのは秋月でモジュールとして売られている、FXMA2102 と PCA9306 です。
〔FXMA2102 の波形〕
DSC07660.JPG
黄色が 5V 系の SCL で、青色が 3.3V 系の SDA です。これは 10kΩ でプルアップしている波形。ちょっと立ち上がりがなまっています。
おかしな波形がこれで、繰り返し動作の中で 3.3V 系の H レベルがおかしいです。
DSC07661.JPG
長く見ると
DSC07662.JPG
周期的に 3.3V 系の H レベルが変化しています。
でも、実験している途中で、一瞬だけ正常動作したときがあります。
DSC07655.JPG
〔PCA9306 の波形〕
DSC07658.JPG
SCL の波形
DSC07659.JPG
SCL と SDA の波形
3.3V 系の L レベルが高めですが、仕様の範囲には入っています。
この波形で動作しない理由が分かりません。
レベル変換 IC のボルテージ・ブースターがうまく動いていないように見えるので、その辺りを確認しようと思います。
nice!(1)  コメント(6) 
共通テーマ:趣味・カルチャー

nice! 1

コメント 6

ja9cde

いつも拝見しています。わたしの場合
i2cのプルアップを2.2k程度にしてうまくいきました


by ja9cde (2020-03-28 19:47) 

ktm

いつもご訪問いただき、どうも有難うございます。
中身の薄いブログでお恥ずかしいです。
情報をいただき、助かります。
波形を残してはいないのですが、2.2kΩも試したのですが、ダメでした。
これから基板を作りますので、基板が出来たら、再度 試して見ます。
by ktm (2020-03-28 23:29) 

aruaru

続きが見たかったのですが。
Hレベルが出ないのは、Pullup抵抗をドライブしているラインの電流が不足しているのでは。
連続動作とあるので、他のデバイスの状態に因果関係が。
このままだと、FXMA2102の購入意欲が。→XX妨害

by aruaru (2023-08-21 17:35) 

ktm

aruaru 様

ご訪問いただき、どうもありがとうございます。
いろいろと変更を加えて、ちゃんと動作するようにはなりました。
顛末は、このブログにも書いています。
もう4年も経ってしまったので、私もブログを見直さないと詳細は憶えていません。液晶表示器のリセット回り、パスコン、I2C ラインのプルアップ、ダンピング抵抗の挿入などで対応しました。
最終版の回路図も載せています。
そこでは、ちゃんと FXMA2102 も使っています。
K3NG キーヤー V3 Arduino MEGA の最終版 回路図を KiCAD で作成
https://sdr-de-bcl.blog.ss-blog.jp/2020-10-21-1
K3NG キーヤー V3 Arduino MEGA 最終基板で I2C をデバッグしてみた
https://sdr-de-bcl.blog.ss-blog.jp/2020-11-30-1
に最終結果を載せています。

やはり通信して動くものは、レベルコンバーターや、リセットまわり、信号のタイミングなど、いろいろな要素が絡んでくるので、うまく動かない時の対応には難しさもあると感じています。
by ktm (2023-08-21 20:36) 

aruaru

回路図見たところ、3.3v側のプルアップ抵抗を47kに変更、I2Cでダンピング抵抗を入れていいのか知りませんが、LCD側に入れられているようですね。抵抗を大きくしてうまくいっているのであれば、通信速度が遅すぎたのかな、とも思ってしまいました。
by aruaru (2023-08-25 12:19) 

ktm

最終的には、
R7、R8 のプルアップ抵抗は、使っているライブラリが Arduino の内蔵プルアップを有効にしているので、実装していません。
R21、R22 のダンピング抵抗は使わず、ショートにしています。
ダンピング抵抗は、Arduino の 5V I/O 側に実装しています。
これがないと I2C の通信が安定しません。基板が出来てから、抵抗値は決めました。
液晶表示器は、リセット端子をプルアップしていないと、電源立ち上がり時の動作が安定しませんでした。
by ktm (2023-08-25 13:31) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。