Hallo Forengemeinde! Ich bin neu im Thema µC und unternehme derzeit die ersten Schritte im Bereich einfachster Hausautomatisierung. An dieser Stelle schon einmal herzlichen Dank an alle, die mir mit Tutorials und Beiträgen einen guten Einstieg ermöglicht haben. Nachdem auf dem Steckbrett die ersten Erfolge schnell erreicht waren (Grundschaltung aufgebauen, Programm schreiben, µC flashen, Grundlagen über Timer & ADC & PWM etc., Eingänge mit Pull-Up (intern / extern), Ausgänge mit Transistor f. Relais...) sollten die neuen Kenntnisse praktisch umgesetzt werden. Dabei kommt es jedoch zu Störungen, für deren Behebung meine Kenntnisse derzeit nicht ausreichen. Situation: In einem Verteilerschrank sitzt ein Atmega auf einer Platine in einem Hutschienengehäuse. Auf der Platine befinden sich Schraubklemmen für Eingänge (z.B. f. Taster) sowie Ausgänge (5V Relais und Stromstoßschalter). Die Relais-Ausgänge gehen über einen ULN2803A. Die Eingänge werden ohne externen PullUp direkt an die Klemmen geführt, es ist aber der interne PullUp gesetzt. Die Eingänge werden über Installationstaster auf GND gezogen. Mehrere Taster an verschiedenen Schaltstellen sind über jeweils ca. 10m Telefonleitung J-Y(ST)Y angeschlossen. Alle Taster an einer Schaltstelle teilen sich eine GND Leitung zum Verteilerschrank, die zweite Leitung jedes Tasters geht dann auf den jeweiligen Eingangspin. Die Telefonleitungen laufen im Bündel neben einem Bündel 230V Leitungen (wenige cm Abstand), da 10cm oder mehr bautechnisch nicht machbar waren. Problem: Ist eine Leitung an einer Eingangs-Schraubklemme angeschlossen wird am entsprechenden Eingangspin des µC (mehr oder minder häufig) eine 0 gelesen, obwohl der entsprechende Taster nicht betätigt ist (und obwohl der interne PU gesetzt ist). Die Störung tritt in folgenden Situationen auf: - Anschluss einer Eingangsleitung an der Schraubklemme, wackeln daran - Schalten eines im Schrank befindlichen Stromstoßschalters (egal ob über analogen 5V Impuls oder auch per Hand direkt am Relais) - Ändern des Potentils der Schirmung des Telefonkabels (GND / +5V / frei) Lösungsversuche: - Schirmung des Telefonkabels auf GND legen (Anschliessen induziert kurz Störung auf Eingangspin, danach keine merkliche Verbesserung) - Externer 1kOhm PullUp (leichte bis merkliche Verbesserung) - Schirmung auf GND zzgl. externer PullUp (deutliche Verbesserung, Problem aber immernoch vorhanden) Weitere Idee: - Software Filter für Eingänge implementieren und anstatt direkt den Pin-Wert den Wert PinAVG = PinAVG * (1-16/256) + 16 * Pin auswerten mit Schwellwerten für Hi/Lo (z.B. 150 Hi & 100 Lo) Der Programmieraufwand für den Filter scheint mir zu hoch, als dass ich mich direkt darauf stürzen möchte. Auch kommen mir 1kOhm PullUps recht klein vor, wenn intern ca. 50kOhm anstehen und extern meist etwa 10kOhm empfohlen sind. Von diesem Ansatz als finale Lösung bin ich daher nicht so recht überzeugt. Ich hoffe von euch vielleicht Anregungen und Tips zu bekommen, wie ich die Störungen bzw. die Störeinflüsse beseitigen kann. Vielleicht habe ich ja auch iregendwas gravierendes üebersehen und falsch gemacht, was einem von euch sofort auffällt. Daher vielen Dank im Voraus für eure Hilfe! Viele Grüße, Michael
Mikrocontrollereingänge direkt mit solch langen Leitungen zu verbinden ist keine gute Idee. In Verbindung mit dem (hochohmigen) Pull-Up hast du dir, wie du ja schon gemerkt hast, ein paar schöne Antennen gebaut - das kann noch zu den schönsten EMV-Problemen führen, wenn deine Installation noch etwas gewachsen ist. Zudem vermisse ich zumindest eine rudimentäre Schutzbeschaltung - ich gehe nämlich nicht davon aus, dass du den µC und die Taster als SELV-Stromkreis ausgeführt hast, sondern (wie leider häufig in der Praxis üblich) z. B. einfach "Telefonkabel" J-Y(St)Y o. ä. genommen und dies einfach unter Missachtung aller Vorschriften (z.. B. doppelte Isolation bei Verlegung parallel zu netzspannungsführenden Leitungen) "irgendwie" hinein geworfen hast ;-) (Ist kein Problem, wenn die Anlage richtig ausgeführt ist; in der Praxis passiert das aber meistens nicht). Und herkömmliche Installationsschalter sind für solch geringe Ströme nicht ausgelegt - das gibt zeitnah Kontaktschwierigkeiten. Meine Empfehlung: Schaue dir an, wie das die Kollegen aus der SPS-Fraktion machen, und baue dir z. B. solche Eingänge (24V, 10mA): http://www.mikrocontroller.net/attachment/40716/24vsps5V.gif Versorge die Eingangsseite deiner "SPS" mit 24V Funktionskleinspannung mit kurzschluss-etc.-geschütztem Netzteil, verbinde die Masse dieser 24V mit dem Schutzleiter - dann funktioniert das - auch mit Installationsschaltern - recht zuverlässig. Durch die Optokoppler kannst du bei Beachtung des Isolationsabstands dann den Mikrocontroller auch mit SELV versorgen.
Katastrophenklaus schrieb: > "Telefonkabel" J-Y(St)Y o. ä. genommen und [...] Verlegung parallel zu netzspannungsführenden Leitungen Vergiss das - hatte beim Schreiben das Gelesene aus deinem Posting schon wieder verdrängt ;-) Wollte noch ergänzen, dass ich für die Taster an deiner Stelle keinen gemeinsamen Masseleiter nehmen würde, sondern bevorzugt für jeden Taster ein eigenes Adernpaar, und die Massen dann an der Eingangsplatine zusammenführen würde.
Deine Eingänge sind zu hochohmig. Was bei Dir passiert, ist dass durch die parallele Führung der Signalkabel parallel zu Stromkabeln Spannungen kapazitiv eingekoppelt werden. Du kannst ja mal folgendes Experiment machen: 20m dreiadriges Stromkabel nehmen, auf braun und blau Netzspannung geben und auf grün-gelb mit einem digitalen Multimeter im Wechselspannungsbereich messen. Du wirst dort eine Spannung messen, die recht hoch sein kann, aber schon bei leichter Belastung sofort zusammenbricht. Genau das muss Deine Strategie sein. Eine Möglichkeit ist zB die Verwendung von Optokopplern. Erstens schützt Du Deinen AVR damit vor Überspannung von außen. Und zum Anderen braucht die LED im Optokoppler 20mA nominal (je nach Typ), um den Transistor auf der anderen Seite durchzuschalten, und das sollten die eingekoppelten Spannungen nicht schaffen. fchk
Hallo Katastrophenklaus, Hallo Frank! Herzlichen Dank für eure schnellen und ausführlichen Antworten! Katastrophenklaus schrieb: > ... das kann noch zu den schönsten EMV-Problemen führen... EMV war bisher für mich nur ein abstrakter Begriff, der jetzt zu einem realen Problem wird. Das habe ich wohl deutlich unterschätzt :-/ > ... ich gehe nämlich nicht davon aus, dass du den µC und die Taster als > SELV-Stromkreis ausgeführt hast... Verstehe ich richitg: SELV-Stromkreis = Stromkreis mit geringer Spannung UND besonderer Isolation gegenüber Kreisen mit höherer Spannung? > ...sondern z. B. einfach "Telefonkabel" J-Y(St)Y ... genommen und > dies "irgendwie" hinein geworfen hast ;-) ... So in der Art kann man es beschreiben. Also habe ich SELV Spannung aber keine SELV Leitungsinstallation (und vermutlich auch kein SELV 5V Netzteil mit besonderem Schutz gegenüber 230V)? > ... Ist kein Problem, wenn die Anlage richtig ausgeführt ist; in der Praxis passiert das aber meistens nicht... "Richtig" und "Anlage" in Bezug auf die korrekte Ausführung der Leitungsinstallation (z.B. 10cm Abstand afaik) oder in Bezug auf den µC und seine Eingangsbeschaltung? Mit letzterem hätte ich "kein Problem" :-) Beim µC ist noch alles möglich aber an der Verkabelung ist nix mehr zu machen :-/ > Und herkömmliche Installationsschalter sind für solch geringe Ströme > nicht ausgelegt - das gibt zeitnah Kontaktschwierigkeiten. Atm geben die Schalter 5V direkt an die Relais und Stromstoßschalter, das geht bisher einwandfrei. Da ist aber auch der Strom ca. um den Faktor 10 höher. Wenn 24V eine gute Alternative sind ist es einfach zu wechseln und damit "kein Problem" :-) > Meine Empfehlung... Habe heute versucht etwas ähnliches auf dem Steckbrett zusammenzufummeln mit dem was ich da habe. Optokoppler und Widerstände kein Problem, aber Z-Diode und 24V habe ich gerade nicht. Die µC Seite habe ich wie ab abgebildet aufgebaut und angeschlossen. Auf der Seite mit dem Taster habe ich die Z-Diode zunächst weg gelassen, dann eine normale Diode (1N4148) in gleicher Richtung eingesetzt. die Tasterseite habe ich einmal an 5V (gleicher Kreis wie µC) angeschlossen und einmal offen gelassen. Ist die Tasterseite offen sind die Störungen sehr stark. Liegt die Tasterseite an 5V ist das ganze schon deutlich unanfälliger, aber auch hier kommt es trotzdem immer noch zu Störungen. Dies wundert mich, da "die eingekoppelten Spannungen (20mA) nicht schaffen (sollten)" (s. Frank K.). Vor allem mit der Diode und ihrer Sperrspannung... Ich werde mir morgen ein 24V Netzteil und die Z-Diode besorgen und testen, ob es denn funktioniert, wenn man alles und nicht nur ein bisschen richtig macht. Aber, verstehe ich >verbinde die Masse dieser 24V mit dem Schutzleiter richtig, dass damit der PE der 230V Installation gemeint ist? Kann ich das? Darf ich das? :o Frank K. schrieb: > Deine Eingänge sind zu hochohmig. War auch meine Vermutung, daher habe wie gesagt auch externe 1kOhm PUs ausprobiert, ohne Erfolg. Ist 1kOhm tatsächlich noch als zu hochohmig zu bezeichnen? > Was bei Dir passiert, ist dass durch die parallele Führung der > Signalkabel parallel zu Stromkabeln Spannungen kapazitiv eingekoppelt > werden. So etwas ähnliches dachte ich mir auch basierend auf dem was aus E-Technik hängen geblieben ist. Habe diese Effekte wohl gründlich unterschätzt :/ > Du kannst ja mal folgendes Experiment machen... Ich glaube ich kenne den Effekt von einem Drehstromanschluss ohne Last wenn nur die Sicherung von einer Phase an ist. Auf den anderen Phasen sieht man mit dem Phasenprüfer oder dem MM auch etwas, allerdings natürlich nicht strombelastbar. > Genau das muss Deine Strategie sein. Zum Setzen des Eingangs einen "hohen" Strom zu benötigen, den die eingekoppelten Spannungen nicht schaffen? Z.B. über noch niederohmige PullUps? Oder eben über den unten angesprochenen Optokopller (OK)? Wie weiter oben unter "meine Empfehlung" gegenüber Katastrophenklaus ausgeführt habe ich heute schon mit einem OK etwas herumgespielt. Selbst mit 1kOhm Pullup und OK kam es trotzdem noch, wenn auch deutlich reduziert, zu Störungen. Werde es aber auch nochmal "ganz richtig" entsprechend der obigen Empfehlung ausprobieren. Gibt es evtl. Möglichkeiten noch mehr herauszuholen? Ich will erst Hardwareseitig das Nötige und Mögliche machen bevor ich an der Software etwas mache. --------------------------------------- Eine weiterführende Frage: Wenn ich bei so etwas vermeintlich einfachem wie Tastern schon solche Schwierigkeiten mit Störungen habe, auf welche Probleme stoße ich dann wenn es vielleicht mal an analoge Sensoren oder 1-Wire (naiv auch über Telefonkabel) oder Buskommunikation (über Cat5e Kabel) geht? Wird es Probleme geben? Sind die lösbar? Oder muss ich mich von langfristigen Zukunftsphantasien besser jetzt schon verabschieden? Nochmals vielen herzlichen Dank für eure Hilfe. Über weitere Unterstützung würde ich mich sehr freuen :) Michael
Michael W. schrieb: > ausgeführt habe ich heute schon mit einem OK etwas herumgespielt. Selbst > mit 1kOhm Pullup und OK kam es trotzdem noch, wenn auch deutlich > reduziert, zu Störungen. Werde es aber auch nochmal "ganz richtig" Na ja, wenn Du eine LED hast, dann fängt die ja auch bei einem geringeren Strom an zu leuchten, und der Fototransistor fängt irgendwann an, ein klein wenig aufzumachen. Du musst das eben unempfindlicher machen, zB durch einen größeren Vorwiderstand an der OK-LED, oder indem Du den OK-Transistor belastest, damit er richtig durchschalten muss etc etc. > Eine weiterführende Frage: Wenn ich bei so etwas vermeintlich einfachem > wie Tastern schon solche Schwierigkeiten mit Störungen habe, auf welche > Probleme stoße ich dann wenn es vielleicht mal an analoge Sensoren oder > 1-Wire (naiv auch über Telefonkabel) oder Buskommunikation (über Cat5e > Kabel) geht? Wird es Probleme geben? Sind die lösbar? Oder muss ich mich > von langfristigen Zukunftsphantasien besser jetzt schon verabschieden? Da schau Dir an, wie andere das machen: Automobilindustrie und Maschinenbau zB. Beispiel CAN/RS485/Ethernet: Da ist der Trick "differentielle Übertragung". Die Idee ist, zwei Leitungen zu haben, die gegensinnig angesteuert werden. Störungen auf die Leitungen gehen auf beide gleichmäßig. Am Ende wird nicht der absolute Spannungspegel, sondern die Differenz gebildet, und da heben sich die Störungen auf. Beispiel LIN: Da ist der Trick, 12V-Pegel zu verwenden, die relativ schwer durch andere 12V-Verbraucher gestört werden können. 1-Wire wird Probleme machen - das sage ich Dir vorher. I2C solltest Du auch nicht nehmen, jedenfalls nicht ohne extra Treiber. Für die Übertragung analoger Größen gibts die 4-20mA Stromschnittstelle. Alternativ: vor Ort digitalisieren und Messwert per Datenbus schicken. fchk
Optokoppler machen aber nur Sinn, wenn es auch 2 komplett galvanisch getrennte Spannungsversorgungen gibt, die nicht miteinander verbunden sind. Außerdem haben die auch ein eine, wenn auch kleine Kapazität (CNY17 z.B. 0.6pF) über die Transitenten hinweg gehen. Für ein paar popelige Taster reicht eine RC - Beschaltung in der Regel aus. Zur Not kann man noch eine TVS- oder Z-Diode spendieren. Das ist aber nur der Schutz, damit der Eingang nicht kaputt geht. Was du bei allen Tastern brauchst ist eine Entprellung. Und wenn da ein µC im Spiel ist, sollte der das auch machen. Spar' dir jeden Interrupt an den Tasten und frag sie alle zyklisch ab. Sagen wir mal alle ms. Wenn du dann einen Flankenwechsel nur dann akzeptierst wenn du 4,8,oder 16 mal hintereinander den selben Pegel detektiert hast sollten Störimpulse sicher eliminiert sein. Eine Verzögerung von 10-20ms merkt man bei Tastern nicht. Nur zum Beispiel, wenn du von einem Störimpuls von 1µs Länge ausgehst. Im Interrupt-Betrieb schlägt der jedes mal zu. Wenn du nur alle ms einmal kurz nachschaust bist du statistisch schon bei einem tausendstel der Fehler. Mit der Mehrfachabtastung geht der Fehler gegen 0. Die Hardwareeinheiten in den Controllern für die verschiedenen Busse (i2c, CAN, UART) arbeiten auch nicht so, dass sie von jedem noch so kurzen Flankenwechsel getriggert werden. Da wird auch gesampelt und oft auch noch an mehreren Punkten um die Störfestigkeit zu erhöhen. Die Aussage zum Mindeststrom von Installationstastern von oben ist zwar richtig, aber die Wahrheit liegt immer in der Mitte. Bei Strömen von 1-5mA sollte das noch relativ gut und lange funktionieren. Ich fahre sie mit ca. 1mA und manche sind schon 30 Jahre drin. Installationsschalter werden häufiger auf Befehl der weiblichen Hälfte getauscht und nicht weil sie elektrisch kaputt sind.
Hallo zusammen, zunächst Danke für die neuen Antworten. Ich werde später im Detail darauf eingehen. Aus Zeitgründen jetzt nur ein kurzes Update mit ein paar mehr oder minder eiligen Fragen. Ich habe in den letzten Tagen etwas gebastelt und einiges ausprobiert. Leider bisher nur mit einem Teilerfolg. Die Störungen, welche von der 230V Seite eingestreut werden, sind weg. Wenn der Stromstoßschalter manuell betätigt wird passiert nichts böses mehr, im Gegensatz zu vorher. Wird der Stromstoßschalter aber mit 5V Impuls geschaltet, kommt es noch zu Störungen. Unter Umständen bin ich hier dem Problem aber bereits auf die Schliche gekommen, das werde ich nachher, wenn Feierabend ist, testen. Ich würde die von Katastrophenklaus vorgeschlagene Schaltung gerne auf Lochrasterplatine aufbauen. Für das finale Layout bestehen meinerseits aber noch ein paar Fragen: - spielt es eine Rolle, ob der Taster in der GND Leitung oder in der +24V Leitung liegt (Variante A: Platine mit OK liegt an +24V, jeder OK geht über Leitung an die Taster, welche auf GND Schalten; Variante B: Platine mit OK liegt an GND, jeder OK geht über Leitung an die Taster, welche +24V Schalten) - ist die Reihenfolge der Z-Diode (D2), des Eingangswiderstandes (R1 1,2kOhm), und des OK/D1 relevant? Abgebildet ist +24V -> R -> D2 -> OK/D1 -> GND; aber könnte ich auch +24V -> R -> OK/D1 -> D2 -> GND? Wäre im Platinenlayout platzsparender - welche OK kommen alternativ in Frage? Der angegebene CNY17-2 kommt in einem DIP-6 Gehäuse daher. Für das Layout wären DIP-4 gut geeignet bzw. besser noch 4 Stck. zusammen in einem DIP-16 Gehäuse. Sowas habe ich auch gefunden, weiß aber nicht, ob die elektrischen Parameter vergleichbar sind - Ich habe OK gefunden, welche an der Eingangsseite zwei gegenläufig gesetzte Dioden haben. Natürlich ist (mindestens) eine die Leuchtdiode, die den Phototransistor aktiviert. Ist die andere die im Plan abgebildete Diode D1, welche bereits im IC integriert ist? Oder ist es eine weitere LED, damit man den OK auch "verpolt" betreiben kann? FÜr eure Unterstützung noch einmal vielen Dank und auch im Voraus Danke für alles Weitere. Viele Grüße, Michael
Hallo zusammen! Ich habe den Übeltäter gefunden und das Problem so weit behoben :) Schuld waren fehlende Freilaufdioden an einigen Stromstoßschaltern (SSS), welche direkt mit 5V über Taster versorgt wurden. Da die Anbringung der Dioden an den SSS schwierig ist und damals noch kein µC dabei war, habe ich sie weggelassen. Alle Relais und SSS die jetzt am µC hängen haben die Freilaufdiode im ULN2803. Mit externer Diode an restlichen SSS gab es bei den bisherigen Tests keine Störungen mehr :) Besonders durch den Beitrag von "temp" stellt sich nun die Frage nach dem Notwendigen und dem Sinnvollen. Ich möchte schon etwas anständiges und zuverlässiges haben. Deswegen, und auch um der Störung evtl. auf den Grund zu gehen, habe ich auch nicht einfach "Kondensatoren eingesetzt" oder per Software auf den Low Pegel mit warten und erneuter Abfrage reagiert. Mir kam zwar auch der Gedanke, dass mit der Entprellung der Taster wie es im µC.net Artikel "Entprellung" beschrieben ist (= besagte RC-Beschaltung?) die Störung kompensiert werden könnte und hätte später auch per Software mit Sättigungsfilter ähnliches gemacht. Bevor ich mir aber irgendwas zurecht bastel wollte ich erfahrenen Rat holen um auch erstmal auf der Hardware Seite alles anständig zu machen. Für das weitere Vorgehen stellen sich nun folgende Fragen: - Sind eine zweite Spannungsversorgung und Optokoppler wirklich sinnvoll oder nur "nice to have"? Schutz der Eingänge klingt erstmal nicht verkehrt... - Was davon sollte ggf. geschaltet werden, GNDA oder +24V? - Spielt die Reihenfolge der Bauteile der Eingangsschaltung eine Rolle? - Welcher Optokoppler kommt (sinnvoll) in Frage? (Ideal 4Stck in DIL16 mit zweiter Diode integriert (wie 844, falls das den gleihen Zweck erfüllt) Im Voraus Danke für eure Antworten und eure Hilfe! Frank K. schrieb: >Du musst das eben unempfindlicher machen, zB durch einen größeren Vorwiderstand an der OK-LED, oder indem Du den OK-Transistor belastest, damit er richtig durchschalten muss Hatte ich versucht. Selbst mit drei Z-Dioden, 100kOhm Eingangswiderstand und 100Ohm Pullup ist die Störung (nicht die von den 230V) immer noch durchgekommen. Aer natürlich schon lange kein Taster mehr... >Die Idee ist, zwei Leitungen zu haben... Stichwort ist glaube ich symmetrische Signalübertragung, habe ich zumindest schon mal was von gehört und kann ich mir gut vorstellen. Ich hoffe, für so etwas gibt es ggf. Bausteine. Klingt ansonsten nach ein paar Wochenenden Einarbeitung... > I2C solltest Du auch nicht nehmen, jedenfalls nicht ohne extra Treiber. > Für die Übertragung analoger Größen gibts die 4-20mA Stromschnittstelle. temp schrieb: > Die Hardwareeinheiten in den Controllern für die verschiedenen Busse > (i2c, CAN, UART) arbeiten auch nicht so ... um die Störfestigkeit zu erhöhen. Das gibt mir Hoffnung, dass aus den langfristigen Visionen doch noch was werden kann. Zu gegebener Zeit :) > Die Aussage zum Mindeststrom von Installationstastern von oben ist zwar richtig... Aufgrund der Qualität der Taster gehe ich eh nicht davon aus, dass sie für die Ewigkeit gemacht sind. Davon abgesehen kann ich mir im Moment auch noch nicht vorstellen, warum die niedrigen Spannungen ein Problem für die Schalter sind. Wenn es Sinn macht gehe ich gerne auch auf 24V, aber wenn deine Erfahrungen positiv sind, mache ich vielleicht auch meine eigenen. Danke noch mal an alle für eure Hilfe! Viele Grüße, Michael
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.