Forum: Mikrocontroller und Digitale Elektronik Pegelwandler-Frage


von Michael (Gast)


Lesenswert?

Kann man einen 3.3V-Ausgang (ESP8266 GPIO) direkt mit einem 5V-Eingang 
(AVR) verbinden, wenn am 3.3V-Ausgang ein 10K-Pulldown angeschlossen ist 
(für ESP8266 im Reset)?

von Noch einer (Gast)


Lesenswert?

Ein Pulldown bringt da nichts. Da hilft nur ein Blick ins Datenblatt. 
Der minimale High-Pegel des Ausgangs muss höher sein als der minimale 
High-Pegel des Eingangs.

von Dietrich L. (dietrichl)


Lesenswert?

Michael schrieb:
> Kann man einen 3.3V-Ausgang (ESP8266 GPIO) direkt mit einem 5V-Eingang
> (AVR) verbinden, wenn am 3.3V-Ausgang ein 10K-Pulldown angeschlossen ist
> (für ESP8266 im Reset)?

Nein, zumindest ist es sehr knapp, denn die Worst-Case-Werte sind:

- AVR Eingang High min. 0,6*Vcc = 3V (ATmeag8).
- ESP8266 Ausgang High min. 0,8*VIO = 2,64V.

Welche Bedingungen beim ESP8266 gelten habe ich auf die Schnelle nicht 
gefunden, bzw. welche Betriebsart und Last dabei berücksichtigt ist 
(Tabelle Seite 15).
Wenn das für die max. Last von 12mA gilt, könnte das bei 10kOhm 
Pull-Down fast 3,3V werden - viel Störabstand zu den 3V des AVR bleibt 
aber nicht übrig.

Gruß Dietrich

von Michael (Gast)


Lesenswert?

> Wenn das für die max. Last von 12mA gilt, könnte das bei 10kOhm  Pull-Down fast 
3,3V werden

Verstehe ich das richtig: Ich sollte die Laste reduzieren (den Pull-Down 
grösser machen), um es unkritischer zu machen, z.B. 47K Pull-Down am 
3,3V-Ausgang? Das ist kein schnelles Signal.

@Noch einer: > Pulldown bringt da nichts

Der Pull-Down muss am 3.3V-Pin einen definierten Pegel herstellen, wenn 
der ESP aus ist (z.B. per Chip-Enable-Pin).

von Michael (Gast)


Lesenswert?

Ich glaube die Fage hat sich erledigt, ich kann auch auch einen Pull-Up 
auf 3,3V am 3,3V-Pin verwendne (Pull-Down war nur drin, weil ich bisher 
mit Transistor geplant hatte).

von Noch einer (Gast)


Lesenswert?

Nanu? Nach den garantierten Werten funktioniert es nicht. Der ESP 
liefert nicht genug Spannung, damit der AVR sicher High erkennt.

Ob der Pull-Up die garantierten 2,64V auf die geforderten 3V anhebt? 
Reiner Zufall, ob es funktioniert.

Anderer Ansatz - hast du mal geschaut, ob du es mit einem Komperator 
oder ADC einlesen kannst?

von Michael (Gast)


Lesenswert?

Alle Beispielschaltungen zum ESP8266 zeigen eine direkte Verbindung von 
TX (ESP, 3.3V) zu arduino & co, man liest deshalb nicht von Problemen.

von HildeK (Gast)


Lesenswert?

Noch einer schrieb:
> Ob der Pull-Up die garantierten 2,64V auf die geforderten 3V anhebt?
> Reiner Zufall, ob es funktioniert.

Diese Worst-Case-Angabe hat aber einen deutlichen Ausgangsstrom als 
Bedingung. Wenn man den nicht hat, ist der Pegel auch ohne Pullup 
oberhalb 3V - nur gibt es vermutlich kein Diagramm o.ä. dazu im 
Datenblatt.

