Hallo,
wüsste mal gerne ob jemand anders schon mal diese Problem hatte.
Ich lasse den Arduino ein simples Programm durchlaufen. Schalte ich dann
in der Wohnung ein Gerät mit Motor an z.B Staubsauger, Mixer o.Ä. bleibt
der Arduino hängen. Dies passiert bei mir nur beim Arduino Mega 2560..
bei anderen Chips z.B atmega328p habe ich das Problem nicht.
Setze ich einen Netzfilter an den Verbraucher, ist das Problem behoben.
Allerdings kann ich ja nicht jedes Gerät mit Netzfiltern ausstatten.
Somit dachte ich, ich könnte mittels Netzfilter nur den Arduino
schützen. Hat aber leider nichts gebracht. Sehr wundert mich das es
sogar zum Absturz kommt wenn ich den Arduino über meinen PC USB mit
Strom versorge. Habe auch schon mehre Arduinos vergeblich ausprobiert.
Kennt jemand diese Problem?
ich habe nur den Arduino über USB am PC hängen.
Deswegen habe ich auch keinen Schaltplan hochgeladen.
Das Programm spielt denke ich auch keine Rolle. Bis jetzt kam es bei
jedem Programm zum Absturz.
und schon mal vielen Dank für die Hilfe!
Manchmal wirken die Leitungen am reset Pin wie Antennen. Dann hilft es,
einen 10k Pull-Up Widerstand und/oder einen 100nF Kondensator nach GND
hinzu zu fügen.
Stefan U. schrieb:> 10k Pull-Up Widerstand und/oder einen 100nF Kondensator
Original Arduino ist 10K 22pF
Mit einem weiteren 100nF zwischen GND und Reset kann der Autoreset für
den Upload versagen.
@ Daniel (Gast)
>Ich lasse den Arduino ein simples Programm durchlaufen. Schalte ich dann>in der Wohnung ein Gerät mit Motor an z.B Staubsauger, Mixer o.Ä. bleibt>der Arduino hängen.
Wie stellst du das fest? Blinken die LEDs nicht mehr?
> Dies passiert bei mir nur beim Arduino Mega 2560..
Das sollte nicht so sein.
>bei anderen Chips z.B atmega328p habe ich das Problem nicht.>sogar zum Absturz kommt wenn ich den Arduino über meinen PC USB mit>Strom versorge. Habe auch schon mehre Arduinos vergeblich ausprobiert.
Und alle stürzen ab? Kann ich kaum glauben.
Wenn du einen Laptop zur Verfügung hast, dann schließ den Arduino mal
darüber an und das ganze über den Akku betreiben. Damit kannst du
überprüfen, ob diese Störung über die Elektroinstallation kommt oder ob
es durch EMV-Probleme im Raum verursacht wird. Alternativ kannst du auch
einen Akku-pack nehmen und eine LED im Code an und aus schalten.
z.B Led blinken hört auf. Oder die Verbindung zur Konsole bricht ab.
Ich kann es eigentlich auch nicht Glauben. anscheinend hat auch kein
anderer dieses Problem.. Trotzdem bleibt das Controller Sobald eine
induktive Last vom Netz genommen wird hängen.
Üblicherweise können solche Problem beim Schalten von Relais auftreten.
aber darum geht es ja gar nicht. Ich will ja nur das z.B die Led blinkt.
Kann jetzt schlecht beweisen das es so ist.
@Daniel (Gast)
>z.B Led blinken hört auf. Oder die Verbindung zur Konsole bricht ab.
Das klingt nach dem Mann, der zum Arzt kommt und sagt. "Überall wo ich
mit dem Finger drauf drücke tut es weh! Was fehlt mir, Herr Doktor?
Sie haben sich den Finger gebrochen!"
Ich glaube dein Laptop hat ein EMV-Problem am USB, dort pfeift der
Störimpuls rein und lässt den USB-Controller abstürzen. Probier es mal
mit einem anderen Laptop. Oder erstmal an einem anderen USB-Port.
@ Bränko (Gast)
>ich hatte mal das gleiche Problem. Ich konnte es mit einer TVS-Diode>beheben
Ach so? 3x täglich eine oder als Zäpfchen?
> - einfach mal nach googln
Na wenn's soooo einfach ist! Das er da nicht gleich drauf gekommen ist!
> Ach so? 3x täglich eine oder als Zäpfchen?
Puh. Ja, ich hab Experimente mit AVRs gemacht und geschaut, was sie
alles so aus dem Takt bringt. Bohrmaschine, Staubsauger, u.Ä. neben AVRs
zu betreiben war ein 'Versuch'.
Schaut man sich die Versorgungsspannung mit dem Scope an, setzt das
Trigger-Level etwas höher als die Versorgungsspannung und lässt den µC
mit einem
while(1)
{
set_pin()
clr_pin()
}
laufen dann sieht man eindeutig Burst -> nix blinken mehr.
Transient Voltage Suppressor Dioden (TVS-Dioden) sind dafür gemacht,
solche Bursts in den GND zu schicken.
Drum:
einfach mal nach googln und informieren
Daniel schrieb:> Das Programm spielt denke ich auch keine Rolle. Bis jetzt kam es bei> jedem Programm zum Absturz.
dann wechsel mit diesem Aufbau das Zimmer, die Wohnung und teste Ort
Lage und Zeitum herauszufinden ob der Fehler mit "ALLEN" Boards am Ort
liegt oder an deiner Hardware!
Ich kann das mit x-China Clones und selbstgebauten überall auch auf
Steckbretter nicht bestätigen, mein Schrott läuft überall, @work,
daheim, im "Ausland" auf Platinen, auf Steckbretter.
Erst vollständige Tests mit mehreren Aufbauten an mehreren Orten lassen
evt. eine Tendenz erkennen.
Wenn es nur an eine Steckdose, an einem "Störer" an einem Aufbau liegen
sollte lässt sich das leicht finden und abstellen.
Das passiert mit einem einzigen Arduino, richtig? Was schliessen wir
daraus? Dass er vermutlich kaputt ist. Entweder Abblockkondensator im
Eimer oder Platine/Anschlüsse so beschädigt, dass sie als sehr gute
Antenne wirken. Solcherlei Störungen sind dann normal und
"interessantere" Ursachen/Erkenntnisse sind kaum zu erwarten.
Daniel schrieb:> Das Programm spielt denke ich auch keine Rolle. Bis jetzt kam es bei> jedem Programm zum Absturz.
Versuch mal ne einfache Blink-LED mit _delay_ms().
Und keine Leitungen (Antennen) an den IO-Pins.
Selbes Problem hier mit einer NodeMCU. Daran hängt ein Sensor mit ca. 30
cm Kabel. Controller stürzt alle paar Stunden ab und startet nach
einigen Minuten/Stunden von selbst wieder.
Ist ein Ferritkern eine Lösung?
Name schrieb:> Selbes Problem hier mit einer NodeMCU. Daran hängt ein Sensor mit> ca. 30> cm Kabel. Controller stürzt alle paar Stunden ab und startet nach> einigen Minuten/Stunden von selbst wieder.>> Ist ein Ferritkern eine Lösung?
Es tritt immer nur in einem Raum auf. Zuhause funktioniert alles
einwandfrei. Sobald ich aber die NodeMCU im Keller betreibe, hängt sie
sich ständig auf. Meistens in einem Intervall von 2-24 Stunden. Dabei
bleibt sie dann einige Minuten oder auch Stunden aus und startet
anschließend wieder von selbst. Das sehe ich, da der Controller bei
jedem setup() eine Nachricht schreibt.
Name schrieb:> Ist ein Ferritkern eine Lösung?
Die Ferritkerne, die üblicherweise an irgendwelchen Kabeln verbaut sind,
gelten weniger den hereinkommenden Störungen, sondern sollen das Gerät
so abblocken, dass es durch die Störabstrahlungsmessungen im EMV-Labor
kommt.
> Ist ein Ferritkern eine Lösung?
Ein sauberer und störsicherer Aufbau von Schaltung, Versorgung und
Software ist der übliche Ansatz. Zigmillionen Geräte funktionieren auf
diese Weise auch im Keller.
Wenn dann irgendwann die jeweiligen Grenzen des Könnens erreicht sind
und der Fehler immer noch da ist, dann holt man sich den Musterkoffer
vom Würth, klemmt mal an jede Leitung einen Ferritkern und hofft dann,
dass das irgendwie ausreicht.
Ergo Schritt 1: zeig mal deinen Schaltplan und den Aufbau deiner
Schaltung.
Name schrieb:> Selbes Problem hier mit einer NodeMCU.
Das ist aber eine andere Baustelle. Bei ESP Chip (also auch NodeMCU) ist
eine gute Stromversorgung notwendig. Mit den extremen Stromschwankungen
kommen einige Netzteile nicht klar. Kurze dicke (>0,2mm) Kabel möglichst
ohne Steck-Verbinder würde ich dringend empfehlen.
Dann kommt noch dazu dass (zumindest bei mir) fast alle Firmware
Versionen, ausgenommen SDK 1.5.4 (=Arduino ESP8266 Core 2.3.0) instabil
liefen.
Schaltplan:
https://cdn.instructables.com/FHX/SAMQ/IZYGIEL5/FHXSAMQIZYGIEL5.LARGE.jpg
Ferritkerne habe ich gestern schon probiert (jeweils einen um das
USB-Kabel und um das Sensorkabel). Der Controller stürzt trotzdem ab.
Ich kann auch keine anderen Kabel verwenden, da es sich hierbei um ganz
normale USB-Kabel handelt. (siehe Bild oben)
> Ich kann auch keine anderen Kabel verwenden
Dann musst du mit den Ausfällen leben. Wenn die Basis schon schlecht
ist, kann das Endergebnis nur schlecht werden.
USB Kabel sind zur Stromversorgung nur sehr bedingt geeignet, da sie
fast alle zu dünn sind (deins ganz sicher). Auch hast du Verluste am
Steck-Kontakt. Um da mal eben schnell die Firmware hochzuladen reicht
es, aber nicht für Langzeit-Betrieb.
Verwende besser ein 5V Netzteil mit fest angelöteten Kabeln.
Arduino ist halt kein "industriell" verwendbares Produkt, sondern ein
Board von Bastler für Bastler. Mehr nicht, selbst wenn das die
Informatiker unter uns anders sehen. Da würde ich robustes Design,
Reserven und EMV-Festigkeit nicht unbedingt erwarten.
Als Beispiel sind zwei Bilder angehängt - einmal Arduino im
Originalzustand und einmal Arduino in der Profi-Ausführung. Die
Unterschiede sollten selbst dem Layout-Laien auffallen. Rot umkreist die
Abblockkondensatoren. Diese MÜSSEN nahe ran, sonst sind sie wirkungslos.
Bei dem Original kann man diese lange suchen :-) Klar, auf dem
Labortisch läuft auch ein solches Board, aber in einer konkreten
Anwendung halt eben nicht. Oder nur manchmal...
Wirksame Filterung der ADC-Versorgung (gelb) und eine vernünftige
Anbindung des Quarzes (blau) helfen enorm, ebenso wie das saubere Design
der Reset-Leitung.
Wenn dazu das Layout auch noch passt, dann läuft selbst ein "Arduino" in
industiellen Geräten extrem stabil. Fairerweise muss man aber auch
dazusagen, dass dieses Board etwa das 2 bis 3-fache von einem originalen
Arduino kostet.
Hier mein Senf:-)
Bei uC Schaltungen darf die Außenwelt nicht galvanisch direkt mit
irgendeinen Teil der Schaltung verbunden sein. Alle Input und Output
Beschaltung muss also ausreichend mit den üblichen Methoden entkoppelt
sein um nicht direkt für EMP als Antenne zu wirken. Wenn also die uC
Schaltungs Leiterplatte nicht ähnlich komplex mit Komponenten wie die
eines analog Fernsehers aussieht, dann fehlt was:-)
Das heißt, man verbindet digitale Inputs mit der Außenwelt mindestens
mit 1K oder höheren Serien Widerständen und Cs nach Masse um als Tiefpaß
zu wirken. TVS Dioden für Impulsstörungen. Wenn Geschwindigkeit kein
Thema ist helfen auch ausreichend große Cs nach Masse oder Vcc, je nach
Polarität der Schaltaktivitäten, obwohl das ein eigenes Thema für sich
ist. Schalter sollen aktiv über einen niedrig genug Pullup R nach Masse
schalten. Nach Möglichkeit Optoisolatoren verwenden. Auch kann man
Dioden in Serie schalten die den Eingang bei Überschreitung der
Differenz zu Eingangspannung den Eingang abtrennen. Und, Und, Und...
Ausgänge sollen nach Möglichkeit auch Serien Rs von einigen hundert Ohm
haben und es empfiehlt sich hier gut von der Außenwelt zu entkoppeln.
Auch ist es gut Schalter Transistoren u/ae. zur Entkopplung und
Ausgangsstrombedarf zu verwenden.
Flipflops sind besonders EMP gefährdet und können unbeabsichtigt ihren
Zustand ändern und sollten deshalb immer sachgerecht von der Außenwelt
getrennt sein.
Analog Eingänge sollen auch gut gefiltert und konditioniert sein so daß
keine Transienten Unfug anrichten können.
Auch mit der Stromversorgung darf man nicht sparsam umgehen. Alle
Eventualitäten müssen berücksichtigt werden und alle Schaltungsteile
ihre vorgeschriebenen Stützelement richtiger Bauweise und Eigenschaften
bekommen.
Die Leiterplattengestaltung ist ein Thema für sich. Ganz allgemein hilft
es auch bei zweilagigen LP die Massenführung komplett als Polygon
auszuführen so daß alle Schaltungsteile eine Induktionsarmen
Massebezugspunkt haben. dasselbe gilt für eine Induktionsarme Vcc
Versorgungsstrategie. Stern Masse Rückführung ist nicht unbedingt
seligmachend. In vielen Schaltungen ist eine große Massefläche
nützlicher als theoretischen Kirchhoff legere zu betreiben. Wer es sich
leisten kann ist mit Multilayer besser dran wo Masse und Vcc ganzflächig
ausgeführt werden kann.
EMP Kontrolle ist ein Hardware Framework das holistisch den uC von der
Außenwelt trennen und abschirmen muss.
Der beste Test ist, das Lötkolbenkabel eines alten Weller TCP Lötkolben
quer über die LP oder unmittelbare Nähe zu legen. Wenn beim Abschalten
des Heizelementes der uC resettet dann ist die Arbeit noch nicht getan.
Wenn die Schaltung ohne Reset diesen Test übersteht dann kann der uC mit
guten Gewissen erstmalig auf die große Welt losgelassen werden. Wenn man
es sich leisten kann ist in der Beziehung die reale Welt das beste
Testbett.
Wenn man alles beherzigt, dann kann man uC Schaltungen bauen die total
unempfindlich auf externe Störungen sind.
Gegenüber den Mega328 oder Mega644p oder 1284p sind die ATmega1280/1281
und 2560/2561 bei Verwendung der internen Oszillatorschaltung mit einem
externen Quarz etwas empfindlicher gegen externen Einkopplungen
insbesondere über nicht ausreichend gefilterte und stabiisierte
Versorgungsspannung. USB Spannungsversorgung liefert ohne erheblichen
zusätzlichen Aufwand keine stabilen 5 Volt Vcc wenn man sicher mit 16
MHz arbeiten möchte. Ein externer Quarzoszillator mit 16 MHz kann eine
Lösung sein, macht aber wieder mehr Mühe das Design durch diverse EMV
Tests zu bringen. Ich will hier kein Qualitätsurteil über verschiedene
Arduino Designs mit ATmega2560 abgeben, aber viele Erwecken den Eindruck
preisoptimierte Bastlerware zum experimentieren mit gutem
Preis-/Leistungsverhältnis. Diese würden in einem Seriengerät niemals
die dann vorgesehen Prüfungen ohne erheblichen Zusatzaufwand überstehen.
Beim NodeMCU gab's doch noch ein Issue mit den Leitungen, sdie zum Flash
Speicher führen. Die sind nämlich auf einer Seite herausgeführt und
haben es gar nicht gerne, durch die relativen Kapazitäten des
Steckbrettes belastet zu werden.
http://stefanfrings.de/esp8266/index.html#nodemcu
Ich würde die als "reserviert" gekennzeichneten Pins abschneiden.
Vielen Dank für eure Antworten. Leider sind die von "Alter Sack" für
mich zu kompliziert und nicht umsetzbar.
An der Stromversorung an sich kann (sollte) es nicht liegen, da es mit
exakt dieser Versorgung an anderen Steckdosen in einem anderen Haushalt
funktioniert. Nur im Keller funktioniert die gebaute Schaltung nicht
mehr.
An der gleichen Sicherung hängen eine Gas-Heizung, 2x Waschmaschine, 1x
Trockner und eine Hebepumpe.
Die Ausfallzeiten sind davon aber wohl nicht direkt abhängig. Kann sein,
dass die Hebepumpe stört, oder wenn die Gasheizung anspringt.
Ich werde als nächstes eine Powerbank anschließen statt dem Netzteil.
Dann kann man zumindest sehen, ob die Störung übers Kabel kommt oder
über Funkstrahlen.
Außerdem ist mir aufgefallen, dass beim Flashen im Keller die Verbindung
ebenfalls instabil ist. Der Vorgang bricht oft ab. Das deutet vielleicht
doch auf störende Funkstrahlen hin.
Verdächtig ist die Gasheizung mit dem Zündfunken beim Start. Allerdings
stört bei mir die Gasheizung die beiden Mega2560 der Haussteuerung im
selben Raum nicht.
die Zündung der Gastherme könnte so einen Störung verursachen das der
Arduino aus dem Tritt kommt.
Dennis hat vollkommen Recht dein Arduino ist da recht abgespeckt es gibt
andere Arduino 2560 Boards die ist etwas mehr Hühnerfutter (SMD Kerkos
und Resetwiderstand) um den µC herum haben.
Du bräuchtest ein Oszilloskop um dir deine 5V direkt an µC Pins
anzusehen.
Hierzu gibt es auch folgendes zu lesen
http://ww1.microchip.com/downloads/en/appnotes/atmel-2521-avr-hardware-design-considerations_applicationnote_avr042.pdf
Eine Abhilfe könnte es sein das du dir bedrahtete 100nF Kerkos direkt
auf die µC Pins lötest vielleicht noch nen 100µF Elko in die
Powerbuchsen steckst.
Wenn ich dich richtig verstanden habe versorgst du das Teil über USB?
Name schrieb:> Vielen Dank für eure Antworten. Leider sind die von "Alter Sack" für> mich zu kompliziert und nicht umsetzbar.
Das muß nicht so sein. Vor ein paar Jahren baute ich mir eine kleine 12V
Pumpenanlage zum Abpumpen von Kondenswasser. Dafür verwendete ich einen
Pro-Mini mit Schraubanschlußplatte. An allen Vorgesehenen
Eingangsleitungen von den Sensoren unterbrach ich die Leiterbahn von den
Schraubklemmen zum Pro-Mini Sockel und fügte Serienwiderstände und Cs
und sonstige Vorbeugemaßnahmen ein. Die Ausgänge wurden auch etwas
"gestärkt". Jedenfalls hat sich die Anordnung bis jetzt als vollkommen
zuverlässig erwiesen. Leider habe ich gerade kein Bild parat. Kein
gebrauchter IO vom uC ist ungeschützt.
Allerdings bastelte ich mir eine eigene Anschlußleiterplatte für den
Nano und Pro-Mini die ich hier vorzeigte. Für viele Bastelanwendungen
reichen die Schutzmaßnahmen aus oder lassen sich leicht noch verstärken.
Hier zwei Beispiele von mir:
Beitrag "Re: Zeigt her eure Kunstwerke (2015)"Beitrag "Re: Zeigt her eure Kunstwerke (2015)"
Beide Beispiele haben sich als ausreichend stabil erwiesen.
Mach mal eine Skizze (Blockschaltbild) von Deinen externen
Anschlüssen(Sensoren, Relais). Gib ich auch die ungefähren Kabellängen
an und wie viele Schütze gibt es in der unmittelbaren Umgebung.
Vielleicht offenbart sich dann der Sündenbock.
Wenn die Störungen elektromagnetisch eingekoppelt werden, helfen
vielleicht aufklappbare Ferrit EMC Hülsen. Man kann auch Problemkabel
auf einem Ferritantennenstab aufwickeln.
Mikki M. schrieb:> Gegenüber den Mega328 oder Mega644p oder 1284p sind die ATmega1280/1281> und 2560/2561 bei Verwendung der internen Oszillatorschaltung mit einem> externen Quarz etwas empfindlicher gegen externen Einkopplungen> insbesondere über nicht ausreichend gefilterte und stabiisierte> Versorgungsspannung.
Ich habe da keinerlei negative Erfahrungen gemacht, der ATmega2560 läuft
bei mir super stabil (2-lagig). Ich hab ihn mit 2* 100nF abgeblockt.
Dran hängen noch CAN, Ethernet und SRAM. Die IO-Ports sind mit 74AC573
und Widerstandsnetzwerken 8*100R entkoppelt. Er steuert ein 15kV/67mA
Netzteil.
Die Mega2560 Familie ist nicht unbedingt der Wackelkandidat, mit
richtigem Leiterplattenlayout und sorgfältiger Auswahl des eingesetzen
Quarzes arbeitet dieser auch zuverlässig, lediglich im Vergleich zu
einem Mega644 oder 1284 erfordert das Design besonders im Hinblick auf
die Störfestigkeitsprüfungen mit 2 und 4 kV etwas mehr Sorgfalt. Atmel
selbst hat sich damals wohl dahingehend geäußert, daß die 2560 Familie
ein damals etwas geändertes Oszillatordesign verwendet, welches weniger
Leistung und geringere Pegel nutzt, um die Störabstrahlung und den
Energieverbrauch zu optimieren. In der Summe sind diese auch problemlos
einsetzbar nur erfordern ggf. etwas mehr Sorgfalt beim Design gegenüber
anderen Mitgliedern der ATxmega Familie.
Name schrieb:> An der gleichen Sicherung hängen eine Gas-Heizung, 2x Waschmaschine, 1x> Trockner und eine Hebepumpe.
Das ist eine Gesamtanschlussleistung von deutlich über 7kW.
Wahrscheinlich ein 16A Automat und dann 3x 1,5qmm Leitung von einer
Steckdose zur nächsten gezogen. Gesamtlänge > 20m
Da brauchst du dich über nix mehr wundern.
Vielleicht ist das noch nicht überall angekommen:
"Name (Gast)" hat den Beitrag gekapert und seine nodeMCU zum Thema
machen wollen. Um den Mega2560 ("Daniel" Beiträge von 2015) sollten wir
uns keine Sorge mehr machen und den Brei nicht wieder aufkochen.
Name schrieb:> An der Stromversorung an sich kann (sollte) es nicht liegen, da es mit> exakt dieser Versogrgung an anderen Steckdosen in einem anderen Haushalt> funktioniert.
Ich vermute, dass es an der Stromversorgung liegt. Du vermutest, dass es
nicht daran liegt. Du kannst jetzt wahlweise das Risiko eingehen, 100
andere falsche Sachen zu kontrollieren, oder du misst konkret nach.
Mit ein Digitalen Oszilloskop lässt sich das sehr schnell und einfach
kontrollieren. Messe die Spannungsversorgung und triggere auf fallende
Flanke bei 4,5V. Dann bekommst du ein schönes Standbild vom Problemfall
- falls ich Recht habe.
> Ich werde als nächstes eine Powerbank anschließen statt dem Netzteil.> Dann kann man zumindest sehen, ob die Störung übers Kabel kommt oder> über Funkstrahlen.
Guter Ansatz, das ist ja relativ einfach zu machen.
Eman schrieb:> Vielleicht ist das noch nicht überall angekommen:> "Name (Gast)" hat den Beitrag gekapert und seine nodeMCU zum Thema> machen wollen.
Dann sollte man hier besser schließen, ehe noch mehr Antworten zum
ATmega2560 kommen.
Einen uralten Thread kapern, ist immer ne saublöde Idee.
zur Mega2560 Familie gehören wohl Mega2560/2561 und 1280/1281. Waren bei
Einführung wohl auch die ersten 4 die sich in der Peripherie bzw. deren
Adressierung recht deutlich von Mega16/32 unterschieden und vieles
vereinfacht haben.