Hallo, ich habe einen Atmega328 und ein ESP8266 Modul über Uart verbunden, um Daten auszutauschen. Nun werden diese Module auch über TX/RX jeweils programmiert. Der Atmega läuft mit 5V, der ESP mit 3.3. Beides über Pegelwandler verbunden. Auf dem Steckbrett funktioniert das programmieren von AVR und ESP soweit. Verwendet werden zwei USB-UART Adapter(CP2102). Auf der eigentlichen Platine soll das ein Dual USB-Uart Chip erledigen. Zum programmieren des Atmegas und ESP müssen die Jumper gezogen werden. Was passiert aber, wenn der Jumper gesteckt ist und programmiert wird? Dann liegt der USB TX direkt auf dem AVR TX. So gabs kein Problem (außer das nichts programmiert werden kann) aber das ganze soll auch länger funktionieren. Kann ich das so machen über die Widerstände, oder müsste etwas geändert werden? Eventuell Dioden an TX?
> Was passiert aber, wenn der Jumper gesteckt ist und programmiert wird? > Dann liegt der USB TX direkt auf dem AVR TX. R40 und R41 begrenzen den Strom. > Kann ich das so machen über die Widerstände Ich denke schon. Deine Pegelwandler kommen mir allerdings unnötig aufwändig vor. 1) Dem Rx Eingang des AVR genügen die 3,3V als High Pegel. Dieser Wandler ist total überflüssig. 2) Die 5V vom Tx Ausgang des AVR kannst du mit einem simplen Spannungsteiler (1k Ohm und 2,2k Ohm) auf 3,3V runter bringen. Bei 115200 Baud klappt das absolut zuverlässig. Höhere Baudraten habe ich nicht versucht.
Hallo, ok super, dann schmeisse ich zumindest den einen Wandler schon einmal raus. und wenn die Widerstände reichen ist das auch gut vor dem AVR. Das wären bei 5V und 470 Ohm um die 10mA
Hat die Lösung mit dem Spannungsteiler denn auch Nachteile bzw die mit dem FET Vorteile? Die Geschwindigkeit sind 9600bd und beim Programmieren etwas höher, wobei ich jetzt gar nicht weiss wie hoch die mit der Arduino IDE ist. wichtig ist mir nur, dass das zuverlässig läuft, also die Kommunikation zwischen ESP und AVR. Wenn ich den FET einsparen kann würde ich das natürlich tun, wenn sich sonst keine Nachteile ergeben.
> Das wären bei 5V und 470 Ohm um die 10mA
Was habe ich geschrieben? 1k Ohm und 2,2k Ohm. Da fließen bei 5V pi mal
Daumen 1,5mA.
Die Widerstände bilden zusammen mit den parasitären Kondensatoren der Leitungen und IC's einen Tiefpass, der die Signalflanken abflacht. Wenn dieser Effekt zu stark wird, funktioniert es nicht mehr. Der Effekt tritt bei der FET Schaltung ebenfalls auf, allerdings sehr unsymmetrisch. Der Wechseln von High nach Low geht schneller, der Wechsel von Low nach High aber viel langsamer. Um dies zu verbessern, müsste man die Pull-Up Widerstände verringern, dann erhöht sich allerdings die Spannung des LOW Pegels, die hinter dem FET ohnehin schon Grenzwertig ist. Berücksichtigt man die Signalfrequenz (ich nehme an, dass du unter 1M Baud bleibst) bring die FET Schaltung mehr Nachteile als Vorteile. Ich würde sie nur verwenden, wenn eine bidirektionale Übertragung notwendig ist. Das ist bei Dir nicht der Fall. Wenn du einen annähernd idealen Pegelwandler haben willst, dann schau Dir die 74LVCxx Logikgatter an. Die können zwischen zwei Spannungspegeln übersetzen, liefern Top saubere Flanken und Pegel. Die gibt es auch als Einzelgatter, dann sind sie sogar noch kompakter als deine FET Schaltungen.
Hallo, das klingt interessant! Ja Baud sind nur 9600. Ich schau mal ob ich da fündig werde unter der Bezeichnung 74LVCxx.
Hallo, so ich habe mich versucht einzulesen und dabei folgende Chips zur Wandlung 5V -> 3.3V gefunden https://www.mouser.com/ProjectManager/ProjectDetail.aspx?AccessID=ed90d86c9e Habe sie mal hier zusammengefasst um besser vergleichen zu können. Welchen sollte ich denn hier nun nehmen?
:
Bearbeitet durch User
OK, mir wurde nun der http://www.ti.com/lit/ds/symlink/sn74lvc1g34.pdf empfohlen Das war eine sehr gute Idee da so ein Gatter zu nehmen. Ist wirklich kompakter
:
Bearbeitet durch User
Hallo, noch eine andere Frage, ich habe momentan die TX (bei R20) und RX Leitung auf vorder und die andere auf der Rückseite der PLatine. Allerdings habe ich die etwas versetzt angeordnet, da ich dachte wegen übersprechen etc. Da kenne ich mich leider nicht aus,ob das überhaupt der Fall ist. Übertragen wird auf den Leitungen mit 9600bd. Kann ich die Leiterbahnen direkt übereinander anordnen oder spielt das doch eine Rolle. Ist das denn bei I2C Leitungen ähnlich?Wie nah kann ich die zusammen bringen?
:
Bearbeitet durch User
Bei unter 1Mhz brauchst du dir um solche Details keine Gedanken machen.
Ok, danke. Das macht die SAche noch einmal einfacher. Hatte bisher TX/RX, Uart und die PWM ausgänge sehr großzügig geroutet was das ganze aber sher kompliziert macht
T.M .. schrieb: > Hat die Lösung mit dem Spannungsteiler denn auch Nachteile Ja, damit hatte ich mal ein Problem. Wenn die TX-Seite z.B. einen Reset erhält, dann sieht die ggf. noch aktive Rx-Seite einen Übergang nach LOW und interpretiert dies als Startbit. Daher ist es besser, nur einen Serienwiderstand zu nehmen und die eingebauten Schutzdioden die Begrenzung vornimmt (natürlich über die Spezifikationen prüfen).
Hallo, noch einmal eine Frage, warum sich die Schaltung direkt zusammen geschlossen so merkwürdig verhält: USB-Widerstand-AVR USB-Widerstand-ESP und die beiden dann AVR <-> ESP direkt verbunden (ohne Widerstände) über Levelshifter Wenn beide UART Adapter verbunden sind und die beiden Chips auch miteinander funktioniert das zunächst. Manchmal kommt es nun vor, 1) dass die Richtung ESP TX -> AVR RX gar nicht mehr funktioniert oder 2) nur noch funktioniert nachdem man die USB-Adapter gezogen hat. Beides ist irgendwie irreversibel und funktioniert wieder, wenn man den AVR getauscht hat. Gleichzeitig gibt der AVR dennoch immer korrekt über UART den Text aus. Ich habe nun eine Schaltung gefunden, die auch diese beiden Chips verbindet: https://robotdyn.com/upload/PHOTO/0G-00005215==UNO+WiFi-R3-AT328-ESP8266-CH340G/DOCS/Schematic==0G-00005215==UNO+WiFi-R3-AT328-ESP8266-CH340G.pdf https://robotdyn.com/catalog/boards/uno_wifi_r3_atmega328p_esp8266_usb_ttl_ch340g_micro_usb/ Was ich hier nicht verstehe ist was Diode D4 macht. Wie kann hier in dieser Position TX funktionieren
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.