Hi, ich habe ein Dimmersystem zur Phasenabschnittsdimmung von Lampen im Haus aufgebaut mit bis zu 20 Kanälen. Seit langer Zeit treten immer wieder Fehler auf deren Ursache ich bis heute nicht finden konnte. === Grob zum Aufbau des Systems: === (siehe auch die angehängten Bilder) - Ein embedded PC mit I2C Schnittstelle steuert die Dimmer Platinen über den I2C Bus an. - Jede Dimmerplatine beinhaltet einen ATTiny45 controller der an dem I2C Bus hängt sowie mit den Optokopplern getrennten analogen Teil des Dimmers. - Zwischen dem PC und den Dimmern gibt es eine "Vermittlerplatine" welche einen Quarzoszillator mit aktuell 8Mhz enthält (die CPU Clock für alle Controller) sowie einen PCA9517, der den I2C Pegel von 3V auf 5V wandelt. - Auf der Vermittlerplatine befinden sich auch die I2C Pullups (je 10k) === Probleme die auftreten: === - Hin und wieder passiert es, dass beim schalten einer Lampe ein Mikrocontroller "abstürzt" und manchmal dabei sogar den kompletten Bus blockiert, da er die CLK leitung auf GND hält (nur manchmal). - Manchmal sind nicht alle Controller erreichbar über den Bus. === Fragen und Vermutungen die ich habe: === - Sind die Pullups von 10k gut? - Kann es sein dass die Leitungskapazität zu hoch ist? - Brauche ich eine Terminierung am Ende des I2C Busses? - Ist es ok, dass ich die 8MHz Clock auch über den Bus laufen lasse? Vielen Dank für eure Hilfe! Ich hoffe das Problem bald zu finden und nicht mehr im Dunkeln sitzen zu müssen :)
:
Bearbeitet durch User
Hi 10k Pull-Up-Widerstände am I2C-Bus ist reichlich hoch. MfG Spess
Philipp F. schrieb: > - Brauche ich eine Terminierung am Ende des I2C Busses? Nein I2C hat keine Terminierung. > - Ist es ok, dass ich die 8MHz Clock auch über den Bus laufen lasse? Weniger Dein Problem sind die fehlenden Decouplingkondensatoren und vor allen Dingen der fehlende Snubber am Ausgang des Solid State Relais. So geht das nicht. Die Decouplingkondensatoren werden dein Problem beheben. Die 10uF sind nicht geeignet zum Decoupling von hohen Frequenzen. Versuch die typischen 100nF. Zusätzlich kannst du Versuchshalber einen Ferrit in Serie zur positiven Versorgungsspannung einziehen. Deine Schaltung hat halt generell 0 Schutzbeschaltung. Zusätzlich könnte es helfen den Reset-Pullup kleiner zu wählen. Kannst du irgendwie ermitteln wieso der Reset ausgelöst wurde. Ich kenen die AVRs nicht, bei PICs gibt es ein Register das man nach dem Power on auslesen kann und da steht der Resetgrund drin. (Brown out, etc)
Danke! Das hilft mir schonmal weiter. Da ich Informatiker bin und Elektronik mein Hobby ist, fehlt es mir leider hier und da an Wissen (Besonders Schutzbeschaltung). Meinst du als Decoupling 100nF zwischen VCC und GND an jedem Kontroller? Das leuchtet ein. Wie würde der Snubber aussehen (wo genau in der Schaltung, welche Werte?)
:
Bearbeitet durch User
PS: Ich denke nicht, dass der Controller einen RESET macht. Er scheint einfach irgendwo zu hängen. Nach einem Reset sollte er eigentlich wieder normal funktionieren
Dient der DC/DC Wandler den du da verbaut hast wirklich dazu um das Netz von der Steuerspannung zu trennen? Ich würde da jetzt nicht freiwillig an der Eingangseite irgendwas anfassen wollen. Die Dinger haben zwar eine Prüfspannung von 1000VDC max. bei dieser Bauform ohne den Typ genau zu kennen, aber für eine sichere Netztrennung sind die völlig ungeeignet. Die Kriechstrecken liegen auch bei nur max. 2mm. Das kann man alles machen, nur ist dann auch der ganze Steuerteil isolationsmäßig so zu verdrahten als wäre es Netzspannung. Auch bei den Optokopplern nimmt man hier besser welche mit 10mm Reihenabstand.
> Wie würde der Snubber aussehen?
1 | 220 Ohm 100nF 630V |
2 | X1-1 o---[===]-------||-----o X1-2 |
Ok, gibt's das in einem Bauteil? Hier benutzen sie keinen Snubber: http://www.mikrocontroller.net/attachment/71509/37378-DI300.pdf Sie sagen dass sie den MOSFET extra "langsam" schalten damit keine hochfrequenten Störungen auftreten. Wäre das für meine Schaltung nicht auch eine Option?
Ja, die gibt es einem Bauteil. Sie sind aber (zumindest bei Conrad) teurer, als einzelne Bauteile. http://www.conrad.de/ce/de/product/452335/Entstoer-Kondensator-radial-bedrahtet-01-F-250-VAC-F-T-TYP-9729-B-1-St > Wäre das für meine Schaltung nicht auch eine Option? Nein, denn das Timing müsste der Last angepasst werden und die MOSFETS bräuchten dann je nach Last Kühlkörper. Das ist schwierig zu kalkulieren.
Philipp F. schrieb: > Ein embedded PC mit I2C Schnittstelle steuert die Dimmer Platinen über > den I2C Bus an. Wie lang ist denn der I²C Bus? Dieser Bus ist ja dafür gedacht, inenrhalb eines Gerätes oder höchstens mal vom Rechner zum Monitor zu gehen, mehr als 2m erfordern meistens ein Herabsetzen der Taktrate.
Philipp F. schrieb: > - Hin und wieder passiert es, dass beim schalten einer Lampe ein > Mikrocontroller "abstürzt" und manchmal dabei sogar den kompletten Bus > blockiert, da er die CLK leitung auf GND hält (nur manchmal). Welche Lasten hast du denn dran? Als PhasenABschnittssdimmer dürfen es keine induktiven (Trafos) oder mit Funkentstördrosseln sein, sondern nur ohmsche oder kapazitive. Wie genau triffst du den Anfang der Phase? Treten die Störungen auch auf, wenn alle Ausgänge unbeschaltet sind?
Philipp F. schrieb: > - Hin und wieder passiert es, dass beim schalten einer Lampe ein > Mikrocontroller "abstürzt" und manchmal dabei sogar den kompletten Bus > blockiert, da er die CLK leitung auf GND hält (nur manchmal). Welche Lasten hast du denn dran? Als PhasenABschnittssdimmer dürfen es keine induktiven (Trafos) oder mit Funkentstördrosseln sein, sondern nur ohmsche oder kapazitive. Wie genau triffst du den Anfang der Phase? Treten die Störungen auch auf, wenn alle Ausgänge unbeschaltet sind? Dir scheint auch nicht klar zu sein, dass dein 9V Wandler keine SELV Potentialtrennumg bietet.
Oh ok, ich dachte er bietet Potentialtrennung (im Datenblatt bis 1000V glaub ich). Was genau bedeutet, dass er keine SELV Trennung bietet und wie kann ich das verhindern? Ich schalte mit dem Dimmer keine induktiven Lasten, sondern nur Halogentrafos (kapazitiv). Wie genau ich den Anfang treffe werde ich mal mit dem Oszilloskop nachforschen. Brauche ich im Fall der Phasenabschnittsdimmung dann also doch keinen Snubber/Entstörkondensator? Oder meintest du nur es soll keine Drossel/Spule dranhängen?
:
Bearbeitet durch User
Doch die Snubber brauchst du trotzdem. Selbst bei rein kapazitiver last, denn die Leitungen haben schon eine Induktion, die nicht zu vernachlässigen ist.
> Wie lang ist denn der I²C Bus?
Das sieht man doch auf dem Foto: Es sind nur wenige Zentimeter.
Stefan us schrieb: > Das sieht man doch auf dem Foto: Es sind nur wenige Zentimeter. Ich seh da noch jede Menge dünnerer Kabel die von den Anschlussklemen nach oben aus dem Bild verschwinden, daher die Frage.
:
Bearbeitet durch User
UPDATE: Also ich habe nun 100nF Kondensatoren an allen ATTiny Controllern und an dem PCA9517 an beiden Seiten. Es hat definitiv ein bisschen was gebracht. Ich kann jetzt mehr Dimmer anschließen ohne dass die Controller abstürzen. Allerdings: Wenn ich am Gasherd den Funkenzünder nutze, lässt sich die Schaltung sehr zuverlässig aus dem Takt bringen. Habt ihr noch weitere Ideen? Wie kann ich das verhindern?
Hast du Snubber hinzugefügt? Du könntest den I²C Bus vor Einstrahlung schützen, indem du auf der Vermittlerplatine am seriellen Bus auf beiden Seiten (PC Seite und At-Tiny Seite) kleine(!) Kondensatoren nach GND hinzufügst. Ich würde es mit 100pF versuchen. Außerdem würde ich die Pull-Up Widerstände so klein wie möglich machen. Probiert aus, wie weit du runter gehen kannst. 1k Ohm wären toll - wenn es klappt. Bei den ATtinys kannst du die Pull-Up Widerstände an den Reset-Pins durch Drahtbrücken ersetzen, damit sie nicht mehr empfänglich sind.
Ich bin nicht sicher, ob es eine gute Idee war, das Taktsignal zentral zu erzeugen. Denn diese Oszillatoren haben nur schwach belastbare Ausgänge. Bei Conrads 8Mhz Oszillator kann mit 15pF belastet werden, zum Strom machen sie leider keine Angabe. Bei acht Mikrocontrollern als Last dürften die ATtiny sowie die Zuleitungen nichtmal 2pF pro Platine haben. Ich meine, irgendwo gelesen zu haben, dass die Pins der Mikrocontroller 5-15pF haben. Laut Datenblatt hat der XTAL1 Eingang 16pF Kapazität. Wobei ich allerdings unsicher bin, ob das nur für die Betriebsart mit Externen Quarz gilt. So oder so hast du den Oszillator warscheinlich überlastet. Brauchst du überhaupt einen Synchronen Takt? Der I²C Bus würde sicher auch mit dem internen R/C Oszillator funktionieren.
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.