Hey, ich habe hier für ein kleines Projekt einen nackten Atmega328P, welchen ich mit einem ISP-Programmer beschrieben habe. An dem µC hängen zwei Sensoren. Jetzt wollte ich die Sensoren über den seriellen Monitor der Arduino IDE debuggen, doch leider fehlt mir ein dedizierter USB-Seriell-Adapter. Daher plane ich den auf einem Arduino Uno Board, welches hier noch rumliegt, zu verwenden. Einziges "Problem": der Adapter des Uno arbeitet auf einem 5 V Level, da ich den einzelnen 328P aber mit 3,3 V @ 8 MHz (intern) betreibe, habe ich mich gefragt, ob das einfach so geht oder ich trotzdem einen Pegelshifter, Spannungsteiler, etc. für die Rx Leitung (vom nackten µC aus gesehen) bräuchte. Eigentlich dürften die 5 V dem µC mit den Sensoren ja nix machen, ist ja auch auf 5 V spezifiziert. Doch da er nur mit 3,3 V betrieben wird, bin ich mir etwas unsicher, ob es da nicht zu Fehlströmen wegen der unterschiedlichen Spannungsniveaus kommen kann!? Leider konnte ich in der Doku dazu nix finden, mag auch an ihrem Umfang liegen :D Danke für eure Hilfe! LG Nick
Nick schrieb: > Eigentlich dürften die 5 V dem µC mit den Sensoren ja nix machen, ist ja > auch auf 5 V spezifiziert. Doch da er nur mit 3,3 V betrieben wird, bin > ich mir etwas unsicher, ob es da nicht zu Fehlströmen wegen der > unterschiedlichen Spannungsniveaus kommen kann!? Kommt es. Abhilfe: Spannungsteiler. Oben 1k, unten 2.2k.
Solange nicht anderweitig ausdrücklich spezifiziert vertragen digitale ICs nur Eingangsspannungen zwischen GND und Vcc/Vdd (ihrer Versorgungsspannung). Ausnahmen sind z.B. die Reset-Pins von AVR und 8-Bit PICs (da wird eine höhere Spannung als Aktivierungssignal für den Progrmmiermodus genutzt) und die Eingänge der 74LVC-Gatterserie, die immer max 5.5V abkönnen unabhängig von ihrer Versorgungsspannung. Du willst einen Pegelwandler/Level Shifter haben. Universelle Baustele sind z.B. 74LVC1T45/2T45/8T245, die hoch und runter wandeln können. Ansonsten : 3.3V->5.0V: 74(A)HCT-Gatter; 5V->3.3V: 74LVC-Gatter. Spannungsteiler sind einfach, gehen aber nur von einer hohen auf eine geringere Spannung und gehen in ihrer Grundform nur für langsame Signale, weil die Eingangskapzität des Gatters nicht berücksichtigt wird. fchk
Du musst nicht zwingend mit einem 74... los gehen. Falls Du die nicht zur Hand hast geht es auch mit zwei Mosfets (bei mir BS 170 mit 4k7 Pullup): https://www.nxp.com/docs/en/application-note/AN10441.pdf Nutze ich für die Anbindung von 3v3 I2C Sensoren an 328P mit 5V. Habe ich mit 400kHz I2C laufen. Sollte also für 115kBd Seriell-USB auch funktionieren.
:
Bearbeitet durch User
Danke für eure Antworten, gut, dass ich vorher gefragt habe :D Das Dokument mit den Mosfets werde ich mir mal durchlesen. Allerdings ist für mich am schnellsten und einfachsten der Spannungsteiler umsetzbar (wegen der verfügbaren Teile). Damit würde ich mal anfangen, falls es nicht funktioniert, wie oben von @fchk angedeutet, muss ich ein paar Bauteile besorgen. Aber für den ersten Versuch: Die angehängte Schaltung müsste doch so stimmen oder? ACHTUNG: Der Tx und Rx Pin der Uno Leiste läuft intern über kreuz zum eigentlichen USB-Seriell-Adapter. Daher ist hier Tx an Tx und Rx an Rx angeschlossen. Für die Tx-Leitung muss ich ja eigentlich nichts machen, da die 3,3 V, welche vom 328P kommen, den Rx-Eingang des 16U2 als logisch high ansprechen müssten. Kann ich das so mal testen?
Welcher Sketch läuft denn auf dem Uno? Nicht dass der auch auf RX und TX zugreift.
Keiner. Der 328P Chip auf dem Uno wird entfernt.
Nick schrieb: > ob das einfach so geht Nein. > oder ich trotzdem einen Pegelshifter Ja. Immerhin ist die serielle Kommunikation eher langsam, es tut ein 1k Vorwiderstand in der Leitung. Die Schaltschwelle (des 5V Chips) wird von den 3.3V erreicht.
MaWin schrieb: > Immerhin ist die serielle Kommunikation eher langsam, es tut ein 1k > Vorwiderstand in der Leitung. ich habs mit 470 Ohm und auf der 3,3V Seite mit BAT42 nach 3,3V als Ableitdioden gemacht!
Nick schrieb: > Eigentlich dürften die 5 V dem µC mit den Sensoren ja nix machen, ist ja > auch auf 5 V spezifiziert. Doch da er nur mit 3,3 V betrieben wird, bin > ich mir etwas unsicher, ob es da nicht zu Fehlströmen wegen der > unterschiedlichen Spannungsniveaus kommen kann!? Tut es. Wenn dein Arduino Uno mit 5V arbeitet, kommen aus den Ausgängen 5V raus. > Leider konnte ich in der Doku dazu nix finden, mag auch an ihrem Umfang > liegen :D Welche Doku auch immer du beguckt hast, im Datenblatt des ATmega328P steht im Kapitel Electrical Characteristics gleich im ersten Abschnitt unter /Absolute Maximum Ratings/: "Voltage on any Pin except RESET with respect to Ground .......-0.5V to VCC+0.5V". Wenn dein ATmega328P mit VCC=3.3V betrieben wird, hast du also ein Problem, wenn du da mit 5V auf einen Eingang gehst (-> Eingangsschutzdioden, Tip: Spannungsteiler). Umgekehrt wird es ein Ausgang deines ATmega328P bei 3.3V in der Praxis meist schaffen, einer 5V Logik ein H-Signal zu liefern. Das reduziert allerdings den Störabstand und kann z.B. bei höherer Temperatur unsicher sein, weil sich dann Schaltschwellen verschieben können. Sauber würde man die o.g. Pegelwandler dazwischen setzen.
Joachim B. schrieb: > rs232.jpg TxD und RxD sind unidirektional. Was sollen die Doppelpfeile bedeuten? Wozu sollen R1 und D1 gut sein - Angstwiderstand/-diode, falls du den RX-Pin vom Mega8 (?) auf Ausgang schaltest. Na gut, wenn du dir bei der Programmierung so unsicher bist. Bei der ganzen Konstruktion musst du immer sicher stellen, dass der in die 3.3V eingespeiste Strom garantiert irgendwo abgenommen wird - sonst könntn die Dioden nichts ausrichten und deine 3.3V-Schaltung bekommt "von hinten" eine überhöhte Spannung.
Mitleser schrieb: > Was sollen die Doppelpfeile bedeuten? das mit dem R und Diode funktioniert egal in welche Richtung und ich war faul, also C&P und musste mich nicht festlegen und 2 Pfeile malen. Zumal Rx und Tx immer eine Bedingung der Guckrichtung ist jeder sieht das anders! Klar muss gekreuzt werden bei 2 Contoller Rx an Tx und Tx an Rx. Mitleser schrieb: > dass der in die 3.3V eingespeiste Strom garantiert > irgendwo abgenommen wird - sonst könntn die Dioden nichts ausrichten und > deine 3.3V-Schaltung bekommt "von hinten" eine überhöhte Spannung. ich war sicher das ein PI o.ä. den Strom nimmt
:
Bearbeitet durch User
Joachim B. schrieb: > Zumal Rx und Tx immer eine Bedingung der Guckrichtung ist jeder sieht > das anders! Bestimmt nicht. Wenn am Controller steht "Rx", dann ist das der Eingang und wenn dort steht "Tx", dann ist das der Ausgang. Und Tx mit Tx zu verbinden, bringt die Welt i.A. nicht weiter (mal abgesehen von wired-or Konstruktionen)
Nick schrieb: > Damit würde ich mal anfangen, > falls es nicht funktioniert, wie oben von @fchk angedeutet Dann kannst du immer noch den oberen Widerstand mit einem Kondensator von einigen wenigen pF "überbrücken" und damit den Spannungsteiler "schneller" machen. Aber bei den üblichen Bitraten bis 115.2kbps wird das auch ohne den Kondensator ziemlich sicher funktionieren.
Danke für eure vielen Tipps! Ich habe es nun mit einem Spannungsteiler gemacht und es hat problemlos funktioniert :)
Joachim B. schrieb: > ich habs mit 470 Ohm und auf der 3,3V Seite mit BAT42 nach 3,3V als > Ableitdioden gemacht! Riskant. Wenn die Bauteile an der 3,3V Seite weniger Strom aufnehmen, als der Ableitstrom, erhöht sich die Versorgungsspannung auf mehr als 3,3V.
Wolfgang schrieb: > Wenn am Controller steht "Rx" du hast es nicht verstanden, man schliesst ja nicht immer Controller miteinenander an, auch deswegen ist die FEMALE Buchse an AVR oder PI eben blöd, ich betrachte die wie ein Computer und da gehören halt MALE ran, damit geht ein klassisches Nullmodemkabel mit FEMALE. Wolfgang schrieb: > Und Tx mit Tx zu verbinden, bringt die Welt i.A. nicht weiter Ich habe schon Geräte gesehen die einen PIN Tx nannten aber damit meinten an Tx zum Computer zu wollen, deswegen sind Namen Schall und Rauch. Vom Gerät gesehen ja nicht verkehrt, aber es war doch nur der Geräte Rx Pin. Du muss nicht immer widersprechen nur weil du mich nicht verstehst oder was ich für komische Geräte sah. Die Datenrichtungen der verschiedenen Geräte sind nun mal verschieden. DEE DTE DCE DÜE und nicht jeder benennt die Pins anständig.
Joachim B. schrieb: > Die Datenrichtungen der verschiedenen Geräte sind nun mal verschieden. > DEE DTE DCE DÜE und nicht jeder benennt die Pins anständig. Da hast du recht! Es gibt ja einen Standard (zumindest quasi-Standard). Wenn sich alle daran halten würden wäre die Welt so einfach. Es gäbe dann auch nur 2 Kabel: - Verlängerungskabel, eine Seite Männchen und andere Weibchen, 1:1 verdrahtet - Nullmodemkabel, beide Seiten Weibchen, Leitungen gekreuzt. Nur richtig schwierig wird es, wenn neben Rx und Tx Steuerleitungen im Spiel sind, die die eine Seite benötigt, die andere aber nicht liefert :-((
Ja, da habt ihr beiden, Joachim und Dietrich, vollkommen recht. Ich mache es bei all meinen Geräten mit RS232 immer so, daß am Gerät Male eingebaut wird. Dann wird, wie ihr geschrieben habt, immer ein gekreuztes Female-Female-Kabel genommen und die Verbindung klappt immer, auch zu PCs. Bedauerlich, daß viele Firmen oftmals Female-Steckverbinder einbauen, z.B. auch an den Pollin-AVR-Boards (sind ja leider vergriffen, hatte damals noch 2 Fertig-Boards zum Bausatzpreis ergattert). Habe einige davon, und die meisten habe ich - durch Durchtrennen von Leiterbahnen - auf Male umgebaut, bei den Fertigteilen gings leider nicht. Das mit den Steuerleitungen ist so, wie geschrieben. Zum Glück braucht man sie fast nie.
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.