Ich habe den TX eines Atmega328P, der mit 5V betrieben wird, an den RX
eines ESP-01 angeschlossen, der mit 3,5V betrieben wird, und zwar über
einen Spannungsteiler: 1,8kOhm in der Leitung, 3,9kOhm nach Masse.
Hin und wieder wird ein Byte falsch übertragen und ich frage mich, ob es
an einer parasitären Kapazität vor dem Eingang des ESP-01 liegt. Der
1,8kOhm-Widerstand würde mit dieser Kapazität einen Tiefpassfilter
bilden.
Nun braucht man nach Nyquist für n Baud mindestens eine Bandbreite n/2,
also folgt für 250kBaud ein fc >= 125kHz. Daraus folgt nach C = 1 / (2 *
pi R fc) für den parasitären C ein Wert von 707pF. Das halte ich für
völlig ausgeschlossen, da die Verbindungen nur ca. 8cm lang sind (wenn
auch über drei Steckverbindungen).
Aber es gibt auch Leute, die als Faustregel sagen, für eine
störungsfreie Übertragung muss die Eckfrequenz fünfmal höher als die
Baudrate sein, das wären hier 1,25MHz. Dann würde für C folgen 70,7pF.
Das scheint mir immer noch viel, oder?
Justin S. schrieb:> 70,7pF.
Alles, was da nach dem Komma kommt, kannst du getrost weglassen. Das
ändert sich schon, wenn du nur mit der Hand in der Nähe wedelst..
> Ich habe den TX eines Atmega328P, der mit 5V betrieben wird, an den RX> eines ESP-01 angeschlossen
Wie lang sind die Kabel/Leitungen? Wie sind sie verlegt? Wie ist die
zugeörige Masse geführt?
> über einen Spannungsteiler: 1,8kOhm in der Leitung, 3,9kOhm nach Masse.
Damit belastest du den TX-Ausgang schon merklich.
Ich würde zuallererst mit einem Oszilloskop sicherstellen(!!), dass
die Flanken- und das Bittiming am RX-Pin gut aussehen.
Bekommst du auch Übertragungsfehler, wenn du mit (deutlich) niedrigerer
Baudrate kommunizierst?
Stefan ⛄ F. schrieb:> Das lässt sich mit einem Oszilloskop vernünftiger untersuchen, als mit> einer Diskussion.Lothar M. schrieb:> Ich würde zuallererst mit einem Oszilloskop sicherstellen(!!), dass> die Flanken- und das Bittiming am RX-Pin gut aussehen.
Ich hab ein Rigol DS 1054 Z, bekomme es aber nicht hin, damit das Signal
am RX-Pin zu sehen. Es ist singulär, ich muss jedesmal in der fertigen
Software per Menü auslösen. Mir fehlen dazu die Kenntnisse beim 1054.
Ich hatte vorher nur mit Analog-Oszis zu tun und da war alles ganz
einfach. Jetzt sehe ich nicht, wie ich triggern kann.
Hat da jemand zufällig einen Link für mich oder einen Tipp, wie ich den
Trigger einstellen muss (vermutlich mit Speichern)?
Hmmm schrieb:> Taktquelle?
16Mhz Quarz.
Lothar M. schrieb:> Wie lang sind die Kabel/Leitungen? Wie sind sie verlegt? Wie ist die> zugeörige Masse geführt?
Ca. 8cm insgesamt, davon wenige cm auf Lochrasterplatine, sonst Ader mit
relativ dicker Isolierung, so dass keine andere Ader näher als 1mm
kommen kann.
Die Masse ist nicht genau daneben geführt.
Lothar M. schrieb:> Bekommst du auch Übertragungsfehler, wenn du mit (deutlich) niedrigerer> Baudrate kommunizierst?
Das kann ich schwer testen, weil ich dazu die Software umschreiben und
neu auf den Arduino laden muss und den ESP-01 ausbauen, umprogrammierne
und wieder einbauen. Das alles hat früher schon oft genug nicht gut
funktioniert, so dass ich es mir gerne ersparen würde.
Lothar M. schrieb:>> über einen Spannungsteiler: 1,8kOhm in der Leitung, 3,9kOhm nach Masse.> Damit belastest du den TX-Ausgang schon merklich.
Das sind doch weniger als 1mA. Ich hatte gedacht, ich gehe auf 330 Ohm
und 820 Ohm und wäre dann bei 4,3 mA. Man ließt im Web, dass Ausgänge
niemals über 40mA, besser unter 20mA belastet werden sollten. Bei 4,3 mA
wäre ich da weit drunter; wo ist das Problem bei den jetzigen <1mA?
Justin S. schrieb:> Es ist singulär, ich muss jedesmal in der fertigen> Software per Menü auslösen.
Wieso das denn? Im Gegensatz zum analogen Oszilloskop braucht das
digitale kein sich regelmäßig wiederholendes Signal.
Serielle Kommunikation beginnt mit einer fallenden Flanke. Also stellst
du das Gerät so ein, dass auf der fallenden Flanke z.B. bei 2V triggert.
Ich benutze Spannungsteiler aus 1kΩ + 2,2kΩ, damit sind 115.200 Baud auf
jeden Fall tadellos machbar. Das ist nicht weit von deinen Werten
entfernt.
Deine 250.000 Baud halte ich im konkreten Fall sogar für weniger
problematisch weil die 16 Mhz CPU Takt des AVR glatt durch 250.000
teilbar sind. Ebenso sind die 80 Mhz des ESP glatt durch 250.000
teilbar.
Justin S. schrieb:> wo ist das Problem bei den jetzigen <1mA?
Ich sehe keins. Im Gegenteil, ich habe schon mal die ISP Pins bei 4 Volt
mit 30 mA (durch besonders helle LED) belastet, ohne dass sie sich
negativ ausgewirkt haben. Da war ich selbst erstaunt.
Hallo,
sind die Drähte verdrillt? Masse beider Boards die Selbe? Wenn nein,
dann Massepotential ausgleichen. Klappt das mit niedrigeren Baudraten
125k ... 9600 ?
Justin S. schrieb:> Hat da jemand zufällig einen Link für mich oder einen Tipp, wie ich den> Trigger einstellen muss
Variante 1: du sendest einfach mal dauernd und drückst dann auf den
Autoset-Knopf ;-)
Variante 2: du setzt den Trigger auf die fallende Flanke und den
Triggerpegel auf 1,5V. Dann sollte das klappen. Denn genau so
funktioniert die SIO auch: fallende Flanke am RX erkennen und dann die
Pegel abtasten.
> (vermutlich mit Speichern)?
Irrweg.
> Die Masse ist nicht genau daneben geführt.
Hier wirds interessant...
Denn diese Masse gehört natürlich als Rückleitung zum Signalpfad mit
dazu.
> Das kann ich schwer testen, weil ich dazu die Software umschreiben und> neu auf den Arduino laden muss und den ESP-01 ausbauen, umprogrammierne> und wieder einbauen.
Nein du musst nur den Arduino "neu laden", denn es juckt ja das Signal
nichts, ob der ESP richtig reagiert...
> ich muss jedesmal in der fertigen Software per Menü auslösen.
Erhöhe die Fehlerwahrscheinlichkeit. Sorge dafür, dass dein Programm
andauernd sendet. Nur dann kannst du einen Fehler finden. Denn wen der
Fehler schon dann auftritt, wenn du kaum was sendest, dann ist noch was
im Busch.
Justin S. schrieb:> Man ließt im Web, dass Ausgänge> niemals über 40mA, besser unter 20mA belastet werden sollten.
Damit der Pin nicht kaputt geht. Dein Problem ist aber nicht, dass Pins
kaputt gehen...
> wo ist das Problem bei den jetzigen <1mA?
Vergiss es. Ich denke nicht, dass das hier konkret ein Problem ist.
Stefan ⛄ F. schrieb:> benutze Spannungsteiler aus 1kΩ + 2,2kΩ, damit sind 115.200 Baud ...> Das ist nicht weit von deinen Werten entfernt.
Dein Spannungsteiler ist Faktor 2 niederohmiger. Und du bist Faktor 2
langsamer. Also Faktor 4 unkritischer... ;-)
Justin S. schrieb:> Der 1,8kOhm-Widerstand würde mit dieser Kapazität einen Tiefpassfilter> bilden.
Korrekt ist es so: die Parallelschaltung aus 1k8 und 3k9 würde diesen
Tiefpass bilden, denn diese Parallelschaltung ist der Innenwiderstand
des spanungsgeteilten Signals. Und dann nächster Schritt mit den 100pF,
die du angenommen hast: t = RC = 1k2*100p = 120ns. Diese 120ns sind also
etwa die Flankenanstiegszeit. Das ist bei einer Bitdauer von 4µs
vernachlässigbar. Fazit: dein Problem liegt woanders.
Nochmal zurück zum Anfang:
Justin S. schrieb:> Hin und wieder wird ein Byte falsch übertragen
Wie oft? Ist es immer das selbe?
Lothar M. schrieb:> Also Faktor 4 unkritischer...
Ja, das meinte ich mit "nicht weit entfernt". Bei mir sahen die Signale
mit 115.200 noch sehr gut aus, dann wird es bei ihm wegen dem geringen
Unterschied (Faktor 4) kaum in Richtung "sehr schlecht" gehen.
Aber nachgucken ist besser. Vielleicht ist da ja noch etwas anderes, was
die Kommunikation beeinträchtigt.
Stefan ⛄ F. schrieb:> Serielle Kommunikation beginnt mit einer fallenden Flanke. Also stellst> du das Gerät so ein, dass auf der fallenden Flanke z.B. bei 2V triggert.Lothar M. schrieb:> du setzt den Trigger auf die fallende Flanke und den> Triggerpegel auf 1,5V.
Ja vielen Dank, das ist es.
Lothar M. schrieb:> Korrekt ist es so: die Parallelschaltung aus 1k8 und 3k9 würde diesen> Tiefpass bilden, denn diese Parallelschaltung ist der Innenwiderstand> des spanungsgeteilten Signals. Und dann nächster Schritt mit den 100pF,> die du angenommen hast: t = RC = 1k2*100p = 120ns. Diese 120ns sind also> etwa die Flankenanstiegszeit. das ist ebi einer Bitdauer von 4µs> vernachlässigbar.
Er sagt mir Rise=69ns, daraus errechne ich dann C=56pF. Das ist wenig.
Lothar M. schrieb:> Dein Problem liegt woanders.
Hmm, vielleicht wird anders herum ein Schuh draus: die Leitungen fangen
sich zu viele Störungen ein und ich sollte parallel zum 3,9k-Widerstand
z.B. einen 47pF Kondensator (oder gleich 100pF) schalten?
Justin S. schrieb:> Hmm, vielleicht wird anders herum ein Schuh draus: die Leitungen fangen> sich zu viele Störungen ein und ich sollte parallel zum 3,9k-Widerstand> z.B. einen 47pF Kondensator (oder gleich 100pF) schalten?
Solangs da ein "vielleicht" steht, ist das Murks. Die Lösung ist: du
musst den Fehler finden und dann dient "möglicherweise" so ein
Kondensator der Problembehebung.
Aber solange du nicht weißt, warum und wo es überhaupt klemmt, ist das
wie wenn du Bauchweh hast und einfach mal ein Pflaster irgendwo
draufklebst in der Hoffnung, das könne helfen...
Denn generell müssen solche digitalen Verbindungen mit dieser
überschaubaren Geschwindigkeit auch ohne Bastelkondensatoren
funktionieren.
Justin S. schrieb:> Lothar M. schrieb:>> du setzt den Trigger ...> Ja vielen Dank, das ist es.
De nada! Wie sieht das Signal aus? Klingelt da was?
Justin S. schrieb:> Hier mal ein Überblick über einen ganzen String
Das ist zu eng gequetscht, da kann man die steigenden und fallenden
Flanken nicht erkennen.
Aber immerhin ist zu sehen, dass die HIGH und LOW Pegel gültig sind.
Jetzt wäre natürlich viel spannender, wie sie hinter dem
Spannungsteiler aussehen, nicht davor.
Stefan ⛄ F. schrieb:> Jetzt wäre natürlich viel spannender, wie sie hinter dem> Spannungsteiler aussehen, nicht davor.
Das ist direkt am "RX"-Pin des ESP-01 abgegriffen, mit dem
Originaltastkopf auf 1:10 eingestellt.
Stefan ⛄ F. schrieb:> Das ist zu eng gequetscht, da kann man die steigenden und fallenden> Flanken nicht erkennen.
Ja. War mein erster Versuch eines Screenshots. Außerdem wollte ich das
Decoding vollständig zeigen. Kann man eigentlich die vertikale Position
der Decoding-Ausgabe verändern?
Ich würde einen Augenmustertest machen.
- am Oszilloskop auf zwei bis drei Signalwechsel einstellen
- Oszilloskop auf nachleuchtenden Betrieb einstellen
- großen Datenblock mit Zufallszahlen überzragen
Es sollte ein Augenmuster mit möglichst großem freien Bereich zwischen
den Flanken entstehen.
Siehe: https://de.m.wikipedia.org/wiki/Augendiagramm
Justin S. schrieb:> Das ist direkt am "RX"-Pin des ESP-01 abgegriffen, mit dem> Originaltastkopf auf 1:10 eingestellt.
Dann ist die Schaltung vielleicht fehlerhaft. Ich lese am Bild fast 4
Volt HIGH Pegel ab! Stelle das mal so ein, dass man die Spannungspegel
besser erkennen kann. Das Gerät kann sie ja sogar messen und anzeigen.
Stefan ⛄ F. schrieb:> Ich lese am Bild fast 4 Volt HIGH Pegel ab!
Ich hab das Gitter für den Screenshot etwas zu dunkel eingestellt, aber
es werden 500mV/Div gezeigt und vertikal werden insgesamt 8 Divisions
gezeigt, folglich von ganz oben bis ganz unten 4 Volt. Unten und oben
fehlen etwa 0.3 Volt, also sind es etwa 3.4 Volt, wie geplant.
Stefan ⛄ F. schrieb:> Das Gerät kann sie ja sogar messen und anzeigen.
Und wie?
Stefan ⛄ F. schrieb:> Dann ist die Schaltung vielleicht fehlerhaft. Ich lese am Bild fast 4> Volt HIGH Pegel ab!
Da hast du dich um eins verzählt. Das Signal ist weniger als 7 Kästchen
hoch und bei 500mV/div ist das doch nicht so verkehrt. Der Nullpunkt
hängt irgendwo in der Wallachei. Das macht das Ablesen nicht einfacher.
Justin S. schrieb:> also sind es etwa 3.4 Volt, wie geplant.
Ok, in der Tat konnte ich das Raster kaum erkennen.
> Das Gerät kann sie ja sogar messen und anzeigen.
Und wie?
Ich kenne dieses Gerät nicht, dabei kann ich dir nicht helfen.
Was wir jetzt brauchen ist ein Bild, auf dem man horizontal einen
kleineren Ausschnitt sieht, und zwar mindestens eine steigende Flanke
und eine fallende. Wir wollen sehen, wie sauber und steil sie sind.
Justin S. schrieb:> Im Bild ist ein Bit bei 250kBaud zu sehen
Super, das meinte ich. Sieht tadellos aus. Du hast ganz sicher kein
elektrisches Problem.
So, da haben wir zumindest mal eine Störung. Nach den Zeichen "0,2,"
sollte wieder "0" kommen, d.h. die fallende Flanke sollte eigentlich bis
unten fallen und nicht zwei Bits lang bei ca. 2.6V bleiben.
Der Fehler liegt offenbar nicht an zu geringer Bandbreite.
PS.: Ich kann hier die Dubletten leider nicht löschen. Es sind nur zwei
verschiedene Bilder (Sysop?).
Hallo Justin
Schön mal wieder einen Thread zu haben, wo sich Leute helfen lassen
wollen.
Da macht es Spass mitzulesen :)
Justin S. schrieb:> Aber es gibt auch Leute, die als Faustregel sagen, für eine> störungsfreie Übertragung muss die Eckfrequenz fünfmal höher als die> Baudrate sein, das wären hier 1,25MHz. Dann würde für C folgen 70,7pF.> Das scheint mir immer noch viel, oder?
Nein, eigentlich sagen die Meisten sogar 10x Baudrate.
Der Hintergrund ist trivial (wenn man es weiss ;):
Nyquist bezieht sich ja auf Sinussignale, Baudraten meist auf digitale,
also rechteckige, Signale.
Damit das passt nutzt man aus, dass ein Rechteck durch eine (unendliche)
Summe von Sinussignalen verschiedener Frequenzen dargestellt werden kann
(https://de.wikipedia.org/wiki/Fourierreihe). Nicht von den Formeln
abschrecken lassen ;)
Je höher die Frequenzen der "Oberwellen" sind, desto besser wird der
Rechteck abgebildet.
Wann man "genug" hat ist halt Geschmackssache ;)
Hope that helps
/regards
Andreas H. schrieb:> Da macht es Spass mitzulesen :)
Freut mich sehr. Ich bin auch wirklich daran interessiert dazuzulernen.
Bis heute hab ich das Rigol, wohl aus Respekt, nur entstaubt, jetzt
macht es sogar Spaß.
Lothar M. schrieb:> t = RC = 1k2*100p = 120ns
das zusammen mit der gemessenen Flankensteilheit von ca. 65ns ergibt
zusammen mit
fc = 1 / (2 pi t)
für fc einen Wert von 2,45 MHz und das ist natürlich extrem im grünen
Bereich.
Ich tippe mittlerweile auf Schwankungen der Spannungsversorgung, da der
ESP-01 ja in seinem Strombedarf zwischen 5mA und 0.5A abrupt wechseln
kann ...
Justin S. schrieb:> So, da haben wir zumindest mal eine Störung.
Wie das vorbildlich angefertigte Oszilloskopbild zeigt, wird die
fallende Flanke durch irgend etwas vom vollständigen Fallen aufgehalten,
um dann doch noch bis nach unten fallen zu können.
mfg
Und gibt es irgendeine Möglichkeit, dass der "Eingang" RX in
Wirklichkeit bidirektional ist und "dagegen schreibt"?
Mir sieht das sehr nach einer Kollision zweier Signale aus. Die etwa 2,6
Volt sind ja im "verbotenen Bereich" zwischen hi und low.
Nichtverzweifelter schrieb:> Mir sieht das sehr nach einer Kollision zweier Signale aus. Die etwa 2,6> Volt sind ja im "verbotenen Bereich" zwischen hi und low.
Vielleicht, aber nur 2 Bits lang? Das wäre sehr merkwürdig.
Nichtverzweifelter schrieb:> Oszillographiere mal die beiden Betriebsspannungen 5 und 3,5 Volt.
Sehr schwierig, die 5V sind von einem 25kHz-Signal mit ca. 50mV-Ripple
überlagert, an die 3.5V komme ich gerade gar nicht ran.
Justin S. schrieb:> Nichtverzweifelter schrieb:>> Mir sieht das sehr nach einer Kollision zweier Signale aus. Die etwa 2,6>> Volt sind ja im "verbotenen Bereich" zwischen hi und low.>> Vielleicht, aber nur 2 Bits lang? Das wäre sehr merkwürdig.
Wenn Du den RX-Pin des ESP vom Spannungsteiler abtrennen kannst und dann
den das Scope an den Spannungsteiler hängst, dann würdest Du nur die
"Effekte" des ATMega + Aufbau, aber nicht eventuelle Effekte des ESP,
sehen.
Das würde die Fehlerquelle deutlich einschränken, oder?
/regards
Stefan ⛄ F. schrieb:> Du hast ganz sicher kein elektrisches Problem.
Sehe ich auch so.
Nichtverzweifelter schrieb:> Mir sieht das sehr nach einer Kollision zweier Signale aus.
Sieht für mich auch so aus.
Andreas H. schrieb:> Das würde die Fehlerquelle deutlich einschränken, oder?
Ich würde einfach mal mit dem einen Tastkopf am Ausgang TX vom AVR und
mit dem zweiten Tastkopf am Eingang RX vom ESP messen (also ist da der
1k8 dazwischen). Dann sieht man an den Pegeln ganz deutlich, wer wann
was treibt.
Ich habe mir die 5V noch etwas globaler angesehen: Etwa alle 100ms gibt
es eine deutliche Störung. Ist das vielleicht der ESP, der aus
Protokollgründen regelmäßig ins WLAN senden muss?
Jedenfalls steigt da die Spannung am ESP RX Eingang an und ist dabei
deutlich verrauschter.
Während der Störung ist der Ripple größer und hat eine andere Frequenz.
Deswegen tippe ich mittlerweile auf den Spannungsregler. Am Ende der
Störung ist der Ripple fast nicht vorhanden und die Ripple-Frequenz hoch
und schnell wieder abnehmend auf die ca. 25kHz.
Wenn dieses Ende mit einem zu übertragenden Bit ungünstig zusammenkommt,
entsteht eine Fehlübertragung ...
Justin S. schrieb:> Deswegen tippe ich
Mein Tipp: tippe nicht so früh auf irgendwas. Du hast dich hier im
Thread schon einige Male vertippt... ;-)
> Ich habe mir die 5V noch etwas globaler angesehen: Etwa alle 100ms gibt> es eine deutliche Störung.
Miss mal "Masse gegen Masse". Ja richtig: lass mal die Masseklemme dort
wo sie jetzt ist und miss mal die 5V-GND des AVR, also von "Masse ESP"
zu "Masse AVR". Was siehst du da?
> Etwa alle 100ms gibt es eine deutliche Störung. Ist das vielleicht der ESP,> der aus Protokollgründen regelmäßig ins WLAN senden muss?
Das musst du wissen, du hast das Programm dafür geschrieben.
BTW: es könnte auch helfen, wenn du mal ein Foto vom ganzen Mess- und
Schaltungsaufbau zeigst...
Lothar M. schrieb:> Mein Tipp: tippe nicht so früh auf irgendwas. Du hast dich hier im> Thread schon einige Male vertippt... ;-)
Und bevor ich diesen Fehler jetzt noch einmal mache (und viele neue),
höre ich für heute auf und bin morgen früh wieder dabei.
Vielen Dank an die netten Helfer!
Lothar M. schrieb:>> Etwa alle 100ms gibt es eine deutliche Störung. Ist das vielleicht der ESP,>> der aus Protokollgründen regelmäßig ins WLAN senden muss?> Das musst du wissen, du hast das Programm dafür geschrieben.
Dazu gerade in der Wikipedia gefunden, denn es lässt mir keine Ruhe
(https://de.wikipedia.org/wiki/Wireless_Local_Area_Network):
"Ein Wireless Access Point, oft in Form eines Routers, übernimmt die
Koordination aller Clients und sendet in einstellbaren Intervallen
(üblicherweise zehnmal pro Sekunde) kleine Datenpakete, sogenannte
englisch „Beacons“ ‚Funkfeuer‘, an alle Stationen im Empfangsbereich."
Das macht der ESP-01 also ganz von allein und dafür zieht er alle 100ms
sehr viel Strom. Kann das jemand bestätigen?
Andreas H. schrieb:> Je höher die Frequenzen der "Oberwellen" sind, desto besser wird der> Rechteck abgebildet.> Wann man "genug" hat ist halt Geschmackssache ;)
Das ist weit weg von Geschmackssache.
Auf einem gestörten Übertragungskanal nehmen die Störungen mit der
Bandbreite zu. Wie hübsch die Rechtecke aussehen, ist völlig egal.
Für den Empfänger ist entscheidend, dass der Störabstand ausreichend
groß ist, d.h. dass die Augen weder durch die Bandbreitenbegrenzung noch
durch die Störungen zugeschmiert werden.
Justin S. schrieb:> Das macht der ESP-01 also ganz von allein und dafür zieht er alle 100ms> sehr viel Strom.
Es sind knapp 400mA - ob das "sehr viel" Strom ist, liegt im Auge des
Betrachters.
Justin S. schrieb:> Das macht der ESP-01 also ganz von allein und dafür zieht er alle 100ms> sehr viel Strom. Kann das jemand bestätigen?
Aber nur, wenn Du ihn im AP Mode betreibst...
Eine WLAN STA sendet idR nur, wenn Daten übertragen werden.
Da gibt's keine Beacons.
> Stefan ⛄ F. schrieb:>> Du hast ganz sicher kein elektrisches Problem.Lothar M. schrieb:> Sehe ich auch so.
Ich bin mir inzwischen nicht mehr so sicher
> Nichtverzweifelter schrieb:>> Mir sieht das sehr nach einer Kollision zweier Signale aus.Lothar M. schrieb:> Sieht für mich auch so aus.
Eben deswegen. Vielleicht besteht eine unabsichtliche Verbindung
zwischen dem Rx Eingang des ESP und einem anderen I/O Pin. Vielleicht
eine Zinn-Brücke oder so.
Justin S. schrieb:> Etwa alle 100ms gibt> es eine deutliche Störung. Ist das vielleicht der ESP, der aus> Protokollgründen regelmäßig ins WLAN senden muss?
Die Intervalle sehen sehr verdächtig danach aus. Ist dein Netzteil oder
der Spannungsregler zu schwach? Alleine für den ESP musst du schon 500mA
einkalkulieren (tatsächlich ist es etwas weniger).
Schnix schrieb:> Eine WLAN STA sendet idR nur, wenn Daten übertragen werden.
Die Station muss sich (in der Standard Konfiguration) mindestens einmal
alle 300 ms beim AP melden: "ich bin erreichbar".
Ich würde gerne mal ein Fotos vom Aufbau sehen, insbesondere die
Leitungsführung der Stromversorgung.
Justin S. schrieb:> Ich habe mir die 5V noch etwas globaler angesehen: Etwa alle 100ms gibt> es eine deutliche Störung.
Hast du die +5V auch gut mit Stützkondensatoren versehen? Und zwar bei
allen +5V-Verbrauchern?
Dabei ist auch die richtige Verdrahtung des GND sehr wichtig.
Nichtverzweifelter schrieb:> Und gibt es irgendeine Möglichkeit, dass der "Eingang" RX in> Wirklichkeit bidirektional ist und "dagegen schreibt"?>> Mir sieht das sehr nach einer Kollision zweier Signale aus. Die etwa 2,6> Volt sind ja im "verbotenen Bereich" zwischen hi und low.Lothar M. schrieb:> Sieht für mich auch so aus.>> Ich würde einfach mal mit dem einen Tastkopf am Ausgang TX vom AVR und> mit dem zweiten Tastkopf am Eingang RX vom ESP messen (also ist da der> 1k8 dazwischen). Dann sieht man an den Pegeln ganz deutlich, wer wann> was treibt.
Ich denke, das ist ein guter Gedanke, den ich noch verfolgen muss!
Stefan ⛄ F. schrieb:> Vielleicht besteht eine unabsichtliche Verbindung> zwischen dem Rx Eingang des ESP und einem anderen I/O Pin. Vielleicht> eine Zinn-Brücke oder so.
Heute vormittag hatte ich alles auseinander genommen, gereinigt und mit
der Lupe inspiziert, gerade hinsichtlich einer ungewollten Verbindung
zum RX des ESP. Bisher aber nichts gefunden ...
Dietrich L. schrieb:> Hast du die +5V auch gut mit Stützkondensatoren versehen? Und zwar bei> allen +5V-Verbrauchern?
Jeder Chip hat mindestens einen 1µF SMD dicht bei seinen
Stromversorgungspins, der AVR auf jeder Seite einen. Zusätzlich sind
über 600µF mittels fünf Elkos auf den Platinen verteilt. Natürlich
könnte ich da noch aufstocken ...
Dietrich L. schrieb:> Dabei ist auch die richtige Verdrahtung des GND sehr wichtig.
Ja, das ist aber bei Lochraster auch eine Kunst. Ich habe für die
Stromversorgungen und GND immerhin fast immer Draht mit 0.5mm²
verwendet. Ich könnte noch ein paar Abkürzungen hinzufügen.
Lothar M. schrieb:> Miss mal "Masse gegen Masse". Ja richtig: lass mal die Masseklemme dort> wo sie jetzt ist und miss mal die 5V-GND des AVR, also von "Masse ESP"> zu "Masse AVR". Was siehst du da?
Ja, das ist ein weiterer Weg, den ich noch verfolgen muss!
Keller schrieb:> Die olle Stromversorgung !
Scheint darauf hinauszulaufen.
Habe ich noch irgendeinen Fehlersuchhinweis übersehen?
Die Stromversorgung kommt von einem:
DC-DC-Abwärtswandler LM2596S
Eingangsspannung: 4V-35V
Ausgangsspannung: 1,23V-30V
Mindestdifferenz: 1,5V
Eingangsstrom: 3A (max.)
Konversionseffizienz: 92%
Schaltfrequenz: 150kHz
Ausgangswelligkeit: 30mA (max.)
https://www.ebay.de/itm/164538302178
Der liefert 5V (für den AVR und diverse Chips)
und für einen zusätzlichen:
DC-DC-Abwärtswandler MP2307DN
Eingangsspannung: 4,75-23V
Ausgangsspannung: 1-17V
Ausgangsstromstärke: 1,8A (max. 3A)
Frequenz: 340kHz
https://www.ebay.de/itm/184157588852
der wiederum nur für den ESP zuständig ist.
Justin S. schrieb:> über 600µF mittels fünf Elkos auf den Platinen verteilt. Natürlich> könnte ich da noch aufstocken
Nee lass mal. Wenn man es übertreibt versagt der Spannungsregler.
Justin S. schrieb:> ich gehe auf 330 Ohm> und 820 Ohm und wäre dann bei 4,3 mA. Man ließt im Web, dass Ausgänge> niemals über 40mA, besser unter 20mA belastet werden sollten. Bei 4,3 mA> wäre ich da weit drunter
Spricht etwas dagegen, den Spannungsteiler so zu verändern?
Jetzt wo klar ist, dass es kein Bandbreitenproblem gibt, würden
niedrigere Widerstände 1) die Bandbreite leicht erhöhen und 2) die
Robustheit gegenüber Hochfrequenzeinstrahlung verbessern.
Der Strom am TX des Atmega328P würde von unter 1mA auf 4,3mA ansteigen.
Justin S. schrieb:> Spricht etwas dagegen, den Spannungsteiler so zu verändern?
Ja: Damit arbeitest du an der Problemursache vorbei. Probleme die man
nicht löst kommen immer irgendwann wieder hoch.
Wenn deine Hose zu eng ist, ziehst du dann einfach so feste daran, bis
du drin bist?
Stefan ⛄ F. schrieb:> Wenn deine Hose zu eng ist, ziehst du dann einfach so feste daran, bis> du drin bist?
Meistens schon.
Die Frage mit dem Spannungsteiler bezog sich darauf, was noch geändert
wird, wenn das Problem gelöst ist. Die Datenübertragung dauert nämlich
zu lang und ich würde gerne von 250kBaud auf 1MBaud gehen, um in einer
Millisekunde 100 Bytes übertragen zu können und nicht nur 25.
Oder soll ich für diese Spannungsteilersache einen eigenen Thread
aufmachen? Es war ja zu Beginn hier doch sehr zentral.
Justin S. schrieb:> Jetzt wo klar ist, dass es kein Bandbreitenproblem gibt, würden> niedrigere Widerstände 1) die Bandbreite leicht erhöhen und 2) die> Robustheit gegenüber Hochfrequenzeinstrahlung verbessern.
Nebelkerzen werfen. Ersatzhandlungen durchführen. Ausreden suchen.
1) ist nicht nötig, weil es ja kein Bandbreitenproblem ist
2) ist nicht sicher, denn die Probleme können ja auch von der
Masseführung kommen
Der Witz ist: das Problem ist doch noch gar nicht erkannt. Man sieht nur
Symptome. Selbsbewusste Frickler basteln da jetzt was drumrum, dass es
dann "ausreichend gut geht".
Deine Übertragungsstrecke ist nicht das Problem. Die Versorgung oder das
WLAN, das da hineinfunkt oder wasauchsonstnoch da die Finger im Spiel
hat, das ist das Problem.
Funktioniert deine Kamera?
Stefan ⛄ F. schrieb:> ... aber erst nachdem die Problemursache gelöst ist.Lothar M. schrieb:> Nebelkerzen werfen. Ersatzhandlungen durchführen. Ausreden suchen.
Ja, stimmt ja.
Also habe ich tatsächlich mal GND und Spannungen an verschiedenen
Stellen angesehen.
Für GND ist die einfachste erklärende Regel des Gesehenen: Je weiter der
Tastkopf von seiner der Krokodilklemme entfernt an eine der
Masseleitungen gehalten wird, desto mehr mV auf den Spikes.
Für die Versorgungsspannungen ist es komplizierter. Also habe ich zum
Test mal das Hauptnetzteil ausgewechselt. Das Ergebnis sind die beiden
Oszillogramme:
Die gelbe Kurve bei beiden Diagrammen ist Vcc direkt am ESP, die blaue
ist die Versorgungsspannung direkt am Ausgang des Hauptnetzteils.
Im ersten Fall (wo man einen leichten Badewannenkurvenverlauf
hineindeuten könnte) handelt es sich um Linearregler nach dem Motto
78xx, im zweiten um ein Schaltnetzteil.
Und so (blau) sieht das Signal am +OUT des LM2596S aus.
Das ist übrigens einer der alle 100ms erfolgenden Beacons.
Mittlerweile frage ich mich, warum das Ganze nahezu fehlerfrei
funktioniert. Ich wollte doch nur einen sporadisch auftretenden Fehler
beseitigen (um ihn wie ganz oben im Oszilloskop zu fassen zu kriegen,
brauche ich teilweise eine Viertelstunde wildes Herumspielen in den
Menüs der Software).
Justin S. schrieb:> desto mehr mV auf den Spikes.
Gibt's das auch als Zahl oder gar als Bild?
Justin S. schrieb:> brauche ich teilweise eine Viertelstunde wildes Herumspielen in den> Menüs der Software
Du sollst die Software so schreiben, dass sie laufend selber was
schickt. Dann musst du nicht in den Menüs herumtippen und auch keine
Viertelstunde warten.
Du müsstest übrigens überhaupt nicht mehr warten, denn solang du da so
eine lausige Versorgung hast, wirst du auch Fehler haben.
Aber ich kenne das von unseren Softies auch: statt systematisch einen
Fehler zu suchen wird da wild herumprobiert.
Irgendwann wird dann erklärt, dass man einen Würgaraund gefunden hat und
der Fehler jetzt so selten auftritt, dass er nicht mehr relevant ist...
Justin S. schrieb:> nur einen sporadisch auftretenden Fehler
Klingt wie: nur die Spitze eines Eisbergs
Abgesehen von dem oben nachgewiesenen Übertragungsfehler denke ich, ich
habe beim Messen ähnliche Probleme wie z.B. hier
Beitrag "Power Supply "glätten"".
Vermutlich verwende ich die Tastköpfe falsch. Meine Schaltung ist und
bleibt ohne Kontakt zu PE.
Ich habe mit dem ESP-01 einen starken WLAN-Sender, der
unglücklicherweise alle 100ms nicht nur mit voller Energie sendet,
sondern in dieser Zeit auch abrupt viel Strom verbraucht. Das
WLAN-Funksignal dürfte in allen Leitungen in der Nähe (alles ist
zwischen 1cm und 7cm von der WLAN-Antenne entfernt ) zu sehen sein.
Wenn ich den Tastkopf an den auf der Oberfläche des ESP-01 vorstehenden
Vcc-Pin klemme und die Krokodilklemme der Masse des Tastkopfes an eine
Masseleitung 2cm entfernt, dann habe ich ja auch das ca. 7cm lange
Massekabel des Tastkopfs als Schleife in unmittelbarer Nähe der
WLAN-Antenne.
Tja, und so stellt sich mir die Frage, wie ich den im Tastkopf
induzierten Strom von dem in den Leitungen meiner Schaltung
unterscheiden soll. Klemme ich den ESP-01 ab, habe ich ja auch keinen
großen Verbraucher mehr.
Wenn ich mit zwei Tastköpfen arbeite und die zugehörigen Krokodilklemmen
an zwei weit voneinander entfernten Massepunkten anschließe, dann fließt
ja auch ein gewisser Strom durch die Koaxkabel und das Oszilloskop, oder
nicht?
Justin S. schrieb:> Nun braucht man nach Nyquist
Lass mal den ollen Nyquist erstmal schön in Ruhe.
Überprüfe die Stabilität Deines Uart Clocks.
Mehr als 2% Abweichung zwischen ESP und ATmega führt zu Fehlern.
Flanken und Pegel direkt an den Eingängen des Chips messen, mit Oszi GND
direkt am GND des jeweiligen Chips.
Ist da alles okay, frage Dich welcher Art die Störungen sind.
Was ist an dem Byte kaputt?
Fehlt das komplett, weil es nicht rechtzeitig abgeholt wurde, oder
meldet der Uart einen Frame Error?
Justin S. schrieb:> Tja, und so stellt sich mir die Frage, wie ich den im Tastkopf> induzierten Strom von dem in den Leitungen meiner Schaltung> unterscheiden soll.
Tastkopf mit Massefeder verwenden:
https://www.google.com/search?q=tastkopf+massefeder&tbm=isch
Falls es nicht schon irgendo von irgendwem gesagt wurde: ein Foto vom
Aufbau wäre für konkrete Tipps sicher auch sinnvoll..
Max M. schrieb:> Überprüfe die Stabilität Deines Uart Clocks.> Mehr als 2% Abweichung zwischen ESP und ATmega führt zu Fehlern.
Getestet. Gut.
> Flanken und Pegel direkt an den Eingängen des Chips messen, mit Oszi GND> direkt am GND des jeweiligen Chips.
Getestet, Gut.
> Ist da alles okay, frage Dich welcher Art die Störungen sind.> Was ist an dem Byte kaputt?> Fehlt das komplett, weil es nicht rechtzeitig abgeholt wurde, oder> meldet der Uart einen Frame Error?
Siehe meine Oszilloskopien z.B. hier:
Beitrag "Re: Störungen der Übertragung bei 250kBaud durch zu kleine Bandbreite?"
Hier wurde öfter eine Kollision vermutet. Aber der ESP-01 empfängt über
seinen RX-Pin und legt doch nicht mal kurz für 8µs einen Hi-Pegel auf
den Eingang, oder ist da etwas bekannt?! Ich arbeite mit der Standard
AT-Firmware.
Lothar M. schrieb:> Tastkopf mit Massefeder verwenden:> https://www.google.com/search?q=tastkopf+massefeder&tbm=isch
Ja, aber irgendwo fängts dann an, wackelig zu werden. Ich muss, um den
Fehler zu erwischen, immer "Single" am Oszi drücken und das Signal dann
inspizieren, ob ein Fehler aufgetreten ist. Wenn nicht, ein Menü in der
Software wählen und wieder "Single" drücken u.s.w.
Dabei dann mit der anderen Hand den Tastkopf samt Feder an die richtigen
zwei Pins ohne Abrutschen und das Ganze im schlimmsten Fall 15 Minuten
lang?
Justin S. schrieb:> Aber der ESP-01 empfängt über> seinen RX-Pin und legt doch nicht mal kurz für 8µs einen Hi-Pegel auf> den Eingang, oder ist da etwas bekannt?!
Nichts dergleichen ist mir bekannt
Stefan ⛄ F. schrieb:> Die weit mehr als 100 mV Rauschen auf der Versorgungsspannung sind> jedenfalls inakzeptabel.
Ja. Im Beitrag Beitrag "Re: Störungen der Übertragung bei 250kBaud durch zu kleine Bandbreite?"
hatte ich ja die Ausgänge von zwei verschiedenen Hauptnetzteilen
gezeigt, die über ein längeres Kabel an den Eingang des von mir im
Beitrag Beitrag "Re: Störungen der Übertragung bei 250kBaud durch zu kleine Bandbreite?" gezeigten
DC-DC-Konverters auf Basis des LM2596S gehen.
Bei beiden Netzteilen zeigen sich die heftigen negativen Spikes. Da wird
also impulsartig Strom gezogen und die Netzgeräte reagieren nicht
schnell genug, so dass die Spannung geringfügig einbricht.
Natürlich fällt mir eine Kombi aus Drossel und Elko direkt vor dem
DC-DC-Konverter ein, damit das längere Kabel nicht so starke
Verschutzungen womöglich sendet.
Natürlich hat der DC-DC-Konverter direkt am Eingang einen 100µF Elko und
viel hilft nicht immer viel, aber vielleicht würde die Drossel zwischen
Kabel und DC-DC-Konverter ja schon reichen?
Klar, das betrifft nicht das Falsche-Bits-Problem ...
Justin S. schrieb:> Lothar M. schrieb:>> Tastkopf mit Massefeder verwenden:>> https://www.google.com/search?q=tastkopf+massefeder&tbm=isch> Ja, aber irgendwo fängts dann an, wackelig zu werden.
Es gibt auch Massefedern und Tastkopfspitzen zum Anlöten. Und man kann
dahingehend auch selber tätig werden:
https://community.element14.com/technologies/test-and-measurement/b/blog/posts/building-solderable-in-circuit-oscilloscope-probes
Und es gibt Tastkopfhalter mit Zentralklemmung:
Beitrag "Quelle für Tastkopf-Halterung"> Ich muss, um den Fehler zu erwischen, immer "Single" am Oszi drücken und> das Signal dann inspizieren, ob ein Fehler aufgetreten ist. Wenn nicht,> ein Menü in der Software wählen und wieder "Single" drücken u.s.w.
Wie gesagt: du must den Fehler automatisieren oder einfach schauen, ob
du noch immmer diese Spikes auf der ganen Schaltung hast. Denn die sind
ja auch leicht zu sehen, ohne dass du 1 einziges Byte überträgst, oder
nicht?
Wie ich schon schrieb:>>> Du müsstest übrigens überhaupt nicht mehr warten, denn solang du da so>>> eine lausige Versorgung hast, wirst du auch Fehler haben.> das Ganze im schlimmsten Fall 15 Minuten lang?
Auch dafür habe ich schon einen Ansatz. Du musst den Fehler
"automatisieren". Statt nur bei Tastendruck zu Senden sendest du einfach
dauernd. Dafür musst du ja nur alle 50ms einen Tastendruck simulieren.
Aber letztlich musst du selber entscheiden, was du machen willst. Es ist
deine Schaltung und dein Fehlerbild, womit du kämpfst.
Justin S. schrieb:> vielleicht würde die Drossel zwischen> Kabel und DC-DC-Konverter ja schon reichen?
Probiere es aus. Wobei Step-Down Wandler so etwas normalerweise nicht
brauchen, denn deren Spule liegt ja schon ein Reihe zur Stromversorgung.
Willst du uns immer noch keine Fotos von der Leitungsführung zeigen?
Hallo,
Justin sendet nicht auf Tastendruck er misst auf Tastendruck. Nur muss
man beim Rigol nicht immer wieder in ein Menü, es reicht nur auf den
Taster 'Single' wiederholt zu drücken. Dann wartet das Oszi auf die
nächste eingestellte Flankenerkennung. Ich wüßte jetzt aber nicht wie
man diese Messung automatisieren könnte, sodass er nur beim fehlerhaften
Signal stehen bleibt und ansonsten permanent misst bis dahin.
Justin S. schrieb:> as Ganze im schlimmsten Fall 15 Minuten> lang?
Nein, sogar noch viel Länger.
Du wirst doch wohl ein Koax Kabel als 1/1 Tastkopf ans Oszi hängen und
die abisolierten Enden in Deine Schaltung löten können?
Nicht perfekt abgeschlossen, aber wie ein Tastkopf aufgebaut ist wirst
Du doch wohl googeln können.
Wie Lothar sagte, automatisiere das und sende dauern.
Dann logge mit wann der Fehler kommt und schau Dir an ob der in einem
bestimmten Rhythmus auftritt.
Der RX pin des ESP ist auch nur ein normaler logig Pin mit mehreren
Funktionen und wenn was amokt, kann der natürlich auch ein Ausgang sein.
Wenn z.B. der ESP beim Wlan senden immer kurze Einbrüche auf der VCC
sieht, kann alles mögliche passieren.
Wie konstant ist denn der ESP in seiner Frequenz?
Sender und Empfänger dürfen max 2% fehler ZUEINANDER haben.
Wie groß ist Dein Fehler auf beiden Seiten weil sich die Clock Frequenz
bei 250K nicht mit exakt 0% Fehler in Werte für den baudratengenerator
umsetzen lässt?
Wie groß ist der Jitter und die Frequenzabweichung der Oszillatoren auf
BEIDEN Seiten?
Verändert sich etwas wenn du das ganze Gelumpe erwärmst, abkühlst, oder
mal einen der Baudratengeneratoren etwas in eine Richtung verstimmst?
Geht, okay, passt schon und Oszi Bilder auf denen man nichts oder eine
intakte Übertragung sieht, sind keine Aussagen mit denen ich arbeiten
kann.
Du hast einen Fehler den Du nicht verstehst, also geh in die Materie und
klopf jeden einzelnen Punkt ab, bis du es verstehst.
Oder bau ein Protokoll das Fehler erkennt, mit NAK quittiert und neue
Daten anfordert.
Das ist dann der Workarround, der ein schlampiges Design per Software
gesundbetet. Das geht dann vieleicht oder oder der nie verstandene
Fehler verschlechtert sich, bis es nicht mehr geht.
Aber Arbeit reinstecken wirst Du wohl müssen und wenn Du Hilfe willst
wirst Du auch Zahlen und Fotos liefern müssen.
Justin S. schrieb:> Zusätzlich sind über 600µF mittels fünf Elkos auf den Platinen verteilt.
Hoffentlich VOR dem Spannungsregler des ESP8266 ...
Wie sehen die 3.3V des ESP aus?
Tastköpfe waren die letzten Tage mein Thema. Nun habe ich mit der
Masseklammer direkt am ESP-01 Vcc und GND gemessen und die Spikes sind
weg. Man sieht die Welligkeit des MP2307DN und wie er auf die erhöhte
Stromanforderung des ESP-01 bei den „Beacons“ reagiert.
Da sackt die Spannung also um 100 mV ab um dann um 150 mV zu steigen.
Das halte ich für grenzwertig. Mache mal einen 100µF Elko direkt an das
ESP Modul, falls noch nicht geschehen.
Ich sehe dagegen, dass ohne große Last die Welligkeit des Output mit den
angegebenen ca. 340kHz bei ca. 40mVpp liegt.
Von der Mittellinie dieser Schwingung aus geht es im Moment der abrupten
Lastanforderung 65mV abwärts und von da ca. 130mV aufwärts und dann auf
einem ungefähr um 50mV erhöhten Niveau ungefähr waagerecht mit stärkeren
unregelmäßigen Schankungen mit maximal +-50mV weiter.
Das Raster ist ja auf 50mV eingestellt, das hast Du gesehen, oder?
Ich habe da einen 220µF-Elko, aber
Wolfgang schrieb:>> Zusätzlich sind über 600µF mittels fünf Elkos auf den Platinen verteilt.>> Hoffentlich VOR dem Spannungsregler des ESP8266 ...
die 220µF sind also NACH dem MP2307DN. Der hat nur einen SMD-C
unmittelbar am Ausgang, und der ESP-01 hat direkt am ESP8266EX einen
SMD-C. Es gibt aber noch einen 220µF-Elko im Abstand von ca. 3cm.
Justin S. schrieb:> Das Raster ist ja auf 50mV eingestellt, das hast Du gesehen, oder?
Jaja, das habe ich schon gesehen. Ich habe das aber aus Sicht des ESP
betrachtet weil ich weiß, dass er bei 300 mV Sprüngen zuverlässig
Fehlfunktionen bekommt. Dabei ist ihm egal, wo der Mittelwert liegt.
Im Anhang mal ein Versuch eines Fotos, auf dem man die beiden Tastköpfe
sehen kann und das dazugehörige Oszillogramm. Der linke Tastkopf ist an
Vcc des ESP-01 (gelbes Signal), der rechte am Eingang des zugehörigen
DC-DC-Wandlers MP2307DN (blaues Signal).
Das blaue Signal hat zu viel Rauschen.
Stefan ⛄ F. schrieb:> Willst du uns immer noch keine Fotos von der Leitungsführung zeigen?
Schaltplan wäre auch gut.
Stefan ⛄ F. schrieb:> Willst du uns immer noch keine Fotos von der Leitungsführung zeigen?>> Schaltplan wäre auch gut.
Alles handgezeichnet, nicht besonders toll, noch schlimmer als das Bild
meiner Lötkünste. Ist mir wirklich peinlich, hier öffentlich.
Ist das denn mit den zwei Masseklammern so richtig?
Muss man für jeden Tastkopf die Masseklammer benutzen?
Justin S. schrieb:> Alles handgezeichnet, nicht besonders toll, noch schlimmer als das Bild> meiner Lötkünste. Ist mir wirklich peinlich, hier öffentlich.
Tja dann ...
Wir sehen nicht was du siehst und gemacht hast. Wir können dir so nur
sehr schlecht helfen.
Du könntest die Zeichnung nochmal neu machen.
> Ist das denn mit den zwei Masseklammern so richtig?
Kann ich nur anhand des Fotos nicht sagen. Vermutlich hast du sie mir
irgendeinem Massepunkt verbunden. Aber ob das der ist, den du messen
wolltest - wer weiß?
> Muss man für jeden Tastkopf die Masseklammer benutzen?
Ja. Es sei denn du blendest Frequenzen oberhalb von 100 kHz aus, aber
das ist ja gerade der spannende Bereich.
Stefan ⛄ F. schrieb:> Das blaue Signal hat zu viel Rauschen.
Ja, es hat diese 300mV-Spikes und ist das Ausgangssignal des oben
genannten weit verbreiteten LM2596-Moduls (und das Eingangssignal des
MP2307DN).
In diesem Beitrag (Beitrag "ESP8266 an LM2596 -> TX-Müll")
sagt Dan N., dass der ESP durch den LM2596 gestört wird.
Leider finde ich zur tatsächlichen Anwendung der Module recht wenig. Es
scheint, als wenn die sonst allgemein sehr gut laufen.
Die Ausgangsspannung von Step-Down Wandlern ist normalerweise ein
regelmäßiger dreieckiger Verlauf mit höchstens 50mV Ripple.
Ich vermute, dass der LM2596 Chip nicht die Problemursache ist. Der Chip
läuft sogar im manuellen Aufbau auf Lochraster Platinen ohne Probleme.
Vielleicht ist aber der Aufbau drumherum mangelhaft. Schade dass du
weder Schaltplan noch Fotos zeigen willst. So kann es nur ein nerviges
Ratespiel bleiben.
Was ich persönlich schon zu Beginn gemacht hätte ist es, die serielle
Verbindung von der Software her zu testen. Sprich: -nur- die
Kommunikation. Ohne Menu, ohne den ganzen Aufbau. Zwei Controller die
sich ohne die kompletten Altlasten über uart unterhalten. Dann kann man
die 200 Zeilen Code ggf auch einmal hier angucken.
Justin S. schrieb:> So, da haben wir zumindest mal eine Störung
Und hier mal zwei Störungen. Diesmal zeigen alle Bilder oben in blau den
TX-Ausgang des ATMEGA328 und unten den RX-Eingang des ESP-01 (wie
gefordert).
Die ersten beiden Bilder zeigen, wie genau am Ende eines „Beacons“ (zu
erkennen am Ende der Welligkeit im gelben Signal) eine bei 3 Volt
beginnende langsam fallende Flanke die logischen "0" des blauen Signals
zerstört. Beim Hereinzoomen kann man sehen, dass diese "Zerstörung"
ziemlich genau 10µs andauert. Im schlimmsten Fall sind also drei Bits
zerschossen.
Das dritte und vierte Bild zeigen das gleiche Phänomen: auch wieder mit
diesem 10µs-Nachläufer, wie er exakt auf das Ende des Strombedarfs für
den „Beacon“ zwei Bits verfälscht.
Was ist das?
Sven schrieb:> Was ich persönlich schon zu Beginn gemacht hätte ist es, die serielle> Verbindung von der Software her zu testen. Sprich: -nur- die> Kommunikation.
Da ist alles perfekt, siehe
Beitrag "Re: Störungen der Übertragung bei 250kBaud durch zu kleine Bandbreite?"
Probiere mal eine alte Version der Firmware auf dem ESP-01. Ich habe
welche dort aufbewahrt:
http://stefanfrings.de/esp8266/index.html#atfirmware
Wenn es damit gut funktioniert, wäre ein Softwarefehler denkbar.
Da wird wohl die Masseleitung zwischen den beiden Meßstellen eine
Potentialverschiebung erhalten? Was zu dieser Zeit 10microsec. lang
gedauert?
Blackbird
Stefan ⛄ F. schrieb:> Probiere mal eine alte Version der Firmware auf dem ESP-01.
Hm, ich nutze die AT-Version 1.2.0.0 vom SDK 1.5.4.1
Dürfte sich nicht wesentlich von Deiner unterscheiden (1.1.0.0 vom SDK
1.5.4).
Lothar J. schrieb:> Da wird wohl die Masseleitung zwischen den beiden Meßstellen eine> Potentialverschiebung erhalten?
Ich messe zwischen den beiden Massepunkten, an denen ich die
Masseklammern angeschlossen habe, ca. 0,9 Ohm. Verbinde ich die
Messkabel direkt miteinander, messe ich 0,1 Ohm. Können diese 0,8 Ohm
Ursache des Problems sein?
Mit I=U/R wären das 4V/0,8Ohm = 5A (Ausgleichsstrom). Für 10µs durchaus
möglich. Aber woher?
Was hängt denn noch alles an der Elektronik dran und wie sind die
Netzteile primär und sekundär verbunden?
Blackbird
Justin S. schrieb:> Können diese 0,8 Ohm Ursache des Problems sein?
Ja sicher. Überlege mal: Bei 400mA Sprüngen in der Stromaufnahme fallen
dort 320mV ab! Dazu kommt noch der HF Anteil.
Justin S. schrieb:> Ich messe zwischen den beiden Massepunkten, an denen ich die> Masseklammern angeschlossen habe, ca. 0,9 Ohm.
Ohne Witz? Die schaltungstechnisch selbe Masse hat zwischen 2 Punkten
0,9 Ohm "Widerstand"? Dann wird das niemals stabil laufen.
> 0,8 Ohm.
Das sind einige Meter Kabel, denn bei 0,34mm² hast du einen Widerstand
von 60 Ohm/km, was für 0,8 Ohm dann immerhin 75m Kabel ergibt. Oder
führt diese Masse über zig Stecker? Oder ist sogar ein IC mit drin (es
gab schon welche, die haben das als "Brücke" verwendet: am einen GND-Pin
rein, am anderen raus)?
Stefan ⛄ F. schrieb:> Justin S. schrieb:>> Können diese 0,8 Ohm Ursache des Problems sein?>> Ja sicher. Überlege mal: Bei 400mA Sprüngen in der Stromaufnahme fallen> dort 320mV ab!Lothar M. schrieb:> Dann wird das niemals stabil laufen.Lothar M. schrieb:> Oder führt diese Masse über zig Stecker?
Über drei Stecker: Den ESP-01-Modul-Stecker und zwei Stecker für ein
7cm-Kabel, das zur CPU-Platine führt. Dieses Kabel war die Ursache für
den hohen Widerstand, möglicherweise Kabelbruch. Jedenfalls hab ich es
neu hergestellt und nun sind die Massepunkte auf dem gleichen Niveau
(<=0.1 Ohm).
Aber das Problem hat sich nicht (kaum?) geändert (siehe Oszillogramm
eines Fehlers direkt am ESP-01 gemessen).
Dann werden wohl noch ein paar andere Kabel Probleme bereiten.
Der Tx-Ausgang ist niederohmig genug, den Eingangsspannung des ESP auf
Masse zu ziehen.
Entweder ein Tx-Rx-Kabelproblem, oder irgendein Programmteil im ESP
schaltet für 10us den Rx-Eingang auf treibenden Ausgang.
Blackbird
Justin S. schrieb:> als das Bild> meiner Lötkünste.
Sieht doch ordentlich aus.
Mach mal die GND-Pins alle ab und ziehe zu einem Punkt, wo deine
Betriebsspannung reinkommt. Je einen Draht und verbinde sie dort. Nur
dort.
Dann fließt schonmal der Strom, der in ein Modul reingeht, auch auf
seinem Draht wieder zurück und stört niemanden anderen. (ich schreib das
mal so).
Dann kannst du auch an jedem Verbraucher DIREKT einen Elko anlöten.
Sieh Dir mal (nur mal so) die "BestCap" Serie von AVX an. Die sind genau
dafür gemacht. nierohmig, hochkapazitiv, ungepolt. schön flach, passen
gut auf die Unterseite deiner Aufbauten.
https://www.digikey.de/de/products/detail/kyocera-avx/BZ054B223ZSB/1014114
Also Plus und Minus jeder Baugruppe einzeln mit drähten wegführen. Da
brauchst auch nix "abkürzen". ganz vorn zusammenlegen. Minus auf einen
gemeinsamen Punkt.
der MH-360 scheint ungeeignet. Kannst den ESP nicht mit aus dem anderen
versorgen? sonst mach da 100µH in Reihe und 10nF gegen GND am Regler.
Ach: man muss da mal den gesamtaufbau sehen
Muss man alles HF-technisch betrachten. Masseleitung bei 2.4Ghz und
viertel Wellenlänge ist elektrisch hochohmig. man muss es jetzt mit der
Betrachtungsweise auch nicht übertreiben, aber so in der Art.
Axel R. schrieb:> Ach: man muss da mal den gesamtaufbau sehen
Vergiss es, danach habe ich schon 5x gefragt. Bei so viel
Geheimnistuerei hat er meiner Meinung nach nicht verdient, dass wir uns
noch weiter damit befassen.
Stefan ⛄ F. schrieb:> Vergiss es, danach habe ich schon 5x gefragt. Bei so viel> Geheimnistuerei hat er meiner Meinung nach nicht verdient, dass wir uns> noch weiter damit befassen.
Stefan hat ganz recht - da haben wir auch keine Lust zu, bei soviel
Geheimniskrämerei. Das hat nun davon, der TO.
Hm, hier wird bereits den ganzen Thread lang auf hardwareseitigen
Fehlern herumgeritten. Wie wäre es denn mal einen Logic Analyzer
dazwischenhängen und schauen, ob da die Bytes evtl. auch fehlen oder
fehlerhaft sind.
Justin S. schrieb:> Lothar M. schrieb:>> wer da wann an den Leitungen herummzerrt.> Hatte ich bereits geliefert:
Und das sieht jetzt nach der Reparatur immer noch gleich aus?
Harald A. schrieb:> Wie wäre es denn mal einen Logic Analyzer dazwischenhängen und schauen,> ob da die Bytes evtl. auch fehlen oder fehlerhaft sind.
Der kann erst sinnvoll drauflos gelassen werden, wenn der physical Layer
der Übertragung ok ist. Vorher ist der Einsatz eines LA Unfug.
Lothar M. schrieb:> Und das sieht jetzt nach der Reparatur immer noch gleich aus?
Ja, vielleicht minimal verbessert (jeder kann ja vorher nachher anhand
der Bilder vergleichen).
Aber ich denke, ich habe nun die Geduld Vieler überstrapaziert. Tut mir
leid, Stefan, Jester. Es ist nicht immer Geheimniskrämerei (nein, auch
ich weiß, dass ich nur rekombiniert habe, was andere vor mir auch schon
zig-mal in den letzten Jahr(zehnt)en getan haben). Vielmehr existiert
kein kompletter Schaltplan, sondern nur für diverse Abschnitte
handgezeichnete Skizzen. Das in eine vernünftige Form zu bringen, dürfte
mich zusätzlich Tage wenn nicht Wochen kosten, da ich mich mit
Layout-Programmen gar nicht auskenne.
Vielen Dank für das Hineindenken in meine Problematik und die vielen
Vorschläge, das Problem in den Griff zu bekommen. So konnte ich viel
lernen und systematisch diverse Dinge testen.
Meine nächsten Schritte werden sein, die Stromversorgung des ESP-01 noch
einmal zu überarbeiten (Elko näher an Vcc und Gnd des ESP-01) und den
Spannungsteiler, wie schon oben angedeutet, zu ändern (vielleicht wird
das Signal ja dann in den Low-Bereich gezogen).
Ich gehe davon aus, dass das Problem dann beseitigt ist und es sich
nicht um einen so offensichlichen Softwarefehler des ESP-01 handelt (den
hätten nämlich andere vor mir schon lange gefunden).
Harald A. schrieb:> Wie wäre es denn mal einen Logic Analyzer> dazwischenhängen und schauen, ob da die Bytes evtl. auch fehlen oder> fehlerhaft sind.
Hast du die Oszilloskop-Bilder (samt Logic analyse) nicht gesehen? Hast
du überhaupt die Beiträge des TO gelesen? Scheint mir nicht so.
Softwarefehler habe ich übrigens längst vermutet und einen Vorschlag zur
Kontrolle gemacht. Aber darauf hat der Justin keine Lust - er vertraut
lieber darauf, dass Version 1.5.4.1 nicht schlechter sein kann als 1.5.4
(alleine wegen der Nummer).
Eine strukturierte Fehlersuche ist ohne Plan gar nicht möglich, doch den
will Justin nicht erstellen. Er will nicht einmal Fotos zeigen.
Vielleicht schämt er sich für den leicht chaotischen Aufbau. Aber andere
kochen auch nur mit Wasser, da gibt es nichts, wovor man sich schämen
muss. Die Lötstellen die wir bisher sehen durften sind schließlich
ordentlich gemacht worden.
Justin S. schrieb:> Aber ich denke, ich habe nun die Geduld Vieler überstrapaziert
Allerdings.
Justin S. schrieb:> Tut mir leid, Stefan, Jester.
Letztendlich blockierst du dich selbst mit dieser Vorgehensweise.
Versorge den ESP doch erstmal mit einer garantiert sauberen externen
Quelle, und schau ob das dein Problem löst! Du vergeudest sonst nur Zeit
und Geld, womöglich an der falschen Stelle.
Wenn ein Auto nicht startet, würdest du dann den ganzen Motor zerlegen
bevor du sicher bist, dass er gut Benzin und Zündung bekommt?
Hi Stefan, reg' dich nicht auf so kurz vor Weihnachten - alles gut.
Ja, die Scope-Bilder habe ich gesehen, die Beiträge auch teilweise
gelesen. Nicht in aller Tiefe muss ich zugeben. Übertragung nicht toll,
aber meiner Meinung nach müsste man auch immer genau wissen, wie die
Tests durchgeführt wurden. Ja, teilweise kurze Feder benutzt, aber war
das immer so?
Ein LA Test würde ich persönlich auch auch immer machen. Ich beanspruche
nicht, dass das die einzig richtige Vorgehensweise ist. Tut aber auch
nicht weh. Habe schon oft genau solche Szenarien gehabt und es war dann
manchmal ein Timing-Ding. Bytes verschluckt im Interrupt, etc.
Die gezeigten Störungen müssen aber auch weg, keine Frage!
Und wenn der TO sagt, das seien fertige Libs, bei denen Fehler schon
anderen Leuten vorher aufgefallen wären, dann kann ich nur sagen, dass
viel Mist mit bekannten Bugs für Ewigkeiten kursiert.
>Was ich persönlich schon zu Beginn gemacht hätte ist es, die serielle>Verbindung von der Software her zu testen. Sprich: -nur- die>Kommunikation. Ohne Menu, ohne den ganzen Aufbau. Zwei Controller die>sich ohne die kompletten Altlasten über uart unterhalten. Dann kann man>die 200 Zeilen Code ggf auch einmal hier angucken.
Ich würde das echt als Tip noch mal ins Rennen werfen. Denn wenn
tatsächlich fertige Libs werkeln, so können die a) einen Bug haben wie
oben erörtert und b) GANZ ohne eigenen Code kommt es doch auch dann
nicht aus.
Ich habe bis jetzt erst ein mal wirklich Übertragungsfehler wegen eines
elektrischen Problems gehabt. Es ist (meine persönliche) Erfahrung, dass
irgendwie meistens doch was an der Software zickt.
Also: Mein rat wäre übertrage Daten und zwar keine Messdaten, sondern
wegen mir einen Counter mit komplementärem Zählstand oder so. Alles auch
vermeindlich funktionierende würde ich erst mal in Zweifel stellen.