Forum: Mikrocontroller und Digitale Elektronik I2C/UART Level Shift - Optional auf der PCB


von Martin Z. (mzahedi)


Angehängte Dateien:

Lesenswert?

Liebe Community,

ich möchte einen Level Shifter für die I2C bzw. UART Schnittstelle auf 
meiner PCB anbieten. Die gewöhnliche Betriebsweise eines Translators ist 
mir bekannt (TXS0102 i.e.).

Was ist wenn ich einen Sensor hernehme, welcher mit 5V arbeitet und ich 
den Level Shifter nicht verwenden kann?!

Deshalb möchte ich vorsichtig nachfragen ob meine Überlegung richtig 
ist?

Danke im Voraus!
Liebe Grüße aus Wien.

von Frank K. (fchk)


Lesenswert?

Du hast also eine Schaltung, die intern mit 5V funktioniert?
Du möchtest außen mit variabler Signalspannung zwischen z.B. 2.5 und 
5.5V arbeiten?

Richtig?

Dann schau her:
http://www.ti.com/lit/ds/symlink/sn74lvc1t45.pdf

Jede Seite kann mit einer Spannung zwischen 1.65V und 5.5V betrieben 
werden. Und es steht auch nirgendwo drin, dann nicht beide Seiten mit 
der gleichen Spannung versorgt werden dürfen.

Lösung: Mache die Spannungsversorgung der externen Seite zu einem 
Eingang, der von dem angeschlossenen Gerät versorgt werden muss. Dadurch 
bist Du flexibel. Das ist bei JTAG-Adaptern für ARM etc. eine übliche 
Herangehensweise. Die Stromaufnahme ist üblicherweise recht gering.

Und sei vorsichtig mit bidirektionalen Levelshiftern. Die Erkennung der 
Senderichtung ist mitunter recht empfindlich. Wenn Du wie bei einem UART 
eine bidirektionale Funktionalität nicht brauchst, bist Du mit 
unidirektionalen Levelshiftern oder mit welchen mit nicht-automatischer 
Richtungsumschaltung auf der sichereren Seite.

fchk

von Jürgen W. (Firma: MED-EL GmbH) (wissenwasserj)


Lesenswert?

Die Schaltung an sich funktioniert; ich würde trotzdem einen PCA9306 
vorziehen.

Unbedacht dessen: Wenn Du das einsetzt, achte auf einen MOSFET mit 
seeehr kleiner Gate-Kapazität und die Pull-up-Widerstände ebenfalls 
nicht zu groß machen - andernfalls entstehen Anstiegs- und Abfallzeiten 
>>1us - wenn Du dahinter mit Schmitt-Trigger-Eingängen arbeitest, geht's 
ja noch - andernfalls aber könnte die langsame Flanke Probleme in der 
nachfolgenden Logik machen.

: Bearbeitet durch User
von Martin Z. (mzahedi)


Lesenswert?

Vielen lieben Dank für die Vorschläge bzw. das Feedback!

Habt ihr diese ICs selber eingesetzt und getestet?! Bei PCA9306 habe ich 
folgendes im Datenblatt gelesen:

To support translation, VREF1 supports 1.2 V to VREF2 - 0.6 V. VREF2 
must be between VREF1 + 0.6 V to 5.5 V.

Ginge mit 5V < > 3V3 aber nicht mit 5V < > 5V.

Ich frage mich gerade warum ich überhaupt variable Signalspannug haben 
möchte hehe .. bin ursprünglich ein SW-Dev und mag meine Werke so 
gestalten dass der User die Endentscheidung treffen kann. Beim PCB 
sollte ich mir diese Herangehensweise eventuell überdenken ^^

Oder ich bleibe bei meiner nmos-Lösung und verwende zB den 2N7000 ?!

von Frank K. (fchk)


Lesenswert?

Martin Z. schrieb:
> Vielen lieben Dank für die Vorschläge bzw. das Feedback!
>
> Habt ihr diese ICs selber eingesetzt und getestet?! Bei PCA9306 habe ich
> folgendes im Datenblatt gelesen:
>
> To support translation, VREF1 supports 1.2 V to VREF2 - 0.6 V. VREF2
> must be between VREF1 + 0.6 V to 5.5 V.
>
> Ginge mit 5V < > 3V3 aber nicht mit 5V < > 5V.

Dann schau mal auf den PCA9517.

Der funktioniert ein wenig anders.

fchk

von Martin Z. (mzahedi)


Lesenswert?

Frank K. schrieb:

> Dann schau mal auf den PCA9517.

Super gut, danke! :)
4x 10k Widerstände und 2x 100n Cap und gut ist, geilo!

Somit hab ich den I2C Bus gedeckt. UART lasse ich auf 5V ohne Level 
Shifter :)

von Frank K. (fchk)


Lesenswert?

Martin Z. schrieb:
> Frank K. schrieb:
>
>> Dann schau mal auf den PCA9517.
>
> Super gut, danke! :)
> 4x 10k Widerstände und 2x 100n Cap und gut ist, geilo!
>
> Somit hab ich den I2C Bus gedeckt. UART lasse ich auf 5V ohne Level
> Shifter :)

Für den wären zwei 74LVC1T45 die optimale Lösung.

fchk

von Martin Z. (mzahedi)


Angehängte Dateien:

Lesenswert?

Frank K. schrieb:

> Für den wären zwei 74LVC1T45 die optimale Lösung.

Hey, vielen Dank für das angenehme und freundliche Feedback! Ihr habt 
mir beide super weitergeholfen.

Ich teile gerne meine Schaltung falls jemand mal auf der Suche ist .. 
Immer mit einem kritischen Auge genießen ;)

von Frank K. (fchk)


Lesenswert?

Du hast leider das Datenblatt nicht richtig gelesen. Der DIR-Input des 
74LVC1T45 wird von VCCA gespeist, nicht von VCCB. Lass VCCA die interne, 
VCCB die externe Spannung sein, das ist besser. Und DIR entweder auf GND 
oder VCCA legen.

fchk

von Martin Z. (mzahedi)


Lesenswert?

Du hast recht, danke vielmals! :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.