Level shifter für UART

OP #4296974
Lesenswert?

Hi, ich hoffe ich kann mein Problem gut umschreiben.

Ich verwende einen Atmega2560 und möchte ein Display damit steuern.
Das Display besitzt eine Intelligenz und gibt leider 3.3V aus.

Der Atmega reagiert in der UART Interrupt Routine nicht, sobald das 
Display etwas sendet.

Ich wollte einen Level Shifter verwenden, jedoch klappt es nicht.

Ich habe mir den 40109BE ausgesucht und habe Vcc und ENABLE A mit 3.3 V, 
VDD mit 5V verbunden. Der TX Ausgang vom Display ist mit dem Eingang A 
verbunden und E mit dem RX Eingang vom Atmega.

Der RX Pin vom Atmega hat die Spannung 5V.

Es ist so, dass wenn am Eingang 'A' 0 V anliegen, dass am Ausgang 'E' ca 
2.5 V anliegen. Das heißt, dass es so nicht funktioniert.

Der Levelshifter funktioniert. Wenn ich an A 3.3 V anschließe, dann sind 
am Ausgang 5 V, wenn jetzt dort nicht RX vom Atmega anliegen.

Im Anhang ist ein Blockschaltbild.

Hier ist das Datenblatt zum Shifter zu finden:
http://www.ti.com/lit/ds/symlink/cd40109b.pdf


Es ist auch alles korrekt angeschlossen.
Angehängte Dateien:
#4297611
Lesenswert?

Vom Anschluss her scheint mir alles richtig.

Zur Sicherheit:

Atmega Rx nicht angeschlossen:
A: 0V   -> E: 0V
A: 3,3V -> E: 5V
Atmega Rx angeschlossen:
A: 0V   -> E: 2,5V
A: 3,3V -> E: 5V  <-- ?
Korrekt?

Wenn ja: Offensichtlich zieht der Rx-Eingang die Leitung und damit den 
Ausgang E hoch, es ist also entweder kein Eingang, sondern ein Ausgang, 
oder ein Pull-Up im Atmega ist so stark bzw. der 40109 ist so schwach, 
dass er nicht gegen den Pull-Up ankommt. Tipp: Mess' mal den Strom auf 
der Rx-Leitung.
#4297617
Lesenswert?

Hallo,
evtl. leigt das Problem ganz wo anders und du machst jetzt viel Aufwand 
und es funktioniert trotzdem nicht. Warum erklärst du nnicht das ganze 
Thema etwas genauer.

Deshalb einige Fragen:
1. Um was für ein Display handelt es sich?

2. Ist der Eingang des Display 5V-tolerant?
Wenn nicht, kann man das auch leicht mit einem Spannungteiler beheben.

3. Was für Pegel gibt das Display konkret aus?
Mit einem Logigpegel von 3,3V kann man normal eine 5V-Logik noch gut 
betreiben. Evtl. reicht ein Pullup gegen 5V.

4. Welche Baudraten werden überhaupt verwendet?
Gruß Öletronika
OP #4297646
Lesenswert?

uwe_beis hat es gut beschrieben. die rate ist 9600.
das display ist 5v tolerant, gibt jedoch 3.3V aus. RX und TX sind 
korrekt angeschlossen und nicht vertauscht.

find die Idee auch gut einfach einen pullup auf TX vom Display 
anschließen.

sollte eigentlich gehen.

falls nicht werd ich mir den anderen Chip 74LVC1T45 ebenfalls holen und 
es mit dem testen.

ich schreib dann, wenn das problem behoben ist.
Gast #4297673
Lesenswert?

U. M. schrieb:
> Mit einem Logigpegel von 3,3V kann man normal eine
> 5V-Logik noch gut betreiben.
Eben, im Datenblatt des ATmega2560 lese ich für V(IH) (bei Vcc= 5.0 V) 
ein Minimum von 0.6*Vcc, also 3.0 V. Da stimmt etwas anderes nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren