I2Cレベルシフト


11

現在、センサーからのデータを記録し、記録されたデータをEEPROMに保存できる回路を設計しています。私の2つのデバイス(EEPROMとテスト目的のRTC)は、I2Cバスを介してPIC16F887 µCに接続されています。ただし、2つのデバイスの電圧動作範囲は同じではなく(EEPROMの5v、RTCの3.3)、私のバッテリーは9Vバッテリーです。

そこで、SDA / SDL配線用のMOSFETで構成されたレベルシフター付きの電子回路を設計しました。その上に、デバイスに電力を供給するために2つのLM317電圧レギュレーター(9V-> 3.3Vおよび9V-> 5V)を追加しました。私はそのようなものの設計の専門家ではないので、私が作ったものを一目で見て、私がひどく間違ったことをしたかどうか教えていただければ幸いです!

ここに画像の説明を入力してください


回答:


3

他のコメントにもかかわらず、ソリューション自体は問題ありません。私はいくつかのマイナーな問題を見ます。

  1. バス上の10kプルアップ抵抗は、特に高速バス速度を使用する場合は、十分な剛性を備えていません。

  2. リニアレギュレータとデジタルICには、入力および出力デカップリングコンデンサが必要です。100nFはデジタルICとリニアレギュレータの良いスタートです。入力で100nF、出力で1μFです。


デカップリングコンデンサのヒントをありがとう、実際にはほとんどのリニアレギュレータの回路図に示されていますが、この部分は完全にスキップしました。デジタルICのデカップリングコンデンサとは、入力電圧とグランドの間に1つのコンデンサが存在するということです。(私があなたの意味を理解したことを確認するだけです!)最後に、10kプルアップ抵抗は十分な剛性があるとは程遠いと言いますが、データシートでは400kHzバス速度のこれらの値を推奨しています。レベルシフターに問題はありますか?とにかく、そのアドバイスは素晴らしかったです!
Al_th 2013

1
正しい-デカップリングコンデンサを電源ピンとリターンピンのできるだけ近くに配置してください。I2Cラインに大きな静電容量がある場合は、エッジをシャープに保つためにそれらのプルアップを下げる必要があります。私は通常1.8kから始めて、そこから評価します。
アダムローレンス

さて、すべてに感謝します。それがさまざまなI2Cデバイスで遊んでいる人々を助けることを願っています!
Al_th 2013

-4

はい、あなたは回路図でひどく間違っていることをしました。電圧レベルを適切にレベルシフトするには、確認されていないI2Cスレーブアドレスを参照してください(時々) MAX3373E ICはレベルシフトに使用されます。プルアップ抵抗はSDAおよびSCKラインに示されていることに注意してください。ただし、MAX3373Eを使用する場合、MAX3373EはI / Oラインの両側にプルアップを内蔵しているため、プルアップ抵抗は必要ありません。レベルシフトに利用できる他のICもあります。Digi KeyまたはMouserに移動して検索できます。


5
OPのアプローチは結構です!NXPには、このトピックに関するアプリノートもあります。すぐに判断しないでください。
アダムローレンス

どこが間違っているのかわかります。FETの記号が正しく表示されず、ダイオードがありません。
Suirnder 2013

1
@Suirnder知識が限られているため、強すぎると遭遇することにはリスクが伴います。あなたによるそのような最初の投稿ではないと私は信じています。
Anindo Ghosh 2013

1
@Goshレッスンを学んでいます。最初にFETのデータシートを確認する必要がありました。
Suirnder 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.