Hallo, habe eine Alarmanlage um einen Atmega32 aufgebaut. Alarmimpulse werden wegen der Stabilität / Fehlalrm verzögert ausgewertet. Im Falle eines Alarm (offene Objekt, z.B. Fenster) speichere ich den Objektzustand ("alt") und nach Ablauf einer Pufferzeit (Timer) vergleiche ich "alt" mit aktuell. Das funktioniert alles ganz ordentlich, nur die Schaltumpilse von Eltako, oder Kühlschrank (also Relais-Schaltimpulse) führen zu einem Fehlalarm. Ich sehe das auch an der Statusanzeige der Objekte. Die LED's "spielen da verrückt". Über einen Timer 2 synchronisiert sich die Schaltung wieder. Frage: Wie kann ich solche Störimpulse, die über die Netzleitung kommen, ausfiltern? Anbei habe ich einmal den Schaltplan meines Netzteils. Danke vorab für Eure Hilfe.
Dietmar P. schrieb: > Frage: Wie kann ich solche Störimpulse, die über die Netzleitung kommen, > ausfiltern? Warum meinst du, dass die Störimpulse über's Netz kommen? Eine Drossel zwischen B1.+ und C1.A würde in dem Fall sicher helfen. Die Ansteuerung vom Q1 wird so nicht sonderlich funktionieren, es sei denn, dass das eine Stromquelle sein soll. p.s. Gegen die grünen Masern im Schaltplan könnte man einfach die ganzen überflüssigen Junctions an den Bauteilanschlüssen entfernen.
Kommen die Störungen nicht viel eher über die langen Leitungen zu den Sensoren herein? Mache die Eingänge nicht allzu hochohmig, und entstöre sie mit Elkos. ganz sclecht:
1 | GND ------/ ------ AVR Eingang |
Der AVR hat einen recht hohen Eingangswiderstand (um 50k Ohm) und reagiert daher auch kapazitive und induktive Einstreuungen sehr leicht. Schau mal von meiner Schaltung ab: http://stefanfrings.de/bfAlarm/boxen.html
Hallo, kann mich erst jetzt wieder melden. Zuerst einmal danke für Eure Infos. @Michael: Wenn ein Eltako betätigt wird, oder ein Kühlschrank in der Wohnung anläuft habe ich diesen typischen Fehler, bei allen anderen, nicht Relaisschaltungen habe ich diesen nicht. Was für eine Drossel sollte das zwischen B1 und C1 sein? Davon habe ich keine Ahnung. Q1 ist nur auf der Platine und ist quasi ein "Verstärker" für ein von innen betätigtes Gargentor. Dami gibt es keine Probleme. Die vielen Junction habe ich asu schlechter Erfahrung alle gesetzt. Da haben mir nämlich dann die tatsächlichen Verbindengen auf der Platine gefehlt bzw. ich hatte jede Menge Fehlermeldungen weil Verbindungen fehlen. @Stefan: Ist das Objekt geschlossen liegt neg. Potential am Eingang an. Die Eingänge von den Objekten sind mit einer Sperrdiode gegen pos. Potential (offenes Objekt) geblockt. Hinter der Sperrdiode zieht ein Widerstand (1k) das Potential bei einem offenen Objekt auf high. Diese Informationen (26 Eingänge) werden per SPI durch eine Mauer über eine ein Meter lange, abgeschirmte Leitung zum Atmega zur Auswertung gesendet. Funktioniert recht gut, bis auf diese blöden Störimpulse.
Dietmar P. schrieb: > iese Informationen (26 Eingänge) werden per SPI Dann ist ja alles klar. SPI kannn schon Probleme machen, wenn man es auf eine andere Platine führt. Für außerhalb des Gerätes ist es völlig untauglich. Peter
@Peter: Kann das Störsgnal trotz Abschirmung in die Leitung zwischen "Sender" und Atmega eingestreut werden? Warum spinnt die Schaltung nur bei den Relaisschaltvorgängen?
Dietmar P. schrieb: > Die vielen Junction habe ich asu schlechter Erfahrung alle gesetzt. Da > haben mir nämlich dann die tatsächlichen Verbindengen auf der Platine > gefehlt bzw. ich hatte jede Menge Fehlermeldungen weil Verbindungen > fehlen. Dann musst du eben sauberer zeichnen. Wenn du ein Bauteil im Eagle Schaltplan nimmst und alle Anschlussleitungen gehen beim Verschieben mit, dann hängen die auch drann. Auf jeden Fall ist das kein Grund für unmotivierte Junctions mitten in Leitungen. Zeig doch mal deine Prozessorplatine. Hast du Blockkondensatoren verteilt? Wie sind die Anschlüsse gemacht? Das SPI da nicht das gelbe vom Ei ist, hat PeDa ja schon angeführt.
Dietmar P. schrieb: > Kann das Störsgnal trotz Abschirmung in die Leitung zwischen "Sender" > und Atmega eingestreut werden? Schau mal hier, warum RS485 überlegen ist gegenüber RS232: http://de.wikipedia.org/wiki/EIA-485 SPI ist wirklich nicht geeignet, deswegen gibt es ja RS485, CAN usw.
Zuerst noch einmal kurz die Erläuterung der Funktion der gesamten Schaltung mit den von mir verwendeten Bauteilen: - Objekt geschlossen, dann liegt low am Eingang eines 74HCT165 (8-bit-parallel-in/seriell-out shift register) Objekt offen liegt high am Eingang an (Schaltplan "Sender") - Übertragung der Daten per Leitung zur Anzeige (Schaltplan "Empfänger") verwendet wird der HCT74595 (8-bit-seriell-in/parallel-out shift-register) und zum Atmega32 (Schalplan "Prozessor") Dazwischen habe ich noch eine Verteilerplatine quasi als Doppekstecker für die Anzeige und die Auswertung und Steuerung im Prozessor. @ Karl Heinz: Prozessorplatine ist Anlage 4 Wegen der "Masern" werde ich mit Eagle nochmals etwas probieren. @ Bronco: Da habe ich offenbar auf das falsche Pferd gesetzrt.
Die Eingänge haben also einen Eingangswiderstand von etwa 1k Ohm. Das ist ziemlich viel. Bedenke nur, wie stark ein Handy auf einen Kopfhörer (mit 32 Ohm!) einstrahlt. Um Deine vorhandene Schaltung zu retten, schlage ich vor, alle Eingänge mit einem Tiefpass zu ergänzen und die Pull-Up Widerstände zu vergrößern:
1 | 1k 1N4004 47k |
2 | Sensor O---[===]----|<|---+-----+------[===]------O VCC |
3 | | | |
4 | 100yF === | |
5 | | 74HCT165 |
6 | GND |
Die Diode halte ich für Problematisch. Denn an ihnen fallen etwa 0,6 Volt ab. Ein Low Pegel muss <0,8 Volt sein. Du bist also nur 0,2 Volt von der Grenze entfernt. Wenn nun der Ausgang des Sensors kein Schaltkontakt, sondern ein Transistor oder Optkoppler ist, dann wird der Low Pegel außerhalb der Spezifikation liegen. Die Diode soll wohl vor Überspannung schützen. Aber sie schützt nicht vor Unterspannung (negative Eingangsspannung)! Deswegen würde ich die Diode lieber weg lassen. Schau Dir meine oben genannte Beispielschaltung an, die hat sich bewährt. Alternativ kannst Du auch die kurzen unerwünschten Impulse per Software-Routine herausfiltern (Stichtwort "entprellen"). Ich denke aber, dass ein Umbau der Schaltung praktikabler ist.
Dietmar P. schrieb: > @ Karl Heinz: > > Prozessorplatine ist Anlage 4 Dann fang gleich mal an, da großzügig ein paar 100nF Blockkondensatoren zu verteilen. Jedes Digital-IC braucht an JEDEM Versorgungs-Pärchen minimum einen 100nF Kondensator.
@Stefan: Danke für Deine Info und Mühe meine Schaltung zu retten. Alles neu zu machen wäre doch ein sehr großer Aufwand. Die Sensoren sind reine Schalter (Reedrelais). @ Karl Heinz: Danke für den Hinweis, von den 100 nF habe ich noch 'ne Tüte voll. Die kann ich auch noch nachträglich einlöten.
Dietmar P. schrieb: > Prozessorplatine ist Anlage 4 Dann will ich meinen Senf auch noch dazugeben: Das GND-Netz ist sehr verbesserungswürdig. So dünne Leitungen und so wenig vernetzt ist schlecht. Das ist vermutlich auf den anderen Platinen auch nicht anders. Denn: GND ist wie das Fundament eines Hauses. Ist das zu schwach, kann das Haus Risse bekommen oder einstürzen. Statt einer neuen Leiterplatte kannst Du den GND auch durch Drähte verstärken. Gruß Dietrich
Schon interessant, wie man auf der einen Seite schon eine mittelkomplexe Schaltung entwickeln kann, auf der anderen Seite aber noch nicht mal versteht, was Decoupling-Kondensatoren sind. "Dann fang gleich mal an, da großzügig ein paar 100nF Blockkondensatoren zu verteilen. Jedes Digital-IC braucht an JEDEM Versorgungs-Pärchen minimum einen 100nF Kondensator." Kann ich nur wärmstens empfehlen. Bevor da noch Layout-Fehler kommen: Die Decoupling-Kondensatoren gehören so nah wie möglich an den entsprechenden Versorgungspin ran. Gilt auch für Masse. Die Schaltung bezüglich der Sensor-Eingänge zeugt auch eher von Optimismus.
eawrtz4h schrieb: > Die Schaltung bezüglich der Sensor-Eingänge zeugt auch eher von > Optimismus. Wo Du das erwähnst: die 74HCT165 sollten besser durch 74HC165 ersetzt werden, denn der 0-Pegel (Reed-Kontakt + Diode) ist unnötig knapp an der Schaltschwelle. Ein RC-Glied zum Schutz der Eingänge wäre auch nicht schlecht. Gruß Dietrich
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.