@Michael:
Atmel hat das im STK500 mit 2 Transistoren und drei Widerständen gelöst.
http://www.atmel.com/webdoc/stk500/stk500.section_aqi_nwk_yb.html
Such mal nach MISOT in dem Schaltplan. VTG ist die kleine Spannung, z.B. 
die 3V3, VCC die 5V.
Nachteil: man muss dieser Schaltung sowohl die 3.3V als auch die 5V zur 
Verfügung stellen.

von Michael (Gast)


Lesenswert?

Gibt es Line-Driver (Tri-State-Ausgang, non-invertig), die bei 
5V-Versorgung 2,6V auf der Eingangsseite zuverlässig als H erkennnen? In 
den PDFs der Chips a la 74LVC1G126DBV steht zwar oft was von gemischter 
3V/5V-Umgebung, aber anscheinend meinen die damit nur die Richtung 
5V->3,3V (3,3V-Versorgung). Leider lässt die parametrische Suche das 
nicht eingrenzen.

von Dietrich L. (dietrichl)


Lesenswert?

Michael schrieb:
> den PDFs der Chips a la 74LVC1G126DBV steht zwar oft was von gemischter
> 3V/5V-Umgebung, aber anscheinend meinen die damit nur die Richtung
> 5V->3,3V (3,3V-Versorgung).

Ja, so sehe ich das auch.

Aber Pegelwandlung von 3,3V auf 5V geht am einfachsten mit 
74HCT-Bausteinen (versorgt mit 5V).
Das "T" steht für "TTL", d.h. die haben einen Minimum-High-Pegel von 2V.

Gruß Dietrich

von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Google hat die abgebildete Schaltung gefunden 
(http://woodsgood.ca/projects/2015/01/19/level-shifting-interface-arduino-esp8266/). 
Links die 3,3V-Seite, rechts die 5V-Seite. Das schöne daran ist, dass 
das bidirektional ist. Gibt es zufällig ein IC, in dem solche Einheiten 
mehrfach enthalten sind?

von Clemens L. (c_l)


Lesenswert?

Michael schrieb:
> Gibt es zufällig ein IC, in dem solche Einheiten mehrfach enthalten sind?

http://www.ti.com/lsds/ti/logic/bidirectional-voltage-translation-products.page
(und natürlich bei anderen Herstellern)

Aber brauchst du überhaupt bidirektional?

von Michael (Gast)


Angehängte Dateien:

Lesenswert?

> überhaupt bidirektional?

Vielen Dank für den Link. Bidirektional ist eigentlich unnötig. Ich habe 
5 Verbindungen zwischen den ICs (2 x Seriell, 2 x Reset und ein Signal). 
Zur Zeit braucht ich dafür 15 Bauteile. Ich wünschte es ginge mit 
weniger.

AVR soll den ESP resetten können, ESP den AVR - dafür die 
Reset-Verbindungen und das (Bootloader-)Signal.

von M. K. (sylaina)


Lesenswert?

Also wenn es nur darum geht einen 3V3 Ausgang einem AVR mit Vcc von 5V 
zuzuführen und man hat noch einen ADC frei dann würde ich mir den 
Pegelwandler sparen und den ADC des Atmegas nutzen. Auf der anderen 
Seite: Pegelwandler mit Transitor und zwei Widerständen bringt nun auch 
niemanden ins Grab, was ist denn daran so kompliziert dass man sowas 
nicht nutzt?

von Michael (Gast)


Lesenswert?

> wenn es nur darum geht einen 3V3 Ausgang einem AVR mit Vcc von 5V zuzuführen

ADC nützt nichts, es geht um vorgegebene Pins (serielle Verbindung, 
Reset, ESP GPIO0).

von Clemens L. (c_l)


Lesenswert?

Michael schrieb:
> Bidirektional ist eigentlich unnötig. Ich habe 5 Verbindungen
> zwischen den ICs (2 x Seriell, 2 x Reset und ein Signal).

Für unidirektionale Wandler kann man irgendwelche Logikbausteine aus 
einer Familie, die die entsprechenden Pegel verträgt, nehmen, z.B. 74LV:
SN74LV1T34:  1x Buffer
SN74LV4T125: 4x Buffer with Output Enable
(oder AND/OR/NOT/etc., falls benötigt)

: Bearbeitet durch User
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.