Hallo Leute, das leidige Problem mit 5V High an 3,3V-AVR. Ein High von 5V soll ganz normal an einem 3,3V AVR detektiert werden Kein analog,sondern einfach digital. Die Frage ist nur wie? Leider quillt das Form an Beiträgen dazu über, aber dennoch ist das richtig nicht dabei. ... Wie am besten vorgehen? Einfach die 5V über 1k auf den avr-port? Oder doch per Transistor wandeln? Da das signal im Hertz-Bereich liegt und der Platz knapp ist, eigentlich nichts groß zu beachten, sind einfache Lösungen zu begrüßen. Vielen Dank
Mit dem 1kOhm sollte klappen - die Begrenzung macht dann die interne Schutzdiode für dich. Eleganter wärs natürlich mit nem npn-Transistor plus Basiswiderstand, den du gegen den internen Pullup arbeiten lässt.
Diode geht auch. Internen Pullup aktivieren und die Anode Richtung MC. An die Kathode kommt das 5V Signal. Wenn die 5V auf low gehen, wird der MC Eingang auch auf low (minus der Uf der Diode) gehen.
Da ein AVR-Eingang einen Spannungsteiler wenn überhaupt nur minimal belastet, könnte dieser auch entsprechend hochohmig ausfallen. Bei wenigen Hz Takt an diesem Eingang spielt dann wohl auch die Kapazität des Eingangs keine Rolle.
Mike K. schrieb: > Ein High von > 5V soll ganz normal an einem 3,3V AVR detektiert werden Hi, und wie ist bei der 5V-Logikseite der Low-Pegel? Ist das TTL oder CMOS? Die Störabstände sind da auch noch anders. Bei CMOS "wandern" die H/L Zuordnungen mit der Betriebsspannung. Ein H/L-Übergang typisch bei UB Halbe. Bei TTL sieht das anders aus. Auf jeden Fall den AVR-Port-Eingang sicher auf Low ziehen lassen. (Pull down Widerstand) ciao gustav
Mike K. schrieb: > Hallo Leute, das leidige Problem mit 5V High an 3,3V-AVR. Ein High von > 5V soll ganz normal an einem 3,3V AVR detektiert werden > > Wie am besten vorgehen? Einfach die 5V über 1k auf den avr-port? Die einfachste Variante ist sicher ein Längswiderstand in Verbindung mit der internen Schutzdiode. > das signal im Hertz-Bereich liegt In dem Fall darfst du gern auch deutlich mehr als 1K nehmen. Denn wenn da ein knackiges H mit 5V anliegt, fließt ja Strom durch die Schutzdiode in die 3.3V Schiene. Dabei sind zwei Dinge zu beachten: 1. die Schutzdiode hält nur begrenzt Strom aus. Der Hersteller spezifiziert kein Limit, sondern empfiehlt, die Schutzdioden gar nicht zu belasten. Als Daumenregel sollte man 10mA nicht überschreiten. Vorsichtige Naturen bleiben unter 1mA. 2. der injizierte Strom hebt das Potential der 3.3V Schiene an, wenn er nicht abfließen kann. Wenn an den 3.3V also nur der AVR hängt und der vielleicht noch im Sleep ist, dann können die 3.3V bis über 4.3V steigen. Die Größe des Vorwiderstands wird nach oben nur durch die Tiefpaßwirkung begrenzt, die er in Verbindung mit der Pin-Eingangskapazität bildet.
Mit meiner Diode fliesst bei high gar kein Strom und bei low nur der aus dem internen Pullup. Gleichzeitig schützt sie vor jeglicher Überspannung, so z.B. auch gegen 12V oder 50V.
Matthias S. schrieb: > Mit meiner Diode fliesst bei high gar kein Strom und bei low nur der aus > dem internen Pullup. Das kann aber auch von Nachteil sein, wenn man den µC aus diesen 5 V versorgen möchte ;-) Mike K. schrieb: > Leider > quillt das Form an Beiträgen dazu über, aber dennoch ist das richtig > nicht dabei. ... Schreib besser, Du bist nicht in der Lage eine sinnvolle Lösung zu erkennen. Auch hier sind Dir schon durchweg 'richtige' Lösungen genannt worden, mit einer dummen Ausnahme. Karl B. schrieb: > Bei TTL sieht das anders aus. Um TTL, ECL, VXL, ... geht es hier doch garnicht.
oh, Spannungsteiler habe ich noch vergessen. also 3 möglichkeiten...also 10k Ohm wäre dann besser? Da ich smd habe und kein großes Geschick bei Hühnerfutter, freue ich mich über jedes gesparte Bauteil. ;)
Karl B. schrieb: > Ist das TTL oder CMOS? Besser formuliert: Was liefert der Ausgang. Es gibt die Totem Pole Endstufen oder "nur" open drain/soure "Endstufen" Da hatte ich schon erhebliche Pegelprobleme. Es wäre durchaus hilfreich, wenn der TO sagte, "woher" der 5V-Pegel kommt. "...Wenn z.B. ein 5V Bauteil ein Signal an ein 3V Bauteil schickt, können beide Bauteile beschädigt werden...." https://www.mikrocontroller.net/articles/Pegelwandler https://www.mikrocontroller.net/articles/Pegelwandler#5_V_.E2.87.92_3.2C3_V ciao gustav
Vorwiderstand + 3V-Z-Diode am Eingang geht auch noch. Vermeidet die Rückspeisung auf die 3,3V-Versorgung. Meist stört diese nicht, manchmal aber schon.
H.Joachim S. schrieb: > Vermeidet die > Rückspeisung auf die 3,3V-Versorgung. Meist stört diese nicht, manchmal > aber schon. Die stört vor allem dann wenn man die Low-Power Schlafmodi nutzt, in denen der µC (und Rest der 3,3V Schaltung) extrem wenig Strom "verbrauchen". Dann würde der über die 5V eingespeisste Strom die 3,3V anheben - möglicherweise mit katastrophalen Konsequenzen, also Rauchentwicklung.
m.n. schrieb: > Das kann aber auch von Nachteil sein, wenn man den µC aus diesen 5 V > versorgen möchte ;-) Das ist wahr, die Diode sperrt ohne Erbarmen :-P Ich finde es schon lustig, das Lösungen mit 2 und mehr Bauteilen vorgeschlagen werden, obwohl es so einfach ist. Und z.B. Z-Dioden für 3,3V sind so ungenau, das man sich da eher Probleme eintritt.
Matthias S. schrieb: > m.n. schrieb: >> Das kann aber auch von Nachteil sein, wenn man den µC aus diesen 5 V >> versorgen möchte ;-) > > Das ist wahr, die Diode sperrt ohne Erbarmen :-P Ich finde es schon > lustig, das Lösungen mit 2 und mehr Bauteilen vorgeschlagen werden, > obwohl es so einfach ist. Und z.B. Z-Dioden für 3,3V sind so ungenau, > das man sich da eher Probleme eintritt. Die Längsdiode, die nur den L-Pegel durchreicht, ist aber auch nicht ohne Probleme. Zum einen verschiebt sie den L-Pegel um eine Diodenflußspannung. Ein normaler CMOS-Eingang hat bei 3.3V Versorgung den Umschaltpunkt bei 1.65V, ein TTL-kompatibler gar bei 1.4V. Die Diode verschiebt den L-Pegel näher an den Umschaltpunkt - der Störabstand wird geringer. Der andere Effekt ist, daß H->L und L->H Flanken unterschiedlich lange verzögert werden. Die Eingangskapazität des Pins wird zwar schnell entladen (durch die Diode) aber nur langsam aufgeladen (durch den Pullup). Das ist hier eher kein Problem, anderwärts kann es das aber werden.
Mike K. schrieb: > Wie am besten vorgehen? Einfach die 5V über 1k auf den avr-port? Oder > doch per Transistor wandeln? Mike K. schrieb: > oh, Spannungsteiler habe ich noch vergessen. Die einfache Lösung mit 1k Serienwiderstand wird gehen, wenn die schon beschriebenen Randbedinungen (minimaler Stromverbrauch des AVR) und die fehlende Spezifikation bez. der Schutzdioden kein Problem darstellen. Ich würde den Spannungsteiler bevorzugen. 1,2k und 2,2k oder Vielfache davon. Also auch 12k und 22k bei deiner sehr langsamen Geschwindigkeit. Das hat gleichzeitig den Vorteil, dass der Quelleninnenwiderstand sinkt - in dem Fall wäre er 770R, also besser als mit dem 1k Serienwiderstand (BB-Einschränkung wegen parasitärer Kapazitäten wäre geringer, spielt aber hier keine Rolle). Allerdings hast du dann an dem Quellen-Port eine Belastung mit 1,5mA. Für jede andere sonst vorgeschlagene Lösung musst du auch zwei Bauteile löten. Axel S. schrieb: > Als Daumenregel sollte man 10mA nicht überschreiten. Das halte ich schon für sehr viel, dafür dass beim AVR keine Spec dazu vorliegt. Matthias S. schrieb: > Mit meiner Diode fliesst bei high gar kein Strom und bei low nur der aus > dem internen Pullup. Gleichzeitig schützt sie vor jeglicher > Überspannung, so z.B. auch gegen 12V oder 50V. Das ist noch eine Variante, aber nur, wenn der interne Pullup auch ausreicht. Der ist mir in fast allen Fällen zu hochohmig, nur nicht, um einen offenen, unbenutzten Eingang zu beschalten. Nachteil: bei einer Si-Diode ist dann der LOW-Pegel deutlich angehoben. Übrigens: von 12V oder 50V war nie die Rede :-).
m.n. schrieb: > Auch hier sind Dir schon durchweg 'richtige' Lösungen genannt > worden, mit einer dummen Ausnahme. > > Karl B. schrieb: >> Bei TTL sieht das anders aus. Karl B. schrieb: > Bei CMOS "wandern" die H/L Zuordnungen mit der Betriebsspannung. Ein > H/L-Übergang typisch bei UB Halbe.Bei TTL sieht das anders aus. Andere User bestätigen meine Pegel-Aussage auch. Axel S. schrieb: > Ein normaler CMOS-Eingang hat bei 3.3V Versorgung > den Umschaltpunkt bei 1.65V, ein TTL-kompatibler gar bei 1.4V. Arbeite mit CD4010, basta. (Oder 4050) (Pin 1 an 3,3V, Pin 16 an 5V) ciao gustav
HildeK schrieb: > bei einer Si-Diode ist dann der LOW-Pegel deutlich angehoben. > Übrigens: von 12V oder 50V war nie die Rede :-). Muss ja keine Si-Diode sein,kann ja auch Schottky sein. Aber selbst die Si-Diode funktioniert sicher und ist tausendfach bewährt, vor allem in Umgebungen, wo es doch mal Überspannungen gibt. Wenn der Pullup zu hochohmig ist, macht man eben einen niedrigeren parallel. Dann sinds immer noch 2 Bauteile und die Schaltung zieht bei high immer noch keinen Strom aus der 5V Quelle.
Matthias S. schrieb: > Wenn der Pullup zu > hochohmig ist, macht man eben einen niedrigeren parallel. Dann sinds > immer noch 2 Bauteile und die Schaltung zieht bei high immer noch keinen > Strom aus der 5V Quelle. Ich hatte ja deine Variante nicht 'zerissen' :-). Die Forderung, dass kein Strom aus der Quelle fließen darf, gab es nicht, von Überspannung war auch nicht die Rede und zwei Widerstände sind auch nur zwei Bauelemente. Ein 0603-R ist jedenfalls kleiner als die meisten SMD-Dioden. Auf jeden Fall hat der TO mehrere sinnvolle Vorschläge, wobei einen extra IC spendieren halte ich bei den Randbedingungen für deutlich übertrieben.
In der AppNote AVR182 wird sogar nur ein Längswiderstand zur Detektion des Netznulldurchgangs verwendet an 230V. Alles kein Problem, solange der Widerstand groß genug. Infineon spezifiziert 5mA pro Pin (XMC-Reihe), Texas 2mA.
gauna schrieb: > Infineon spezifiziert 5mA pro Pin (XMC-Reihe), Texas 2mA. Xilinx-Support hat mir mal 10mA genannt. In der erwähnten Appnote ist 1Meg Serienwiderstand drin, das wären dann Peak nur ca. 300μA.
gauna schrieb: > Infineon spezifiziert 5mA pro Pin (XMC-Reihe), Texas 2mA. Schön, dass der Signalpin den Strom ableiten kann. Was ist, wenn die Stromaufnahme der Schaltung geringer als die Summe dieser Ströme ist ... ja, es hebt Dir die Betriebsspannung an und der Kram geht Dir um die Ohren.
Falls du den uP abschalten möchtest musst du die Versorgung schützen. Kein Problem. In meinen Anwendungsfällen wäre dies jedenfalls nie der Fall. Jede Statusled braucht bereits mehr.
Manfred schrieb: > Schön, dass der Signalpin den Strom ableiten kann. Was ist, wenn die > Stromaufnahme der Schaltung geringer als die Summe dieser Ströme ist ... > ja, es hebt Dir die Betriebsspannung an und der Kram geht Dir um die > Ohren. Das wurde ja weiter oben schon mehrfach genannt. Aber es trifft trotzdem nicht immer zu, letztlich nur bei Linearreglern und einfacheren Schaltreglern. Wird die Schaltung z.B. mit einer Batterie direkt versorgt oder mit einem synchronen Schaltregler, dann passiert nichts.
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.