Forum: Mikrocontroller und Digitale Elektronik Schaltimpulse stören Atmega32


von Dietmar P. (dietmar2)


Angehängte Dateien:

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.

von Michael (Gast)


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.

von Stefan (Gast)


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

von Dietmar P. (dietmar2)


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.

von Peter D. (peda)


Lesenswert?

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

von Dietmar P. (dietmar2)


Lesenswert?

@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?

von Karl H. (kbuchegg)


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.

von Bronco (Gast)


Lesenswert?

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.

von Transistor (Gast)


Lesenswert?

Der Transistor BC307 ist ein PNP! In deiner Schaltung brauchst du aber 
einen NPN.

von Dietmar P. (dietmar2)


Angehängte Dateien:

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.

von Stefan (Gast)


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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Dietmar P. (dietmar2)


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.

von Dietrich L. (dietrichl)


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

von eawrtz4h (Gast)


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.

von Dietrich L. (dietrichl)


Lesenswert?

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
Noch kein Account? Hier anmelden.