本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PCA9306使用時のLレベル上昇現象について)

PCA9306使用時のLレベル上昇現象について

2023/09/07 15:19

このQ&Aのポイント
  • PCA9306を使用したI2Cレベルシフタで、通信中にLレベルが1.3V程度まで上昇する現象が発生しています。
  • 機器側が3.3V系、ケーブル側が5.0Vで、共通のGNDで接続されています。
  • 不具合の解決法について情報を求めています。
※ 以下は、質問の原文です

PCA9306使用時のLレベル上昇現象について

2022/08/01 14:11

現在NXP Semiconductor製PCA9306を使用したI2Cレベルシフタを試作しているのですが、通信中にLレベルが1.3V程度まで持ち上がる現象が発生しています。

構成は2つの機器を1対1で結ぶ形で、それぞれの機器にこのレベルシフタを取り付け、500mm程度のケーブルで相互接続しています。
機器側(VREF1)が3.3V系、ケーブル側(VREF2)が5.0Vです、GNDは共通です。回路図はPCA9306データシートに記載してあるものと同様ですが、SCL/SDAにサージ対策としてTVSダイオードをぶら下げています。

各機器は1kΩ程度の内蔵プルアップ抵抗を持っていますので、双方のSCL1/SDA1のプルアップ抵抗は未実装としてあり、SCL2/SDA2に560Ωを実装しています。約10mAのドライブ電流です。

添付画像が機器側(3.3V側)の波形です。ケーブル側(5.0V側)も電圧が違うだけで全く同じ波形をしています。
Lレベルが2段階に分かれており、高い方で1.3V程度、低い方で0.3V程度となっています。特にシンク能力不足という訳ではないと考えているのですが……。
なお波形画像ありませんが、電源電圧に特に揺れなどは確認出来ませんでした。

ほぼリファレンス構成にも関わらずこのような不具合が出て困っています。どなたか解決法などご存じないでしょうか。

投稿された画像

質問者が選んだベストアンサー

ベストアンサー
2022/08/02 21:36
回答No.2

どちらかの機器が、Hiレベル時にソース出力していないでしょうか?

HiレベルとLoレベルの信号衝突が発生しているように見えます。

私の予想では、機器B側のHiレベルがソース出力になっている気がするのですが。

I2Cでは、マスター、スレーブともにSDAはオープンコレクタ(又はオープンドレイン)でLoレベルだけを出力し、Hiレベルはプルアップだけで吊り上げられるようにして、出力端子からHiレベルをソース出力しないようにしなければなりません。

機器Bの出力端子設定に間違いがないか、確認してみて下さい。

お礼

2022/08/03 17:04

ご回答ありがとうございます。
機器Bの設定を確認しましたが、ポートは確かにOpen-Drain設定となっていました。

ところで、本来I2Cレベルシフタ/バスバッファにはPCA9600Dを用いるべきと思うのですが、安価だという理由で純粋なレベルシフタであるPCA9306Dを採用しています。
用途外の構成であるから正常に信号伝達が行われず…というオチのような気がして、再設計を検討しています。

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (2件中 1~2件目)

2022/08/01 16:52
回答No.1

機器側がマスタで間違いないですか?

補足

2022/08/01 17:21

説明不足で申し訳ありません。
はい、機器側がマスタで間違いありません。
イメージとしては以下の通りです。
機器A -> レベルシフタ ===(cable)=== レベルシフタ -> 機器B

添付画像は機器A側で測定したものになります。

追加の情報ですが、どうやら機器AからのWriteもしくはACK時のみLレベルが上昇し、機器AのReadに対する機器Bのデータ(SDA)は正常なレベルが出ている様です。

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。