Schaltimpulse stören Atmega32

OP #2940908
Lesenswert?

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.
Angehängte Dateien:
Gast #2940930
Lesenswert?

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.
Gast #2940941
Lesenswert?

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
OP #2941481
Lesenswert?

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.
#2941952
Lesenswert?

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.
OP #2942478
Lesenswert?

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.
Angehängte Dateien:
Gast #2942742
Lesenswert?

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.
OP #2943516
Lesenswert?

@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.
#2943692
Lesenswert?

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
Gast #2943693
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren