Hallo zusammen, ich teste gerade eine I2C-Verbindung zwischen einem Raspberry (3,3 Volt) und einem Atmel-MC (5 Volt). Meine Überlegung: Ich ziehe mit je einer 3,3V Zener-Diode an SCL und SCA die Busspannung auf 3,3 Volt, damit die beiden Rpi Pins keine Spannungs-Überlastung erfahren. Nach meiner Überlegung sollten HIGH und LOW noch im der Atmel - Spezifikation liegen und der Bus sollte funktionieren. Der Laie staunt - der Fachmann wundert sich - es funktioniert!!! Ich vermeide somit die ICs zur Spannungsumsetzung auf dem Bus. Allerdings, es funktioniert nur mit zwei 3,3 Volt seriell geschalteten Zener-Diode pro Pin (also 4 Zener - Dioden insgesamt): Zu Anfang habe ich nur eine Zener-Diode pro Leitung genommen, es stellen sich dann aber keine 3,3 Volt ein, sondern nur ca. 2 Volt. Ich erkläre mir das mit der typischen ANALOGEN Kennlinie bei einer Zener-Diode, es wird ja keine diskrete Sprungfunktion bei 3,3 Volt geliefert. Und nun die spannende Frage: Warum stellen sich exakt die 3,30 Volt (auf zwei Stellen hinter dem Komma genau) bei zwei hintereinandergschalteten 3,3 Volt Zener-Dioden an 5 Volt ein. Zufall? Im Prinzip könnte mir die Begründung egal sein, da die Lösung ja robust funktioniert und ich somit den Tranceiver ersetzen kann - aber das Thema ist schon hochinteressant (für mich). Im Voraus Vielen Dank! Gruesse
:
Bearbeitet durch User
Hendrik L. schrieb: > Allerdings, es funktioniert nur mit zwei 3,3 Volt seriell geschalteten > Zener-Diode pro Pin (also 4 Zener - Dioden insgesamt): Du versuchst also eine +5V Leitung mit einer 6.6 V Pseudo-Z-Diode zu clampen? Gute Idee, topp ;) Hendrik L. schrieb: > Und nun die spannende Frage: Warum stellen sich exakt die 3,30 Volt (auf > zwei Stellen hinter dem Komma genau) bei zwei hintereinandergschalteten > 3,3 Volt Zener-Dioden an 5 Volt ein. Zufall? Schon mal überlegt, welcher Strom nötig ist damit deine Z-Dioden auch richtig arbeiten ;) Sind das jetzt genügend Stichworte? Hendrik L. schrieb: > Der Laie staunt - der Fachmann wundert sich - es funktioniert! Der Fachmann wundert sich mit Sicherheit nicht, der machts gleich richtig ;)
Vermutlich ein Fehler in der Schaltung. Zeichne mal nen schaltplan. Aber warum hängst du den Pullup nicht einfach an 3,3V? Dann brauchst du gar keine Z-Dioden
Schlumpf schrieb: > Aber warum hängst du den Pullup nicht einfach an 3,3V? > Dann brauchst du gar keine Z-Dioden Oder den Atmel-MC auf 3.3 V laufen lassen, tut ja auch nicht weh ;)
M. K. schrieb: > Hendrik L. schrieb: >> Allerdings, es funktioniert nur mit zwei 3,3 Volt seriell geschalteten >> Zener-Diode pro Pin (also 4 Zener - Dioden insgesamt): > > Du versuchst also eine +5V Leitung mit einer 6.6 V Pseudo-Z-Diode zu > clampen? Gute Idee, topp ;) > > Hendrik L. schrieb: >> Und nun die spannende Frage: Warum stellen sich exakt die 3,30 Volt (auf >> zwei Stellen hinter dem Komma genau) bei zwei hintereinandergschalteten >> 3,3 Volt Zener-Dioden an 5 Volt ein. Zufall? > > Schon mal überlegt, welcher Strom nötig ist damit deine Z-Dioden auch > richtig arbeiten ;) > > Sind das jetzt genügend Stichworte? > > Hendrik L. schrieb: >> Der Laie staunt - der Fachmann wundert sich - es funktioniert! > > Der Fachmann wundert sich mit Sicherheit nicht, der machts gleich > richtig ;) Klar ist der Strom und die Kennlinie der Schlüssel zur Lösung - weiss ich auch. Aber warum stellen sich EXAKT die 3,30 Volt ein (warum keine 4,1 Volt oder die 5 volt vom Atmel (bei anzunehmender 6,6 Pseudo Spannung), sprich warum funktioniert es überhaupt) - ergibt sich hier eine "automatische" Regelung durch die Kennlinien auf exakt 3,30 Volt - das interessiert mich! Gruesse
M. K. schrieb: > Schlumpf schrieb: >> Aber warum hängst du den Pullup nicht einfach an 3,3V? >> Dann brauchst du gar keine Z-Dioden > > Oder den Atmel-MC auf 3.3 V laufen lassen, tut ja auch nicht weh ;) Sind ATtinys ... ich bnötige die maximale Taktfrequenz, darum 5 Volt! Gruesse
Schlumpf schrieb: > Vermutlich ein Fehler in der Schaltung. > Zeichne mal nen schaltplan. > > Aber warum hängst du den Pullup nicht einfach an 3,3V? > Dann brauchst du gar keine Z-Dioden Definitiv kein Fehler in der Schaltung. Die Stromrichtungen der beiden seriellen Zener-Dioden laufen sich definitiv nach. Richtig gepolt sind sie auch, sonst würden sich ja kein HIGH (3,3 Volt) und LOW (0 Volt) am Bus einstellen. Der Bus arnbeitet ja ordnungsgemäss! Gruesse
Hendrik L. schrieb: > Aber warum stellen sich EXAKT die 3,30 Volt ein (warum keine 4,1 Volt > oder die 5 volt vom Atmel (bei anzunehmender 6,6 Pseudo Spannung), > sprich warum funktioniert es überhaupt) - ergibt sich hier eine > "automatische" Regelung durch die Kennlinien auf exakt 3,30 Volt - das > interessiert mich! Exemplarstreuung und Glück, dass es eben exakt 3,3 Volt sind. Ansonsten kann man das auch mit den Diagrammen deiner ominösen und nicht näher benannten Z-Dioden herleiten. Es fallen ja pro Diode damit nur umrum 1,65 Volt ab, da sich der fließende Strom verringert hat. Wenn du den "Vorwiderstand" deiner Dioden - und damit den Strom durch die Dioden - veränderst, dann wird sich auch der Spannungsabfall verändern.
Z-Dioden bis etwa 4V haben eine erbärmliche Kennlinie und die Nennspannung stellt sich nur beim Nennstrom ein.
Hendrik L. schrieb: > Definitiv kein Fehler in der Schaltung. Dann hast du ja alles richtig gemacht! Und du musst uns keinen Schaltplan zeichnen. Funktionieren alleine ist noch lange kein Beweis für Fehlerfreiheit der Schaltung. Ich tippe mal drauf, dass die Clamping-Diode des RasPi leitet.
Hendrik L. schrieb: > Aber warum stellen sich EXAKT die 3,30 Volt ein (warum keine 4,1 Volt > oder die 5 volt vom Atmel (bei anzunehmender 6,6 Pseudo Spannung), > sprich warum funktioniert es überhaupt) - ergibt sich hier eine > "automatische" Regelung durch die Kennlinien auf exakt 3,30 Volt - das > interessiert mich! Schaltplan & Aufbau ist dafür wichtig. Ziemlich sicher hast du einen falschen Aufbau bzw. dein Aufbau ist anders als du meinst. Möglicherweise sind die Z-Dioden gar nicht seriell sondern parallel. Dann wäre dein Treiber überlastet, der will nämlich auf 5 V rauf und wird durch die Z-Dioden auf 3.3.V begrenzt. Eine Z-Diode fordert noch zu wenig Strom, deshalb klappt es nicht mit einer Z-Diode sondern du brauchst zwei. Ist nicht untypisch, dass I2C Treiber nur wenige mA Strom liefern können, daher dürfen ja auch die Pullups nicht beliebig klein gemacht werden sondern brauchen eine bestimmte Größe, typisch sind ja 4.7 kOhm was dann einen Strom von 1 mA fordert. Weniger als 1 kOhm stellt oft schon eine Überlastung dar. Das ist auch der Grund warum die Idee mit dem Clampen mit der Z-Diode keine gute Idee ist: Das überlastet schlicht den I2C-Treiber.
A. K. schrieb: > Z-Dioden bis etwa 4V haben eine erbärmliche Kennlinie und die > Nennspannung stellt sich nur beim Nennstrom ein. Danke, das wollte ich gerade ergänzen. Schau dir mal Kennlinien einer 3,3 Volt Z-Diode an und lege dann mal die Kennlinie einer 20 Volt Z-Diode daneben. Zumal: Wenn du DEINE EINE Z-Diode mit dem Nennstrom betreiben würdest, hättest du auch deinen gewünschten Spannungsabfall von UNGEFÄHR 3,3 Volt.
Hendrik L. schrieb: > Sind ATtinys ... ich bnötige die maximale Taktfrequenz, darum 5 Volt! Achja, gibt übrigens noch ein Kniff wie man aus 5 Volt 3.3 V machen kann, nennt sich Spannungsteiler. 1 kOhm zu 2 kOhm müssten ungefähr hinkommen. Da brauchste keine Z-Diode mehr und brauchst dich nicht auf deren ungenaue Kennlinie verlassen.
Hendrik L. schrieb: > Hallo zusammen, > > ich teste gerade eine I2C-Verbindung zwischen einem Raspberry (3,3 Volt) > und einem Atmel-MC (5 Volt). > > Meine Überlegung: Ich ziehe mit je einer 3,3V Zener-Diode an SCL und SCA > die Busspannung auf 3,3 Volt, damit die beiden Rpi Pins keine > Spannungs-Überlastung erfahren. > > Nach meiner Überlegung sollten HIGH und LOW noch im der Atmel - > Spezifikation liegen und der Bus sollte funktionieren. > > Der Laie staunt - der Fachmann wundert sich - es funktioniert!!! Ich > vermeide somit die ICs zur Spannungsumsetzung auf dem Bus. Schöner Murks. So ein Pegelwandler für I2C ist ja auch soooo teuer und sooo kompliziert. > Allerdings, es funktioniert nur mit zwei 3,3 Volt seriell geschalteten > Zener-Diode pro Pin (also 4 Zener - Dioden insgesamt): Logisch, denn deine 3,3V Zener haben erst bei ca. 10mA ihre 3,3V. Deren Kennlinie ist eine arg flache Bananenkurve. D.h. an einem eher hochohmigen Bus mit eher schwachen Puul-Ups Widerständen von vielleicht 2k klemmen die schon bei 2-2,5V. > Zu Anfang habe ich nur eine Zener-Diode pro Leitung genommen, es stellen > sich dann aber keine 3,3 Volt ein, sondern nur ca. 2 Volt. Sag ich doch ;-) >Ich erkläre > mir das mit der typischen ANALOGEN Kennlinie bei einer Zener-Diode, Alle Kennlinien sind analog. > es > wird ja keine diskrete Sprungfunktion bei 3,3 Volt geliefert. Jaja, da hat mal wieder jemand was gehört aber nicht verstanden. Zum Nachplappern reicht's gerade noch. > Und nun die spannende Frage: Warum stellen sich exakt die 3,30 Volt (auf > zwei Stellen hinter dem Komma genau) bei zwei hintereinandergschalteten > 3,3 Volt Zener-Dioden an 5 Volt ein. Zufall? Ja. > Im Prinzip könnte mir die Begründung egal sein, da die Lösung ja robust > funktioniert Unfug! Es funktioniert bei dir auf deinem Basteltisch in diesem Moment! Robust ist was anderes. Baue die Schaltung 100mal auf und teste sie unter verschiedenen Klimabedingungen, mach ordentliche EMV-Test und dann reden wir nochmal über das Thema "robuste Lösung". > und ich somit den Tranceiver ersetzen kann Du Held! Damit sparst du der Welt sicherlich Tonnen an Silizium und noch viel mehr Tonnen an CO2, das bei dessen Herstellung anfällt. Man sollte dich mit dem Greta-Thunberg-Orden 1. Klasse auszeichnen! > - aber das Thema > ist schon hochinteressant (für mich). Ja, so wie für einen 10jährigen die schillernden Farben einer Seifenblase. Er hat keinen Schimmer wie das geht, ist aber total begeistert.
M. K. schrieb: > Schlumpf schrieb: >> Aber warum hängst du den Pullup nicht einfach an 3,3V? >> Dann brauchst du gar keine Z-Dioden > > Oder den Atmel-MC auf 3.3 V laufen lassen, tut ja auch nicht weh ;) Oder die Leitung auf 3V3 ziehen und zwei kleine FETs als Pegelshifter einbauen. Weil ja Atmel so seltsame µC-Eingänge hat, die bei 5V keine 3V3 lesen können. Also sowas: https://www.nxp.com/docs/en/application-note/AN10441.pdf
Stefan S. schrieb: > Hendrik L. schrieb: >> Aber warum stellen sich EXAKT die 3,30 Volt ein (warum keine 4,1 Volt >> oder die 5 volt vom Atmel (bei anzunehmender 6,6 Pseudo Spannung), >> sprich warum funktioniert es überhaupt) - ergibt sich hier eine >> "automatische" Regelung durch die Kennlinien auf exakt 3,30 Volt - das >> interessiert mich! > > Exemplarstreuung und Glück, dass es eben exakt 3,3 Volt sind. > Ansonsten kann man das auch mit den Diagrammen deiner ominösen und nicht > näher benannten Z-Dioden herleiten. > > Es fallen ja pro Diode damit nur umrum 1,65 Volt ab, da sich der > fließende Strom verringert hat. Wenn du den "Vorwiderstand" deiner > Dioden - und damit den Strom durch die Dioden - veränderst, dann wird > sich auch der Spannungsabfall verändern. Das werde ich mit zwei (und mehr) ATTinys austesten. Wahrscheinlich hast Du Recht. Aber dann heisst das, pro ATTiny immer 4 Z-Dioden dieses typs ... und ich brauche mir keine weiteren Überlegungen anstrengen. Z-Dioden sind aus China ....! ;-) Gruesse
Ich nehm da ne kleine blaue oder weisse LED in 0603. Bei 100Khz kein Problem. Sieh Dir auch die Flanken an, ob die Sperrschichtkapazität der Dioden Dir hier die Flanken evtl. zu sehr verschleifen. (nur ne Idee) Hier fliessen doch nur n paar mikroampere durch deine Z-Dioden. der Querstrom soll ca. dem zehnfachen des gewünschten Betriebsstroms entsprechen. 5V- 3.3V macht 2.7V. das bei 4K7 oder 2k2 Pull-Up ergibt gerdemal um 1mA herum, bei 4K7 nur n halbes. Der ATTiny schaltet keine 5V hart auf den Bus. Die Pull-ups kommen an die 3V3 Leitung. Die Open-Drain Ausgänge ziehen das sicher auf Null, H-Pegel wird dann von den Pull-Ups an 3V3 sichergestellt.
A. K. schrieb: > Z-Dioden bis etwa 4V haben eine erbärmliche Kennlinie und die > Nennspannung stellt sich nur beim Nennstrom ein. Es sind eher 7V. https://de.wikipedia.org/wiki/Zener-Effekt Ok, der Artikel nennt 5,5V, aber irgendwie stand da mal was von 6V? Egal, mein praktische, persönliche Schwelle sind die üblichen 6,8V, die es auch als Bauteil gibt.
jemand schrieb: > Oder die Leitung auf 3V3 ziehen und zwei kleine FETs als Pegelshifter > einbauen. Weil ja Atmel so seltsame µC-Eingänge hat, die bei 5V keine > 3V3 lesen können. Da fehlt der Smilie ;) 0,6 * 5,0 V sind bei mir 3,0 V ;)
:
Bearbeitet durch User
M. K. schrieb: > Da fehlt der Smilie ;) > 0,6 * 5,0 V sind bei mir 3,0 V ;) Wirklich? Da baut man extra 3,3V CMOS mit HIGH>60%VCC, damit man viel Störabstand hat (>2V!), und dann kommen Schlaumeier wie du, die meinen, 0,3V reichen dicke aus. Glückwunsch! Du darfst auch im Winter bei Extrembedingungen mit fast abgefahrenen Winterreifen fahren!
Hallo, ich wundere mich, warum in letzter Zeit so oft Z-Dioden gegen Überspannung genutzt werden. Wenn die Versorgung des Raspi ausfällt, dann sind doch auch Spannungen unter 3.3 Volt bereits Überspannung. Sehe ich das richtig ? D.h. der einzige korrekte Schutz wären Dioden gegen die 3.3V des Chips. Um echte Überspannungen abzuhalten müssen dazu dann nicht noch Widerstände im Stromkreis die Ströme begrenzen ? Gruß, Michael
Falk B. schrieb: > Wirklich? Da baut man extra 3,3V CMOS mit HIGH>60%VCC, damit man viel > Störabstand hat (>2V!), und dann kommen Schlaumeier wie du, die meinen, > 0,3V reichen dicke aus. Glückwunsch! Du darfst auch im Winter bei > Extrembedingungen mit fast abgefahrenen Winterreifen fahren! Lieber Falk, die AVRs sind genau so spezifiziert, dass alles, was größer 0.6 * Vcc (bei Vcc = 2.4 V ... 5.5 V) für sie High ist, vgl. diverse AVR/ATTiny-Datasheets. Ebenso ist bei ihnen spezifiziert, dass alles, was kleiner 0.3 * Vcc für sie Low ist. Ich sehe daher kein Problem für einen AVR, der mit 5 V betrieben wird, ihm ein 3.3 V Signal als High zu verkaufen. Damit ist man voll in der Spezifikation des Chips. Wo genau siehst du da ein Problem?
M. K. schrieb: > verkaufen. Damit ist man voll in der Spezifikation des Chips. Wo genau > siehst du da ein Problem? Google Störabstand Toleranzen
Falk B. schrieb: > M. K. schrieb: > >> verkaufen. Damit ist man voll in der Spezifikation des Chips. Wo genau >> siehst du da ein Problem? > > Google Störabstand Toleranzen Was hat der Störabstand denn damit jetzt zu tun? Für den AVR ist bei 5 V Vcc alles was 3 V und größer ist High. Der Störabstand ist dem AVR völlig egal, solange das Signal über 3 V ist sieht er High, solange es unter 1.5 V ist sieht er Low (genauer: Der Störabstand beim AVR ist >= 0.6 * Vcc für High und <= 0.3 * Vcc für Low). Läge das Signal dazwischen würde ich dir zustimmen, liegt es aber nicht. Du siehst hier ein Problem wo schlicht kein Problem ist.
:
Bearbeitet durch User
Falk B. schrieb: >> Z-Dioden bis etwa 4V haben eine erbärmliche Kennlinie und die >> Nennspannung stellt sich nur beim Nennstrom ein. > > Es sind eher 7V. Das hängt von der persönlichen Grenze zwischen "erbärmlich" und "so lala" ab. Auch schon die echten Zenerdioden werden mit steigender Spannung besser.
:
Bearbeitet durch User
M. K. schrieb: > Was hat der Störabstand denn damit jetzt zu tun? Soviel, dass jetzt eine Störung auf der Leitung in der Größe 0.2V ausreicht, um einen falschen Pegel zu erkennen. Bei 5V-Signalen waren das noch 2V.
M. K. schrieb: > Was hat der Störabstand denn damit jetzt zu tun? Für den AVR ist bei 5 V > Vcc alles was 3 V und größer ist High. Der Störabstand ist dem AVR > völlig egal, solange das Signal über 3 V ist sieht er High, solange es > unter 1.5 V ist sieht er Low (genauer: Der Störabstand beim AVR ist >= > 0.6 * Vcc für High und <= 0.3 * Vcc für Low). Läge das Signal dazwischen > würde ich dir zustimmen, liegt es aber nicht. Du siehst hier ein Problem > wo schlicht kein Problem ist. [ ] Du weißt, was Störabstand ist. [ ] Du weißt, was robuste Schaltungstechnik ist [x] Du bist ein Bastler
HildeK schrieb: > Soviel, dass jetzt eine Störung auf der Leitung in der Größe 0.2V > ausreicht, um einen falschen Pegel zu erkennen. 0.6 V * 5.0 V sind bei mir 3.0 V. Der Raspi läuft mit 3.3 V. 3.3 V +/- 0.2 V macht bei mir 3.1 V ... 3.5 V. Liegt immer noch innerhalb der Spezifikation des AVRs um einen Highpegel zu erkennen. Sehe also immer noch kein Problem.
M. K. schrieb: > 0.6 V * 5.0 V sind bei mir 3.0 V. Der Raspi läuft mit 3.3 V. 3.3 V +/- > 0.2 V macht bei mir 3.1 V ... 3.5 V. Liegt immer noch innerhalb der > Spezifikation des AVRs um einen Highpegel zu erkennen. Sehe also immer > noch kein Problem. Sicher, so wie man den Neumond nicht sehen kann. Er ist trotzdem da ;-)
Falk B. schrieb: > M. K. schrieb: >> Was hat der Störabstand denn damit jetzt zu tun? Für den AVR ist bei 5 V >> Vcc alles was 3 V und größer ist High. Der Störabstand ist dem AVR >> völlig egal, solange das Signal über 3 V ist sieht er High, solange es >> unter 1.5 V ist sieht er Low (genauer: Der Störabstand beim AVR ist >= >> 0.6 * Vcc für High und <= 0.3 * Vcc für Low). Läge das Signal dazwischen >> würde ich dir zustimmen, liegt es aber nicht. Du siehst hier ein Problem >> wo schlicht kein Problem ist. > > [ ] Du weißt, was Störabstand ist. > [ ] Du weißt, was robuste Schaltungstechnik ist > [x] Du bist ein Bastler Ernsthaft? Weil ich das Datenblatt des AVRs gelesen habe und sehe, dass ich innerhalb der Spezifikation bleibe bin ich ein Bastler? Wie wäre es wenn du mal in das Datenblatt des AVR schauen würdest bevor du solche Sprüche klopfst.
Falk B. schrieb: > M. K. schrieb: >> 0.6 V * 5.0 V sind bei mir 3.0 V. Der Raspi läuft mit 3.3 V. 3.3 V +/- >> 0.2 V macht bei mir 3.1 V ... 3.5 V. Liegt immer noch innerhalb der >> Spezifikation des AVRs um einen Highpegel zu erkennen. Sehe also immer >> noch kein Problem. > > Sicher, so wie man den Neumond nicht sehen kann. Er ist trotzdem da ;-) Richtig. Der Mond ist immer noch da. Genauso sicher wie der AVR ein 3.3V Signal bei 5.0 V Vcc als High erkennen wird.
Begreifst du das jetzt echt nicht oder stellst du dich absichtlich doof?
M. K. schrieb: > Ernsthaft? Weil ich das Datenblatt des AVRs gelesen habe und sehe, dass > ich innerhalb der Spezifikation bleibe bin ich ein Bastler? Wie wäre es > wenn du mal in das Datenblatt des AVR schauen würdest bevor du solche > Sprüche klopfst. Also so schwer finde ich Falks Argument jetzt hier nicht zu verstehen: Ja, es geht, aber wenn durch z.B. ein Gerät nebendran eine 1 Vpp Störung in die Leitung einkoppelt, ist die Variante mit Pegelwandler noch ok, während die Pfusch-Variante dann einfach nicht mehr funktioniert. Man kann sicherlich für die Bastel-Situation sagen, dass einem das egal ist, gutes Design ist es aber nicht.
M. K. schrieb: > Weil ich das Datenblatt des AVRs gelesen habe und sehe, dass > ich innerhalb der Spezifikation bleibe bin ich ein Bastler? Nein, nicht deshalb. Sondern weil du davon ausgehst, dass in einer digitalen Schaltung die Signale sauber sind und keine Störungen existieren. Sei es, dass diese Störsignale intern durch die Schaltvorgänge entstehen und das Layout auch noch einen Teil dazu beiträgt, oder sei es, dass sie von extern eingekoppelt werden. Also kann ich nur zitieren: Falk B. schrieb: > [ ] Du weißt, was Störabstand ist.
M. K. schrieb: > Richtig. Der Mond ist immer noch da. Genauso sicher wie der AVR ein 3.3V > Signal bei 5.0 V Vcc als High erkennen wird. Und ab wann meinst du, daß der Pegel unsicher ist? Ab 3,1V? Ab 3,01V? Ab 2,99V? Wieviel robuster ist wohl eine Schaltung, die dem AVR ein 5V Signal anbietet im Vergleich zu einem 3,3V Signal? Alles überflüssig?
M. K. schrieb: > Falk B. schrieb: >> Wirklich? Da baut man extra 3,3V CMOS mit HIGH>60%VCC, damit man viel >> Störabstand hat (>2V!), und dann kommen Schlaumeier wie du, die meinen, >> 0,3V reichen dicke aus. Glückwunsch! Du darfst auch im Winter bei >> Extrembedingungen mit fast abgefahrenen Winterreifen fahren! > > Lieber Falk, die AVRs sind genau so spezifiziert, dass alles, was größer > 0.6 * Vcc (bei Vcc = 2.4 V ... 5.5 V) für sie High ist, vgl. diverse > AVR/ATTiny-Datasheets. Ebenso ist bei ihnen spezifiziert, dass alles, > was kleiner 0.3 * Vcc für sie Low ist. Ich sehe daher kein Problem für > einen AVR, der mit 5 V betrieben wird, ihm ein 3.3 V Signal als High zu > verkaufen. Damit ist man voll in der Spezifikation des Chips. Wo genau > siehst du da ein Problem? Ich bin in Sachen AVR, TWi und Raspberry kein Anfänger. Ich weiss schon, was ich tue ....! Habe auch jahrelang mit Pegel Convertern dazwischen gearbeitet. Störabstand spielt keine (nennenswerte) Rolle - habe den Bus auf 20 Mhz runtergetaktet - er ist also an sich robust. Definitiv funktioniert die HIGH - LOW Erkennung bezüglich 3,3 Volt und 5,0 Volt ATmel - seitig auch absolut ROBUST - die Diskussion ist an dieser Stelle nicht zielführend - ein totaler Nebenkriegsschauplatz. Ich werde heute Abend einmal eine dritte Z-Diode seriell schalten und zudem auch einmal die Ströme messen, die in allen 3 Kosntellationen fliessen und berichten. Bis dahin - enspannt Euch und bleibt nett zueinander ... :-) Gruesse
M. K. schrieb: > 0.6 V * 5.0 V sind bei mir 3.0 V. völlig klar es gibt ja bei den 5V auch keine Toleranz, ich würde ja eher mit +-5% rechnen, wobei der Atmel auch 5,5V nimmt wie siehts bei +5,5V aus und davon 60% -> 3,3V > Der Raspi läuft mit 3.3 V. 3.3 V +/- ach auch mit NULL Toleranz und wenn der 3,2V hat? schon ist die schöne Rechnung im Eimer und man sucht sich einen Wolf. Dann doch lieber Pegelwandler mit FET oder Seriell R 470 Ohm mit Ableitdioden von GPIO PI nach VCC 3,3V vom PI, denn bei I2C interessiert nur low. Schlimmer siehts am PI immer bei den Ambilight Jünger aus die regelmäßig den Pegelwandler unterschlagen denn WS und APA vollen bis 0,8x VCC. Es gibt so viele mangelhafte Anleitungen im Netz, das die Realität oft untergeht.
Hendrik L. schrieb: > Störabstand spielt keine (nennenswerte) Rolle - habe den Bus auf 20 Mhz > runtergetaktet - er ist also an sich robust. i2c bei 20 MHz? Fast-Mode i2c ist 400 kHz, alles was schneller ist ist schon eine Spezialanwendung ...
Hendrik L. schrieb: > Ich bin in Sachen AVR, TWi und Raspberry kein Anfänger. Ich weiss schon, > was ich tue ....! Habe auch jahrelang mit Pegel Convertern dazwischen > gearbeitet. Soso. > Störabstand spielt keine (nennenswerte) Rolle Ach was, alles nur Bedenkenträgerei! >- habe den Bus auf 20 Mhz > runtergetaktet - er ist also an sich robust. I2C mit 20 MHz, schon klar. > Definitiv funktioniert die HIGH - LOW Erkennung bezüglich 3,3 Volt und > 5,0 Volt ATmel - seitig auch absolut ROBUST Wie hast du das geprüft? Oder ist das eher ein Glaubenssatz? Glauben liegt ja im Trend, Wissen war gestern. > - die Diskussion ist an > dieser Stelle nicht zielführend - ein totaler Nebenkriegsschauplatz. Du mußt es wissen.
Hendrik L. schrieb: > Definitiv funktioniert die HIGH - LOW Erkennung bezüglich 3,3 Volt und > 5,0 Volt ATmel - seitig auch absolut ROBUST - die Diskussion ist an > dieser Stelle nicht zielführend - ein totaler Nebenkriegsschauplatz. Na, wenn du das sagst... Naja, wer Z-Dioden in den I2C-Bus mit 20MHz baut, wird schon wissen, was er tut ;-)
Die bessere Vorgehensweise wäre die PullUps für SCL und SDA an die 3V3 des RasPi zu legen und nicht an die 5V des AVR
Alex W. schrieb: > Die bessere Vorgehensweise wäre die PullUps für SCL und SDA an die 3V3 > des RasPi zu legen und nicht an die 5V des AVR die üblichen AVR haben kein OC für I2C, high ist dort 5V bei VCC 5V Dann gibt es noch jede Menge I2C Module die zwar OC wären aber interne pullup Arrays auf 5V schalten, RTC Module z.B. nur 2 Pins ablöten macht keine Freude wenn die 4er Arrays so winzig sind.
Falk B. schrieb: > Hendrik L. schrieb: > >> Ich bin in Sachen AVR, TWi und Raspberry kein Anfänger. Ich weiss schon, >> was ich tue ....! Habe auch jahrelang mit Pegel Convertern dazwischen >> gearbeitet. > > Soso. > >> Störabstand spielt keine (nennenswerte) Rolle > > Ach was, alles nur Bedenkenträgerei! > >>- habe den Bus auf 20 Mhz >> runtergetaktet - er ist also an sich robust. > > I2C mit 20 MHz, schon klar. > >> Definitiv funktioniert die HIGH - LOW Erkennung bezüglich 3,3 Volt und >> 5,0 Volt ATmel - seitig auch absolut ROBUST > > Wie hast du das geprüft? Oder ist das eher ein Glaubenssatz? Glauben > liegt ja im Trend, Wissen war gestern. > >> - die Diskussion ist an >> dieser Stelle nicht zielführend - ein totaler Nebenkriegsschauplatz. > > Du mußt es wissen. Sorry - 20 khz natürlich - geschenkt. /* ======================================================================== == */ /* */ /* bcm2835.c */ /* For Raspberry Pi August 2012 */ /* http://www.byvac.com */ /* */ /* Description */ /* This is a bit banged I2C driver that uses GPIO from user space */ /* There is much more control over the bus using this method and any pins */ /* can be used. The reason for this file is that the BCM hardware does */ /* not appear to support clock stretch */ /* ======================================================================== == */ Ich verwende obige Routinen, um einen TWI des Raspberrys softwareseitig zu definieren und anzusteuern. Bekanntlich haben der bcm2835 und auch der bcm2836 einen TWI (Clock Stretching) Bug - siehe beispielhaft hier https://github.com/raspberrypi/linux/issues/254 Ich bin mir nicht (mehr) sicher, ob mit dem empfohlenen Bit Banging das Clock Stretching hier nun funktioniert: Monatelang laufen die Schaltungen einwandfrei - dann hängt der Bus auf einmal. Um möglichst viele Ursachen auszuschalten, kombiniere ich unterschiedliche Konstellationen. Ich dachte, bei der Verwendung von bestimmten Tranceivern in Verbindung mit obiger (empfohlener) Software sei das endgültig Problem gelöst - ist es aber (manchmal!) nicht. Momentan teste ich halt mit Z-Dioden - anstelle Transceivern. Die Tranceiver werde ich später wieder verwenden, wenn ich die Ursache als nicht Tranceiverseitig identifiziert habe. Gruesse
Der TWi Clock Stretching Bug wird hier noch detailierter beschrieben: http://www.advamation.com/knowhow/raspberrypi/rpi-i2c-bug.html Gruesse
Hendrik L. schrieb: >> I2C mit 20 MHz, schon klar. > Sorry - 20 khz natürlich - geschenkt. also das üben wir noch mal, die I2C Taktraten Ich kenne 100kHz und fast 400kHz, 20MHz oder 20kHz sind mir noch nie begegnet, wobei 20kHz ja am AVR evtl einstellbar sind, jedenfalls leichter als 20MHz
Da brauchen wir nix zu üben (ich jedenfalls nicht) - definitiv 20 khz - sorry for misspelling. Gruesse
:
Bearbeitet durch User
Stefan S. schrieb: > A. K. schrieb: >> Z-Dioden bis etwa 4V haben eine erbärmliche Kennlinie und die >> Nennspannung stellt sich nur beim Nennstrom ein. > > Danke, das wollte ich gerade ergänzen. > > Schau dir mal Kennlinien einer 3,3 Volt Z-Diode an und lege dann mal die > Kennlinie einer 20 Volt Z-Diode daneben. > > Zumal: Wenn du DEINE EINE Z-Diode mit dem Nennstrom betreiben würdest, > hättest du auch deinen gewünschten Spannungsabfall von UNGEFÄHR 3,3 > Volt. Die 3,3V kommen aus den ESD-Dioden des Raspberry, miss mal nach, welche Spannung der I2C-Bus ohne den Pi hat, das dürften die TV sein.
Sven B. schrieb: > Ja, es geht, aber wenn durch z.B. ein Gerät nebendran eine 1 Vpp Störung > in die Leitung einkoppelt Wenn sich auf I2C nen Störsignal mit 1 Vpp einkoppelt hat man aber ganz andere Probleme. Dietrich L. schrieb: > Nein, nicht deshalb. Sondern weil du davon ausgehst, dass in einer > digitalen Schaltung die Signale sauber sind und keine Störungen > existieren. Sei es, dass diese Störsignale intern durch die > Schaltvorgänge entstehen und das Layout auch noch einen Teil dazu > beiträgt, oder sei es, dass sie von extern eingekoppelt werden. Dann lies noch mal genauer. Falk B. schrieb: > Und ab wann meinst du, daß der Pegel unsicher ist? Ab 3,1V? Ab 3,01V? Ab > 2,99V? Alles was kleiner 0.6*Vcc ist, gemäß der Datenblatt-Spezifikation. Falk B. schrieb: > Wieviel robuster ist wohl eine Schaltung, die dem AVR ein 5V Signal > anbietet im Vergleich zu einem 3,3V Signal? Alles überflüssig? Ich hab nie gesagt, dass es ohne Pegelwandler robuster ist oder auch alles überflüssig ist. Aber wenn man will wird man den Gegenüber auch immer falsch verstehen. Joachim B. schrieb: > ach auch mit NULL Toleranz und wenn der 3,2V hat? > > schon ist die schöne Rechnung im Eimer und man sucht sich einen Wolf. Nö, bei 3.2 V ist man immer noch in der Spezifikation, dabei ist die Rechnung noch lang3e nicht im Eimer ;) Joachim B. schrieb: > wie siehts bei +5,5V aus und davon 60% -> 3,3V Und wie siehts bei 4.5 V aus? Es ist faszinierend wie hier Fälle generiert werden, die dann natürlich auch zeigen, dass die 3.3 V nicht mehr ausreichend sind. Interessant, dass noch keiner auf die Idee dabei kam den Raspi statt mit 3.3 V auf 2.5 V laufen zu lassen...Alles Randbedingungen, die so nicht gegeben waren zu Beginn der Diskussion. Wenn mir einer sagt, dass sein System mit 5 V läuft dann gehe ich von 5 V aus, nicht von 5.2 V und auch nicht von 4.95 V sondern von 5 V. Vor dem Hintergrund macht eine weitere Diskussion hier schlicht keinen Sinn mehr, da bin ich mal raus.
Hendrik L. schrieb: > Da brauchen wir nix zu üben (ich jedenfalls nicht) - definitiv 20 khz - > sorry for misspelling. > > Gruesse woher hast du den Wert? https://datasheets.maximintegrated.com/en/ds/DS1307.pdf SCL Clock Frequency max 100kHz https://datasheets.maximintegrated.com/en/ds/DS3231.pdf Fast (400kHz) I2C Interface http://www.ti.com/lit/ds/symlink/pcf8574.pdf fSCL= 400 kHz to fSCL= 100 kHz http://www.ti.com/lit/ds/symlink/pcf8574a.pdf fSCL= 400 kHz to fSCL= 100 kHz https://de.wikipedia.org/wiki/I%C2%B2C Takt und Zustände des Busses https://de.i2c-bus.org/ Ursprünglich wurde der Bus für eine Übertragungsrate von 100 kbit/s definiert da war noch nie von 20kHz die Rede!
M. K. schrieb: > Vor dem Hintergrund macht eine weitere Diskussion hier schlicht keinen > Sinn mehr Vorallem auch vor dem Hintergrund, dass der TO etwas mit Z-Dioden zusammengestrickt hat, nicht weiss, warum es funktioniert und trotzdem darauf beharrt, sein Design sei ROBUST! Den Pullup an 3.3V zu hängen, habe ich bereits ziemlich am Anfang vorgeschlagen und es wurde später noch einmal erwähnt. 0.6Vcc ist die Schwelle, wo GARANTIERT über alle Streuungen und Temperaturen ein High erkannt wird. In der Realität ist diese Schwelle deutlich darunter (ca 2,7V @ 5V Vcc). Es ist richtig, dass sich ein Fall konstruieren lässt, wo der Atmega mit 5,5V läuft und rechnerisch die Schaltschwelle im absoluten Worst Case dann bei 3.3V liegt. Aber unter der Annahme, dass der Atmega tatsächlich mit 5V läuft, würde ich persönlich sagen, dass 0,3V Störabstand (Worst Case) und 0,6V Störabstand (Nominal) für die meisten Anwendungsfälle robust genug sein dürfte. Auf jeden Fall robuster, als das jetzige Design. Heutzutage gehen die Betriebsspannungen auf 1,2V und kleiner runter. Da sind die Störabstände noch kleiner und es funktioniert wunderbar.
Schlumpf schrieb: > Es ist richtig, dass sich ein Fall konstruieren lässt, wo der Atmega mit > 5,5V läuft und rechnerisch die Schaltschwelle im absoluten Worst Case > dann bei 3.3V liegt. es ist auch richtig das die Schaltschwelle bei WS28xx und APA LEDs eben bei deutlich über 3,3V liegt auch wenn es im Einzelfall klappt. (aber OK kein I2C wer unbedingt ein Haar in der Suppe finden will)
:
Bearbeitet durch User
Joachim B. schrieb: > es ist auch richtig das die Schaltschwelle bei WS28xx und APA LEDs eben > bei deutlich über 3,3V liegt auch wenn es im Einzelfall klappt. Was das jetzt damit zu tun hat, verstehe ich nicht ganz. Aber deswegen schaut man ja auch ins Datenblatt. Da steht z.B. bei der WS2801, dass VH = 0.8 x Vcc, was bei Vcc=5V einer Schaltschwelle von 4V entspricht. Und was hat das jetzt mit Atmel zu tun?
Haar_in_der_Suppe_finder schrieb: > Und was hat das jetzt mit Atmel zu tun? Noch nie 3,3V Atmels gehabt? https://www.komputer.de/zen/index.php?main_page=product_info&products_id=479&zenid=ijt1ckrs8vf3ecvi8jmj7uaee7
Hendrik L. schrieb: > ich teste gerade eine I2C-Verbindung zwischen einem Raspberry (3,3 Volt) > und einem Atmel-MC (5 Volt). Joachim B. schrieb: > WS28xx und APA LEDs Joachim B. schrieb: > Noch nie 3,3V Atmels gehabt? Über welche Bauteile könnten wir sonst noch reden? Relais vielleicht? Der TO hat einen Raspberry (3,3V) und einen Atmel (5V) mit I2C verbunden. Wieso sollten wir uns jetzt über LEDs oder 3,3V Atmels unterhalten? Läuft der Atmel des TO mit 5,0V und legt man den Pull-R an die 3,3V des Raspberry, so bekommt der Atmel einen High-Pegel von 3,3V. Dieser ist 0,3V über der worst case Schaltschwelle des Controllers (0,6 x Vcc). Und ca 0,6V über der nominalen Schaltschwelle des Controllers. Damit funktioniert das so beim TO. Ob das mit einem Atmel mit Vcc=3,3V und einer WS28xx mit 5V funktioniert (oder auch nicht) spielt doch hier gar keine Rolle
Joachim B. schrieb: > Hendrik L. schrieb: >> Da brauchen wir nix zu üben (ich jedenfalls nicht) - definitiv 20 khz - >> sorry for misspelling. >> >> Gruesse > > woher hast du den Wert? > > https://de.wikipedia.org/wiki/I%C2%B2C > Takt und Zustände des Busses > https://de.i2c-bus.org/ > Ursprünglich wurde der Bus für eine Übertragungsrate von 100 kbit/s > definiert > > da war noch nie von 20kHz die Rede! Es heißt aber immer und überall 100kbit oder weniger. Erst der SMBus spezifiziert eine minimale Frequenz. Im "I2C-bus specification and user manual" (UM10204) ist alles in einem Absatz gesagt:
1 | 4.2.1 I2C/SMBus compliancy |
2 | |
3 | SMBus and I2C protocols are basically the same: A SMBus master is |
4 | able to control I2C devices and vice versa at the protocol level. |
5 | The SMBus clock is defined from 10 kHz to 100 kHz while I2C can be |
6 | 0 Hz to 100 kHz, 0 Hz to 400 kHz, 0 Hz to 1 MHz and 0 Hz to 3.4 MHz, |
7 | depending on the mode. This means that an I2C-bus running at less than |
8 | 10 kHz is not SMBus compliant since the SMBus devices may time-out. |
9 | |
10 | Logic levels are slightly different also: TTL for SMBus: LOW = 0.8 V |
11 | and HIGH = 2.1 V, versus the 30 %/70 % VDD CMOS level for I2C. This |
12 | is not a problem if VDD > 3.0 V. If the I2C device is below 3.0 V, |
13 | then there could be a problem if the logic HIGH/LOW levels are not |
14 | properly recognized. |
M. K. schrieb: > Sven B. schrieb: >> Ja, es geht, aber wenn durch z.B. ein Gerät nebendran eine 1 Vpp Störung >> in die Leitung einkoppelt > > Wenn sich auf I2C nen Störsignal mit 1 Vpp einkoppelt hat man aber ganz > andere Probleme. Wenn man die ganze Platine in dem Stil designt dann auf jeden Fall, ja ;)
M. K. schrieb: >> Und ab wann meinst du, daß der Pegel unsicher ist? Ab 3,1V? Ab 3,01V? Ab >> 2,99V? > > Alles was kleiner 0.6*Vcc ist, gemäß der Datenblatt-Spezifikation. Aha. Also sind auch 3,01V OK. Dream on. Wieviele robuste Schaltungen hast du bisher entwickelt? Wie hast du sie getestet? > Nö, bei 3.2 V ist man immer noch in der Spezifikation, Du bist papiergläubig.
Joachim B. schrieb: > da war noch nie von 20kHz die Rede! Mensch Meier, I2C kann mit BIS zu 100kHz im Normalmodus getaktet werden, man kann aber problemlos langsamer takten. Dabei wird der Störabstand aber nicht notwendigerweise besser. Ein niedrigerer Takt hilft bestenfalls bei hoher, kapazitiver Buslast an langen Kabeln oder bei vielen ICs.
Joachim B. schrieb: > Hendrik L. schrieb: >> Da brauchen wir nix zu üben (ich jedenfalls nicht) - definitiv 20 khz - >> sorry for misspelling. >> >> Gruesse > > woher hast du den Wert? > > https://datasheets.maximintegrated.com/en/ds/DS1307.pdf > SCL Clock Frequency max 100kHz > > https://datasheets.maximintegrated.com/en/ds/DS3231.pdf > Fast (400kHz) I2C Interface > > http://www.ti.com/lit/ds/symlink/pcf8574.pdf > fSCL= 400 kHz to fSCL= 100 kHz > > http://www.ti.com/lit/ds/symlink/pcf8574a.pdf > fSCL= 400 kHz to fSCL= 100 kHz > > https://de.wikipedia.org/wiki/I%C2%B2C > Takt und Zustände des Busses > https://de.i2c-bus.org/ > Ursprünglich wurde der Bus für eine Übertragungsrate von 100 kbit/s > definiert > > da war noch nie von 20kHz die Rede! Den Wert von 20 khz stelle ich softwareseitig ein ...! :-) Wo siehst Du das Problem? Du kannst einen TWI (als nicht synchronen Bus) mit allen beliebigen Frequenzen durch den Master takten, Hauptsache die Slaves "kommen mit". Das heisst, der Takt darf nicht die Werte der Datenblätter der Slaves überschreiten. Unterschreiten ist immer erlaubt. Gruesse
Falk B. schrieb: > Mensch Meier, I2C kann mit BIS zu 100kHz im Normalmodus getaktet werden, > man kann aber problemlos langsamer takten. habe ich nicht widersprochen, aber ist das die Normalität? Der TO stellte das für mich so dar, aber darum streite ich nicht. Es ist halt das jemand zum ersten Mal für mich 20MHz und 20kHz schrieb. Was schrieb ich doch noch? Joachim B. schrieb: > ...... wobei 20kHz ja am AVR evtl einstellbar sind, jedenfalls > leichter als 20MHz
Falk B. schrieb: > Aha. Also sind auch 3,01V OK. Gemäß Datenblatt sind sie das und im Worst Case zählt nur das und nicht was irgend jemand irgendwo sagt. Falk B. schrieb: > Wieviele robuste Schaltungen hast du bisher entwickelt? Wie hast du sie > getestet? Genügend, ich führe keine Strichliste. Und selbst wenn ich jetzt eine Zahl nennen würde, wäre dir das denn nicht völlig egal? Falk B. schrieb: > Du bist papiergläubig. Ja, ich glaub einem Datenblatt mehr als einem Forenmitglied. Ich weiß ja nicht wie das bei dir so ist aber bei meiner Arbeit kommts einfach besser wenn man auf ein Datenblatt verweisen kann, dass jeder verifizieren kann als dass man sagen würde "Aber der User Falk auf www.mikrocontroller.net hat gesagt...". Kommt hier bei meinem Job wirklich besser an zu sagen "Datenblatt x Seite y in Version z, Abschnitt k, nennt..." Ich will damit nicht sagen, dass das, was du sagst, völliger Mumpitz ist aber wenn für dich eine in entsprechenden Datenblätter beschriebene Grenze nicht ausreichend ist, welchen Abstand zur Grenze müsste man deiner Meinung nach denn immer einhalten?
M. K. schrieb: > Falk B. schrieb: >> Aha. Also sind auch 3,01V OK. > Gemäß Datenblatt sind sie das und im Worst Case zählt nur das und nicht > was irgend jemand irgendwo sagt. Das ist auch richtig. Jedoch bezieht sich das Datenblatt nur auf den eigenen Eingang. Wenn dort 3,01V anliegen, dann reicht das, ist im Worst-Case abgedeckt. Als Entwickler musst du sicherstellen, dass diese 3,01V nie unterschritten werden. Und die Verbindungsleitung kann dir da eben einen Strich durch die Rechnung machen. Dazu kommt noch, dass die Versorgung selbst gestoert werden kann, unter den Nennwert von 5V rutscht und die 3,01V ploetzlich nicht mehr reichen.
Joachim B. schrieb: > die üblichen AVR haben kein OC für I2C, Aber sicher doch, denn I2C(TWI) ohne Open Drain geht nicht.
:
Bearbeitet durch User
Joachim B. schrieb: > Falk B. schrieb: >> Mensch Meier, I2C kann mit BIS zu 100kHz im Normalmodus getaktet werden, >> man kann aber problemlos langsamer takten. > > habe ich nicht widersprochen, aber ist das die Normalität? > > Der TO stellte das für mich so dar, aber darum streite ich nicht. Es ist > halt das jemand zum ersten Mal für mich 20MHz und 20kHz schrieb. > > Was schrieb ich doch noch? > > Joachim B. schrieb: >> ...... wobei 20kHz ja am AVR evtl einstellbar sind, jedenfalls >> leichter als 20MHz 20 Mhz - war wohl leicht als Vertipper erkennbar ... wenn ich in diesem Zusammenhang Atmel ATTinys angeschlossen habe, die selbst nur mit max. 20 MhZ (extern) getaktet werden ... Offensichtlich war das nur Dir unklar .... ;-) Und was meeinst Du denn mit "Normalität" ? 100 khz sind keinesfalls normaler als 20 khz - den Takt kann ein jeder Entwickler am TWI selbst bestimmen (wenn er weiss, wie man das macht) ... und wenn er die spezifizierten Max- Werte der Slaves nicht überschreitet. Oder sind für Dich auch 5 Volt normaler als 4 Volt??? Gruesse
Hendrik L. schrieb: > Der TWi Clock Stretching Bug wird hier noch detailierter beschrieben: Die meisten I2C-Devices wie etwa Sensoren funktionieren am Raspi problemlos, weil sie kein Clock Stretching verwenden. Mikrocontroller als I2C-Slaves hingegen verwenden Clock Stretching in der Reaktion des Interrupt-Handlers vom I2C-Modul und sind daher nur eingeschränkt mit der I2C-Hardware des Raspi verwendbar.
M. K. schrieb: > Falk B. schrieb: >> Aha. Also sind auch 3,01V OK. > > Gemäß Datenblatt sind sie das und im Worst Case zählt nur das und nicht > was irgend jemand irgendwo sagt. Bis du so ignorant oder tust du nur so? Der Wert im Datenblatt gibt an, was statisch unter Idealbedingungen garantiert wird! Das ist aber nicht die Realität! Denn in der gibt es Toleranzen der Treiberspannung (hier die 3,3V des Raspberry-PI) sowie eingekoppelte Störungen. Du hast noch immer nicht auf das Stichwort "Störabstand" reagiert, vermutlich weil dir der Begriff fremd ist. Warum wohl sind die Grenzen für ein LOW/HIGH eines Ausgangs deutlich näher an GND/VCC als eines Eingangs? Weil die Differenz als Puffer für Toleranzen und überlagerte Störungen genutzt wird! Und je größer die ist, umso besser. >> Du bist papiergläubig. > > Ja, ich glaub einem Datenblatt mehr als einem Forenmitglied. Darum geht es keine Sekunde. Textverständnis mangelhaft! Gemäß Papier alles richtig gemacht, formal kaum angreifbar, trotzdem geht es nicht, Bravo! > aber wenn für dich eine in entsprechenden Datenblätter beschriebene > Grenze nicht ausreichend ist, welchen Abstand zur Grenze müsste man > deiner Meinung nach denn immer einhalten? Wenn 3V als HIGH spezifiziert sind und ich 3V als High anlege, ist mein Störabstand 0mV! Denn jedes mV Toleranz oder Störung kann mich unter den garantierten Grenzwert bringen! Also sehe ich zu, daß ich den Abstand mit vernünftigem Aufwand maximiere. Sprich, ein 5V CMOS-Eingang wird möglichst lehrbuchartig mit 5V CMOS-Ausgangspegeln angesteuert. Die sehen so aus! http://www.interfacebus.com/voltage_threshold.html Bei 5V VCC sind da für HIGH ca. 4,7V definiert, macht satte 1,7V Störabstand zu 3V. Das sind die violetten bzw. blauen Streifen, Störabstand bei HIGH/LOW. Ein Pegelwandler kann das spielend. Wenn du oder sonst wer meint, darauf verzichten zu können, weil es ja an einem sonnigen, ruhigen Tag auf seinem Basteltisch funktioniert, bitte schön. Aber wenn dann dieser Jemand behauptet, das wäre eine ROBUSTE Lösung, gibt es GEGENWIND! So ein Käse darf nicht unwidersprochen bleiben! Es gibt schon genug ungesundes Halbwissen im Internet.
Ein I2C-Pegelwandler in Form von 2 SMD-MOSFETs ist wirklich kein Aufwand.
A. K. schrieb: > Joachim B. schrieb: >> die üblichen AVR haben kein OC für I2C, > > Aber sicher doch, denn I2C(TWI) ohne Open Drain geht nicht. du kannst auch mit dem Fuss aufstampfen, das ist aber trotzdem kein OC open collector! M. K. schrieb: > Ja, ich glaub einem Datenblatt mehr als einem Forenmitglied. damit, der Datenblattgläubigkeit, bin ich schon öfter auf die Nase gefallen! Pollin DCF77 Module, DB sagt 5V ich habe mir 4 Stück abgeraucht, hier im forum konnte man nachlesen das es eine Umstellung in den Modulen gab, maximal 3V bei den neueren, das DB war falsch beigelegt! Philips Hochvolt Transitor, alle rauchten ab bei mir: im DB bottom top vertauscht! Nirgends wird mehr gelogen als auf dem Papier, im Netz gibt es natürlich manchmal fake news, aber eben nicht immer.
Hendrik L. schrieb: > Und nun die spannende Frage: Warum stellen sich exakt die 3,30 Volt (auf > zwei Stellen hinter dem Komma genau) bei zwei hintereinandergschalteten > 3,3 Volt Zener-Dioden an 5 Volt ein. Zufall? Die Ausgangsfrage ist ja noch nicht geklaert. Ich glaub hier nicht an einen Zufall, eher stellt sich die Spannung im Raspi ein, wie andere schon spekuliert haben. Schick mal einen Schaltplan!
Mach schrieb: > .... eher stellt sich die Spannung im > Raspi ein, wie andere schon spekuliert haben. der Raspi hat 1,8k pullups nach 3,3V an den I2C Ports es werden mit einer Z-Diode um 2mA fliessen, lt. Kennlinie sind die 2V kein Wunder, 2 Z-Dioden mit 6,6V lassen keinen Strom fliessen also gilt der pullup auf 3,3V Beitrag "Re: 3V6 Zenerdiode mit 4,2 V Spannungsabfall?"
:
Bearbeitet durch User
Falk B. schrieb: > Wenn du oder sonst wer meint, darauf verzichten zu können, weil es ja an > einem sonnigen, ruhigen Tag auf seinem Basteltisch funktioniert, bitte > schön. Aber wenn dann dieser Jemand behauptet, das wäre eine ROBUSTE > Lösung, gibt es GEGENWIND! So ein Käse darf nicht unwidersprochen > bleiben! Es gibt schon genug ungesundes Halbwissen im Internet. Was ein Glück, dass die ganzen Schaltungen in 1,8V CMOS Technik mit Störabständen von 0,2V ganz unabhängig vom Wetter funktionieren. Zumindest die, die ich entwickelt habe und die in zig tausendfacher Stückzahl im industriellen Umfeld im Einsatz sind.. Was wäre denn deiner Ansicht nach ein Mindest-Störabstand, wo du sagen würdest, dass es sich dabei noch um ein robustes Design handelt? Wert? Begründung? Mach schrieb: > Schick mal einen Schaltplan! Wurde er jetzt schon 3mal drum gebeten.. aber macht er nicht.
Joachim B. schrieb: > Nirgends wird mehr gelogen als auf dem Papier, im Netz gibt es natürlich > manchmal fake news, aber eben nicht immer. Vollkommen am Thema vorbei! Daß auch Datenblätter Fehler enthalten können ist das eine. Hier ging es aber um einen sinnvollen Eingangspegel für einen 5V CMOS-Eingang eines AVRs, welcher als ROBUSTE Lösung bezeichnet werden darf.
Schlumpf schrieb: > Was ein Glück, dass die ganzen Schaltungen in 1,8V CMOS Technik mit > Störabständen von 0,2V ganz unabhängig vom Wetter funktionieren. > Zumindest die, die ich entwickelt habe und die in zig tausendfacher > Stückzahl im industriellen Umfeld im Einsatz sind.. WOW! Aber M. K. ist sogar NOCH heldenhafter, dem reichen 0mV Störabstand! > Was wäre denn deiner Ansicht nach ein Mindest-Störabstand, wo du sagen > würdest, dass es sich dabei noch um ein robustes Design handelt? Wert? > Begründung? Sagte ich das nicht bereits? Lies meinen Beitrag noch einmal.
Falk B. schrieb: > dem reichen 0mV > Störabstand! Es sind aber 0,3V Störabstand.. Lies meinen Beitrag nochmal: Schlumpf schrieb: > 0.6Vcc ist die Schwelle, wo GARANTIERT über alle Streuungen und > Temperaturen ein High erkannt wird. In der Realität ist diese Schwelle > deutlich darunter (ca 2,7V @ 5V Vcc). > > Es ist richtig, dass sich ein Fall konstruieren lässt, wo der Atmega mit > 5,5V läuft und rechnerisch die Schaltschwelle im absoluten Worst Case > dann bei 3.3V liegt. > Aber unter der Annahme, dass der Atmega tatsächlich mit 5V läuft, würde > ich persönlich sagen, dass 0,3V Störabstand (Worst Case) und 0,6V > Störabstand (Nominal) für die meisten Anwendungsfälle robust genug sein > dürfte.
Joachim B. schrieb: > Mach schrieb: >> .... eher stellt sich die Spannung im >> Raspi ein, wie andere schon spekuliert haben. > > der Raspi hat 1,8k pullups nach 3,3V an den I2C Ports > > es werden mit einer Z-Diode um 2mA fliessen, lt. Kennlinie sind die 2V > kein Wunder, 2 Z-Dioden mit 6,6V lassen keinen Strom fliessen also gilt > der pullup auf 3,3V > > Beitrag "Re: 3V6 Zenerdiode mit 4,2 V Spannungsabfall?" Interessant - Wenn kein Strom gegen Masse abfliesst, warum liegen dann die Spannungen an den RPI-PINs bei exakt 3,30 Volt und nicht bei 5 Volt oder sagen wir mal 4,xx Volt??? Wenn Du einen Atmel (5 Volt, TWI-Pegel auf High gezogen) direkt an die 3,3 Volt Pins des RPI hängst - was ja bekanntlich zur Zerstörung des RPI-GPIOs führen kann - aber nicht muss), ist die Spannung deutlich höher als 3,30 Volt ....! Das hält er sogar im Betrieb aus ... habe ich schon im Dauerbertieb getestet. Wenn sich exakt 3,3 Volt einpegeln, lassen die Z-Dioden einen Strom zur Masse fliessen, sonst hättest Du keine 3,3 Volt - das ist wohl definitiv. Gruesse
Hendrik L. schrieb: > Interessant - Wenn kein Strom gegen Masse abfliesst, Es fließt Strom durch die Dioden. > warum liegen dann > die Spannungen an den RPI-PINs bei exakt 3,30 Volt Zufall. Die Kennlinie der beiden in Reihe geschalteten Z-Dioden mit dem Strom durch den Pull-Up ergibt halt 3,3V. > Wenn Du einen Atmel (5 Volt, TWI-Pegel auf High gezogen) direkt an die > 3,3 Volt Pins des RPI hängst - was ja bekanntlich zur Zerstörung des > RPI-GPIOs führen kann - aber nicht muss), ist die Spannung deutlich > höher als 3,30 Volt ....! Das hält er sogar im Betrieb aus ... habe ich > schon im Dauerbertieb getestet. Logisch, weil nur der Pull-Up mit wenig Strom nach HIGH zieht und die ESD-Dioden im Raspberry Pi leitfähig werden. Dann hat man ca. 4V am IO Pin. Das hält der Raspberry aus, eben weil der Strom begrenzt wird. Macht man das mit einem stromstarken 5V Netzteil sieht das anders aus!
Joachim B. schrieb: > du kannst auch mit dem Fuss aufstampfen, das ist aber trotzdem kein OC > open collector! Dann verrate mal, worauf du raus willst. Also abgesehen von der Haarspalterei, dass es bei CMOS sowieso keinen Kollektor gibt.
Nachdem du uns immer noch nicht deinen Schaltplan gezeigt hast, aber Joachim schrieb, dass: Joachim B. schrieb: > der Raspi hat 1,8k pullups nach 3,3V an den I2C Ports Und du vermutlich keinen zusätzlichen Pullup verwendet hast, dann ist dein High-Pegel eben 3,3V. Die I2C Pins sind OD-Pins. Hendrik L. schrieb: > Wenn sich exakt 3,3 Volt einpegeln, lassen die Z-Dioden einen Strom zur > Masse fliessen, sonst hättest Du keine 3,3 Volt - das ist wohl > definitiv. Nein, ist es nicht. Oder du hast einen zusätzlichen Pullup gegen 5V geschaltet, dann fließt der Strom durch die Clamping-Dioden des Raspi und dein Pegel ist ca 0.5V höher als die 3.3V Aber du postest ja ums Verrecken keinen Schaltplan, sondern ziehst lieber falsche Schlüsse aus deinen eigenen Boebachtungen.
Schlumpf schrieb: > Nachdem du uns immer noch nicht deinen Schaltplan gezeigt hast, aber > Joachim schrieb, dass: > > Joachim B. schrieb: >> der Raspi hat 1,8k pullups nach 3,3V an den I2C Ports > > Und du vermutlich keinen zusätzlichen Pullup verwendet hast, dann ist > dein High-Pegel eben 3,3V. > > Die I2C Pins sind OD-Pins. > > Hendrik L. schrieb: >> Wenn sich exakt 3,3 Volt einpegeln, lassen die Z-Dioden einen Strom zur >> Masse fliessen, sonst hättest Du keine 3,3 Volt - das ist wohl >> definitiv. > > Nein, ist es nicht. > > Oder du hast einen zusätzlichen Pullup gegen 5V geschaltet, dann fließt > der Strom durch die Clamping-Dioden des Raspi und dein Pegel ist ca 0.5V > höher als die 3.3V > > Aber du postest ja ums Verrecken keinen Schaltplan, sondern ziehst > lieber falsche Schlüsse aus deinen eigenen Boebachtungen. Die PullUps im Atmel ziehen die Spannung an den TWI Pins auf 5 Volt - ist doch wohl logisch! Sonst würde der TWI ja wohl nicht arbeiten! Ich habe doch geschrieben, dass der Bus ordnungsgemäss funktioniert. Wie solte das denn sonst gehen, wenn keine Pull-Ups im Spiel sind??? Und diese ATMEL TWI-Pins sind direkt mit den 3,3 Volt GPIOs vom RPI verbunden. Die zwei Zenerdioden - seriell verbunden - mit dem RPI-Pin gegen Masse verschaltet. Gruesse
Falk B. schrieb: > Hendrik L. schrieb: > >> Interessant - Wenn kein Strom gegen Masse abfliesst, > > Es fließt Strom durch die Dioden. > >> warum liegen dann >> die Spannungen an den RPI-PINs bei exakt 3,30 Volt > > Zufall. Die Kennlinie der beiden in Reihe geschalteten Z-Dioden mit dem > Strom durch den Pull-Up ergibt halt 3,3V. > >> Wenn Du einen Atmel (5 Volt, TWI-Pegel auf High gezogen) direkt an die >> 3,3 Volt Pins des RPI hängst - was ja bekanntlich zur Zerstörung des >> RPI-GPIOs führen kann - aber nicht muss), ist die Spannung deutlich >> höher als 3,30 Volt ....! Das hält er sogar im Betrieb aus ... habe ich >> schon im Dauerbertieb getestet. > > Logisch, weil nur der Pull-Up mit wenig Strom nach HIGH zieht und die > ESD-Dioden im Raspberry Pi leitfähig werden. Dann hat man ca. 4V am IO > Pin. > Das hält der Raspberry aus, eben weil der Strom begrenzt wird. Macht man > das mit einem stromstarken 5V Netzteil sieht das anders aus! GENAU! Gruesse
Wenn für dich alles immer so logisch erscheint, dann brauchst du ja keine weiteren Erklärungen mehr. Ich hab keine Lust mehr, dir was zu erklären. Du weisst es ja eh besser und erkennst in deiner Verblendung nicht, wo dein Denkfehler ist. Dann glaube einfach weiter, dass es ja nur an der "analogen" Kennlinie der Z-Dioden liegen kann. Alle anderen Erklärungsversuche schmetterst du ja ab. Bitteschön: Ja, du hast recht. Es liegt an der Kennlinie der Diode. Das hast du hervorragend beobachtet. Schlaues Bürschchen du bist!
AVR - Interner Pullup 50k gegen 5V Raspi - Interner Pullup 1,8k gegen 3,3V Also Spannungsteiler mit 0,06V ueber 3,3V, also 3,36V. Die Dioden ziehen wohl auch noch einen kleinen Tick runter. Du kannst die Z-Dioden also sogar komplett weg lassen, so robust ist der Aufbau :-)
Mach schrieb: > Du kannst die Z-Dioden also sogar komplett weg lassen, so robust ist der > Aufbau :-) Eben.. darum geht es.. die Dioden sind wirkungslos.
Mach schrieb: > AVR - Interner Pullup 50k gegen 5V > Raspi - Interner Pullup 1,8k gegen 3,3V > > Also Spannungsteiler mit 0,06V ueber 3,3V, also 3,36V. > > Die Dioden ziehen wohl auch noch einen kleinen Tick runter. > > Du kannst die Z-Dioden also sogar komplett weg lassen, so robust ist der > Aufbau :-) Wenn ich die Dioden weglasse, liegt die Spannung bei 4,xxx - werde ich heute Abend noch einmal verfizieren. Kann also so nicht sein! Strom werde ich auch einmal messen. Zudem - ich habe (in der Realität - mit Tranceiver) etliche Slaves am Bus ... da summieren sich dann die Ströme der PullUps ...! Die Z-Dioden werden also zumindet dann notwendig werden ... wenn ich ohne einen Tranceiver arbeite! Gruesse
Hendrik L. schrieb: > Wenn ich die Dioden weglasse, liegt die Spannung bei 4,xxx - ungünstig dann schon eher in die Leitungen Serienwiderstand, ich nehme 470 Ohm, andere meinen eher 1k. Wenn schon Dioden am GPIO vom PI -> BAT42 nach 3,3V VCC vom PI Somit wird maximal 5V über 470 Ohm zu 3,3V eine Differenz entstehen von 1,7V an 470 Ohm -> knapp 4mA die über die BAT42 nach VCC 3.3 geleitet werden, da wird sich schon ein Abnehmer finden ohne das die VCC nennenswert steigt. I2C reagiert ja nur auf low und 470 Ohm kann beiderseits genügend auf low ziehen.
:
Bearbeitet durch User
Hendrik L. schrieb: > Wenn sich exakt 3,3 Volt einpegeln, lassen die Z-Dioden einen Strom zur > Masse fliessen, sonst hättest Du keine 3,3 Volt - das ist wohl > definitiv. Du hackst hier auf absolut unwichtigem herum. Der Pull-Up nach 5V ist deutlich größer als der nach 3,3 V und schafft es aus der Logik schon nicht die 3,3 V allzu stark nach 5 V zu ziehen. Was wird da so ein Thema draus gemacht. Du hast keine Ahnung von Treibern und schwadronierst hier herum.
Msd schrieb: > Hendrik L. schrieb: >> Wenn sich exakt 3,3 Volt einpegeln, lassen die Z-Dioden einen Strom zur >> Masse fliessen, sonst hättest Du keine 3,3 Volt - das ist wohl >> definitiv. > > Du hackst hier auf absolut unwichtigem herum. > > Der Pull-Up nach 5V ist deutlich größer als der nach 3,3 V und schafft > es aus der Logik schon nicht die 3,3 V allzu stark nach 5 V zu ziehen. > > Was wird da so ein Thema draus gemacht. > > Du hast keine Ahnung von Treibern und schwadronierst hier herum. Wer spricht denn von "stark"? Wer spricht von auf 5 Volt zu ziehen - lediglich Du! Ich spreche davon, dass ich exakt 3,30 Volt (sogar mit zwei unterschiedlichen, hochwertigen Messgeräten) gemessen habe ... also waren die Zenerd-Doden sehr wohl im Spiel, ansonsten wären ja mindestens 3,36 Volt gemessen worden. Der Logik kann ich folgen. Wenn sich dann herausstellen wird, dass ich 10 ATTInys mit 5 Volt Pegel bequem an den 3,3 Volt GPIOs ohne Probleme (und ohne Tranceiver) betreiben kann - dann allein hat sich dieser Thread schon gelohnt und ich bedanke mich herzlichst bei allen Beteiligten. Nun schau'n wir 'mal, wie es weitergeht. Gruesse
Hendrik L. schrieb: > Zudem - ich habe (in der Realität - mit Tranceiver) etliche Slaves am > Bus ... da summieren sich dann die Ströme der PullUps ...! Du bist echt der Knaller! Die relevanten sind dann wohl 3,3V Pullups.
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.