Forum: Mikrocontroller und Digitale Elektronik USART mit 3,3V µC und 5V µC


von Thomas Wiemken (Gast)


Lesenswert?

Hallo Leute,

ich habe mal wieder ne Frage.

Ich habe zwei Mikrokontroller, der eine wird mit 5V und 16MHz
betrieben, der andere mit 3,3V und 4,19 MHz. Ist es möglich eine
direkte USART-Verbindung zwischen diesen beiden Kontrollern
herzustellen? Oder muss eine Pegelwandlung von 5V auf 3,3V geschehen?

Wenn eine Wandlung nötig ist, dann reichen wohl zwei richtig
dimensionierte Widerstände.

Gruß und Freude
Thomas

von MasterFX (Gast)


Lesenswert?

Sollte eigentlich mit nem Spannungteiler gehen. Du hast ja immer
gewissen Toleranzbereiche mit dem Pegel z.B. +-0,3V oder sowas. Wüsste
jetzt nicht warum das nicht klappen sollte. Wichtig ist halt nur dass
du das gleiche Bezugspotential hast.

von Thomas Wiemken (Gast)


Lesenswert?

Ja, danke erstmal.
Aber ohne diese Widerstände gibt es Probleme??

Was passiert mit dem 3,3V µC, wenn er auf der USART-Empfangsseite 5V
bekommt?

von Mathias (Gast)


Lesenswert?

welcher uC ist es den du mit 3,3V betreibst? die meisten pins der lpc900
serie von philips sind zum Beispiel 5V kompatibel...

von Frank (Gast)


Lesenswert?

guck ins Datenblatt, dann weisst du es. Je nach Toleranzschwelle
verstirbt der Controller ungefragt wenn die anliegende Spannung um
einen in den Daten angegebenen Betrag die Versorgungsspannung
übersteigt.

bye

Frank

von Gerald (Gast)


Lesenswert?

Hallo Thomas,

eine Grundregel solltest du grundsätzlich beachten, die Spezifikationen
sind grundsätzlich einhalten.
Es ist einfach Blödsinn, wie solche Aussagen, das kann der schon ab die
paar Zehntel-Volt drüber.
Der Chip kann sie nicht ab, er wird irgendwann mal seinen Geist
aufgeben.
Überlast ist grundsätzlich schädlich!
3,3V-Technik arbeit mit den spezifizierten Pegeln und die 5V-Technik
mit den den dafür spezifizierten Pegeln, alles andere ist Pfusch in
höchster Vollendung...

von Thomas Wiemken (Gast)


Lesenswert?

Ok, ist ein ATmega128 der mit 3,3V betrieben wird und ein ATmega168 der
mit 5V betrieben wird.

Aber ich habe es wohl im Datenblatt gefunden.
Ich bin davon ausgegeangen, dass die USART-Eingänge andere Toleranzen
haben, als die normalen PORTPINS.
Irren ist menschlich!!!

Auszug aus dem Datenblatt

Input Voltage High außer XTAL1 und /RESET beim ATmega128:
minimun -> 0.6 VCC
maximun -> VCC + 0.5V

bei VCC = 3,3V ergibt sich ein maximum von 3,8 V.

Also werde ich einen Spannungsteiler mit 22k und 39k Widerständen
verwenden.

Danke für eure Antworten
Thomas

von Hagen R. (hagen)


Lesenswert?

Rx vom 5V zu 3.3V sollte nicht das Problem sein. Einfach
Serienwiderstand rein um den Strom in den 3.3V Eingang zu reduzieren,
alles andere macht dann die interen Inputptotection des AVRs.

Tx von 3.3V zu 5V dürfte da ein leichtes bischen diffiziler werden. Der
AVR erkennt ein High bei ca. 0.8Vcc also 0.8 * 5V = 4 Volt. Das ist laut
Datenblatt der Fall, ich habe aber die Erfahrung gemacht das er bei
3Volt immer noch sauber ein High erkennt.

Für erste Test also einfach in der Rx Leitung des 3.3V AVRs einen
Serienwiderstand (470 Ohm bis 1K) rein, und die Tx Leitung direkt
miteinander verbunden. Just my 2 cents :)

Gruß Hagen

von Thomas Wiemken (Gast)


Lesenswert?

@Hagen

zwei Fragen:

1.)
Mit der Input Protection meinst du damit die zwei Dioden, die auf Seite
63 des ATmega128 Datenblatts dargestellt sind?

2.)
Wo steht den das mit den 0.8*Vcc? Im Datenblatt des ATmega168 ist von
mindestens 0.6 * Vcc die Rede. Siehe Datenblatt Seite 300 --> Vih

Gruß Thomas

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.