Forum: Mikrocontroller und Digitale Elektronik Mein AVR will nicht so wie ich will


von Michl (Gast)


Angehängte Dateien:

Lesenswert?

Hallo miteinander,

ich habe mir eine Steuerung für einen Getreide-Beiz-Automaten 
zusammengebastelt (Füllstande von Getreide und Beizmittel überwachen, 
Getreidedurchfluss steuern und Beizmitteldosierung regeln).

Die ganzen Ein- und Ausgänge gehen über den I2C-Bus, die Steuerplatine, 
um die es geht, hat also folgende Klemmen (siehe Schaltplan):

KL1: 12V Versorgung
KL2 bis KL5: Taster, mit einer Kabellänge von 20 cm
KL6: PWM-Ausgang, geht an so ein KEMO Dimmer-Modul
K1: Als Erweiterung für später gedacht (evtl. RS 485 oder so)
K2: Drehgeber mit Taster ca 25 cm Kabel
K3: I2C-Bus für Ein- und Ausgänge
K4: LCD-Display, ca 30 cm Kabel
K5: Terminierung vom I2C


Solange kein Schütz schaltet klappt alles problemlos. Sobald sie aber 
schalten (egal ob beim Ein- oder Ausschalten), fällt zuerst das 
LCD-Display aus (zeigt wirre Zeichen, hängt sich auf). Häufig werden 
fälschlicherweise Drehungen vom Drehgeber registriert, manchmal 
fälschlicherweise Tastendrücke registriert. Manchmal resettet der AVR. 
Beim I2C-Bus hatte ich noch keine Störungen festgestellt. Die Phänomene 
treten auch dann auf, wenn die Steuerplatine gar nicht mit dem Rest des 
Schaltschranks verbunden ist und an einer anderen Stromquelle hängt.

Daher habe ich anscheinend einige grundsätzliche Fehler gemacht. (Ich 
bin halt auch nur ein Laie)
Meine erste Frage, kann ich die Platine noch irgendwie retten, oder ist 
sie ein Fall für die Tonne? Was müsste ich alles anders machen?


mfg

Michl

von Michl (Gast)


Angehängte Dateien:

Lesenswert?

Das wäre die Platine

von Uhu U. (uhu)


Lesenswert?

Hast du Stützkondensatoren an den ICs verbaut?

von (prx) A. K. (prx)


Lesenswert?

Wie drückst du dem Controller sein Programm rein?

von (prx) A. K. (prx)


Lesenswert?

22nF wird der Quarz nicht mögen. 22pF sind ihm lieber. Vermutlich 
Tippfehler.

Künftig: Wenn Analogeingänge vorgesehen, dann AREF an Kondensator, sonst 
an nix. Wenn nicht, dann ist L1 nicht nötig.

Schaltbild ist so unscharf, dass Kontrolle schwierig. Wie kriegt man ein 
PNG derart unscharf?

von was-willst-du (Gast)


Lesenswert?

- Offene Eingänge sind immer schlecht -> abschließen.
- Eingänge mit 10 kOhm Pull-Down sind auch etwas hochohmig für Störungen 
von außen. Gehts niederohmiger?
- Werden die Schaltfunken an den Schützen beachtet und unterdrückt?

Sörungen werden gerne über GND oder VCC eingekoppelt. Cs helfen nur 
bedingt. Lieber weg mit den Leitungen von den Störquellen (Schütze?).

Was macht denn die interessante Schaltung links oben am Steckverbinder 
K5?

von (prx) A. K. (prx)


Lesenswert?

was-willst-du wrote:

> - Offene Eingänge sind immer schlecht -> abschließen.

Besser Pullups aktivieren oder als Ausgang definieren. An VCC/GND 
riskiert den Chip bei Fehlprogrammierung.

von was-willst-du (Gast)


Lesenswert?

Dachte eher an den 74HC30 mit seinen Eingängen, die schauen komisch in 
die Gegend. Beim uC ist ja alles unter Softwarecontrolle.

von (prx) A. K. (prx)


Lesenswert?

was-willst-du wrote:

> Dachte eher an den 74HC30 mit seinen Eingängen, die schauen komisch in
> die Gegend. Beim uC ist ja alles unter Softwarecontrolle.

Hast recht.

von wt (Gast)


Lesenswert?

hi michl,

ich würde sagen, such dir einen Spezialisten deines Vertrauens und laß 
dein System (dazu gehört nicht bloß deine Platine!) auf Störverhalten 
untersuchen. Dann könnt Ihr Euch Gedanken zu den notwendigen EMV 
Maßnahmen machen, denn ich sehe auf Deinem Board keine.

Leider ist die ganze sache nicht trivial und ein paar 
Entstörungsmaßnahmen, die blind gestreut werden, nutzen gar nichts.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Abgesehen von den bereits angeführten Macken im Design (offene Eingänge) 
würde ich z.B. an der 12V-Versorgung noch eine Sicherung (zur Not ein 
SMD-Null-Ohm-Widerstand oder einen bedrahteten 1 Ohm Widerstand) 
vorsehen. Denn wenn du die versorgung verpolst, leitet zwar die Diode, 
aber abgesichert wird das Ganze nur von der schmalen Leiterbahn von 
Klemme 1 zur D1. Die wird sich dann opfern.

Wenn ich mir die Platine so ansehe und absolut keinen Unterschied 
zwischen einem 2mA Signal und der Stromversorgung sehe 
(Leiterbahnführung und -breite), dann beschleicht mich die Vermutung, 
das könnte deine erste Platine sein. :-o
Und wenn ich mir die Platine genau ansehe könnte das sogar ein 
Autorouter verbrochen haben... :-/

Der richtige Layoutablauf ist so, dass zuerst die Masse und die 
Versorgung möglichst breit und sinnvoll von Hand verlegt werden (z.B. 
keine Last(rück)ströme über Signalmasse). Danach erst werden die anderen 
Signale verlegt (von mir aus auch mit dem AR).

von Michl (Gast)


Lesenswert?

Hi !

Erstmal danke für die vielen Antworten. Eine Sache habe ich vergessen zu 
erwähnen: Bei dem IC2 handelt es sich um einen HC40 und die nicht 
benutzten Eingänge sind an GND.

@ Uhu

Bis auf die im Schaltplan eingezeichneten Folienkondensatoren sind bis 
jetzt keine weiteren  verbaut. Wie groß sollten diese Stützkondensatoren 
sein? Am geeignetsten wären hierfür Keramikkondensatoren und keine 
Folienkondensatoren, oder?

@ A.K.

Ich habe eine IC-Fassung auf der Platine und kann den AVR daher zum 
programmieren auf das STK 500 stecken.

Die Kondensatoren am Quarz haben 22pF, war ein Tippfehler.
Die L1 hab ich deshalb eingebaut, falls ich später doch einmal einen 
Analogeingang brauche.

Sorry für das unscharfe png.

@ was-willst-du

Müssen die offenen Eingänge vom AVR auch abgeschlossen werden? die vom 
HC40 wären bereits abgeschlossen (ist nur nicht eingezeichnet).

Wären für die Pull-Up bzw. Pull-Down-Wiederstände 1000 Ohm in Ordnung, 
oder 470?
Die Schaltfunken der Schütze werden nicht unterdrückt. Bei den 7 
Schützen und den zig Relais wäre das ein ziemlicher Aufwand.

Die Schaltung an K5 soll eine aktive Terminierung für den I2C sein. 
Keine Ahnung wie das funktionieren soll, ich hab's aus der Bascom-Hilfe.

@ A.K.

Die nicht benötigten Anschlüsse sind bereits als Ausgang definiert, 
Pullup ist auch aktiviert.

@ wt

Das heißt, eine SPS wäre die bessere Lösung, oder? Dan war der ganze 
Aufwand umsonst.

@ Lothar Miller

Abgesichert ist die Platine mit einer flinken 0,5 A. Sie braucht im 
Betrieb so ca. 200 mA, bin mir aber nicht mehr sicher.
Ja, es ist meine erste Platine, und ja, der Autorouter hat sie 
verbrochen. Da meine bisherigen AVR-Projekte immer auf 
Lochrasterplatinen ziemlich frei und wild verdrahtet wurden und es nie 
Probleme gab, dachte ich mir überhaupt nichts, als ich den Autorouter 
beim Verlegen der Letiterbahnen zugeschaut habe.

Melde mich heute Abend wieder.

mfg

Michl

von Karl H. (kbuchegg)


Lesenswert?

Michl wrote:

> Die Schaltfunken der Schütze werden nicht unterdrückt. Bei den 7
> Schützen und den zig Relais wäre das ein ziemlicher Aufwand.

Solange du das nicht machst, ist es müssig sich über weitere Massnahmen 
auch nur Gedanken zu machen. Störungen beseitigt man an der Quelle und 
nicht bei den Bauteilen die zufällig ausgefallen sind.

von was-willst-du (Gast)


Lesenswert?

Beratungsresistenz != Wissenserweiterung

von B e r n d W. (smiley46)


Lesenswert?

Hallo Michl

Allgemein: Zu EMV Maßnahmen gehört beides, Störquellen vermeiden und 
Erhöhung der Störfestigkeit der Störsenke. Machst Du das Eine nicht, 
wird der Aufwand an der anderen Stelle umso größer.

Störquellen:
> Die Schaltfunken der Schütze werden nicht unterdrückt. Bei den 7
> Schützen und den zig Relais wäre das ein ziemlicher Aufwand.
Die Störungen können immens sein. Mit ähnlichen Vorrichtungen hat man 
vor Erfindung des Radios über den Ärmelkanal gefunkt. Du hast einen 
Funken -> Hochfrequenz und eine Antenne -> Anschlussleitungen am Schütz 
wirken als Dipol.

Schau mal unter Wikipedia / Snubber-Glied. Das Snubber Glied besteht aus 
einer Reihenschaltung von R und C und wird parallel zum Kontakt 
angebracht. Es gibt eine Faustformel zur Berechnung von R und C -> 
selber Googeln.

Störsenke:
Als Blockkondensator nimmt man immer Keramikkondensatoren. IC2 besitzt 
z.B. gar keinen. Dafür ist der GND vom IC2 rund um die Platine geführt. 
Dies ergibt zusammen mit der 5V Zuführung zum IC2 eine schöne Windung. 
Also den GND durchtrennen und zum C7 führen und einen Kondensator unten 
drauf.

Sind auf dem Display an K4 schon Blockkondensatoren on Board? Bei den 
kleinen 2-zeiligen mit HD44780 und Konsorten ist dies oft nicht der 
Fall. Die Betriebsspannung am K4 durch einen 0,1uF an der 
Betriebsspannung abblocken.

Wie lange sind die angeschlossenen Zuleitungen, auch zum Display? Jede 
unnötig lange Leitung wirkt als Antenne. Du kannst nachträglich alle 
Zuführungen jeweils durch einen Ringkern führen, besser noch einmal 
durchwickeln.

Im Extremfall hilft ein Metallgehäuse plus Durchführungskondensator für 
jede angeschlossene Leitung, Display und Tastatur sind im Gehäuse zu 
integrieren. Zuleitungen werden robust mit Abschirmungen versehen. Such 
mal nach EMV-Nadelöhr.

Oder eine Platine mit 4 Lagen, wobei eine Lage als virtueller GND 
verwendet wird. Jede Zuleitung wird durch eine Drossel geführt und mit 
einem Kondensator auf GNDV abgeblockt. Die Auswahl der Drossel und des 
Cs hängen von der abzublockenden Frequenz ab und ob über die 
entsprechende Leitung auch hochfrequente Signale laufen müssen.

Mfg, Bernd

von Michl (Gast)


Lesenswert?

Hi!

Was ich bis jetzt gemacht habe:

Dem AVR und dem HC40 habe ich Abblockondensatoren spendiert. Reichen da 
22nF ? (Hab momentan keine größeren Keramikkondensatoren daheim)

--> gleiches Phänomen.

An einem Releiskontankt (welches einen Schütz ansteuert) habe ich 
testweise einen 0,33 uF Folienkondensator mit einen 100 Ohm Wiederstand 
angeschlossen. (sicher nicht optimal, hatte ich hald gerade zur Hand)

--> gleiches Phänomen.

Ein Elektriker hat mir so ein Klöckner Moeller Entstör-Teil 
(warscheinlich ein Varistor oder auch ein Snubber) vorbeigebracht, dass 
an die Spule vom Schütz angeschlossen wird.

--> Ach wenn der Schütz ohne Last schaltet - gleiches Phänomen.

@ Bernd

Die GND-Leitung vom IC2 werde ich durchtrennen und zum C7 führen.

Kann ich für die 0,1 uF am K4 einen Folienkondensator nehmen? Auf dem 
Display selbst sehe ich keine Kondensatoren, sollte da auch einer hin?

Die Leitung zum Display hat 30 cm. Das Kabel habe ich schon mit einem 
provisorischen Adapter so umgeändert, dass jede 2. Ader GND ist, auch 
ohne Erfolg.

Ferritkerne muss ich mir noch besorgen.

Die Platine sitzt bereits auf einer Aluplatte die auf die Frontplatte 
montiert ist. Einen Deckel über die Platinen zu setzen hatte ich ohnehin 
vor.

Ich mach heute mal ein Foto von der Sache, evtl. könnte man die 
Steuerplatine zum Display und zu den Tastern auf die Frontplatte setzen 
und da dann ein Gehäuse draufsetzen. Dann müsste ich nur noch die 
I2C-Leitungen und die Stromleitungen mit Drosseln und Kondensatoren 
absichern. Mal schaun...

Einstweilen vielen Dank für die Hilfe!


mfg

Michl

von Christian (Gast)


Lesenswert?

30cm Zuleitung für das Display ist etwas zu lang. Da hast Du ja wieder 
eine kleine Antenne.

Außerdem ist ein 4-bit-Betrieb des Displays immer Fehleranfälliger, da 
Du ja für jedes Byte zwei Datenübertragungen durchführen musst.

Ist die Leitung abgeschirmt? Wäre jedenfalls besser.

Christian

von Ganymed (Gast)


Lesenswert?

Die Schütze und Relais müssen entstört werden. Da kann
ich Karl Heinz nur unterstützen.
Freilaufdiioden oder VDRs parallel zu den Spulen
ist ja wohl nicht so aufwändig.

Der einfache 5V Stabi läßt auch jedes Störsignal
ungefilter durchflutschen. Also ersetzten durch
Buck-Converter.

>Das heißt, eine SPS wäre die bessere Lösung

Eine SPS ist wohl eine Nummer zu groß.
Aber eine Logikrelais (LOGO von Siemes,
easy von Moeller, alpha von Mitsubichi)
wäher meine Wahl gewesen.
Gebrauchet LOGOs inc Software
gibts bei ibä schon für deutlich unter 100€

von Michl (Gast)


Lesenswert?

Hi!

Ich hab heute ein bisschen rumgespielt und da fiel mir auf, dass die 
Fehler nur beim Schalten von einem bestimmten Schütz (ein alter Siemens) 
auftreten. Den hab ich nun gegen einen neuen ausgetauscht und jetzt 
gehts! Weiß der Teufel warum das so ist. In Zukunft werde ich was die 
EMV betrifft wohl etwas überlegter vorgehen. Vielen Dank für eure Hilfe.

mfg

Michl

von (prx) A. K. (prx)


Lesenswert?

Michl wrote:

> Ich habe eine IC-Fassung auf der Platine und kann den AVR daher zum
> programmieren auf das STK 500 stecken.

Du bist sicher, dass du dir dieses archaischen Raus-und-Rein wirklich 
antun willst? Kein Platz mehr für die 6 Pins für ISP?

> Die L1 hab ich deshalb eingebaut, falls ich später doch einmal einen
> Analogeingang brauche.

Dann 10-100nF an AREF statt VCC.

> Die nicht benötigten Anschlüsse sind bereits als Ausgang definiert,
> Pullup ist auch aktiviert.

Wie geht das? Ich kenne nur entweder oder.

von thomas (Gast)


Lesenswert?

hi michel

erstmal glückwunsch, das du den störenfried gefunden hast.....ich sags 
ja immer...altes zeuch macht nur ärger ;-)

nochmal ein wort zum router.
wurde ja schon erläutert wie du vorgehen solltest. aus eigener erfahrung
kann ich dir wirklich nur von diesen autoroutern abraten.

ich weis ja, das ist immer sooo schön zu sehen, wie die platine 
entflochten wird und ich habe mir das bis vor kurzen auch angetan.

bis ich mal genauer hingeschaut habe, was der so anstellt....oh graus...
da werden leitungen quer und unnötig lang über die platine gelegt.
bringt nur ärger, erst recht, wenn man ein so umfangreiches projekt hat.

also wirklich....nimm dir die zeit und mach das von hand.
hat ja auch den vorteil, das du dich intensiver mit der soft 
einarbeitest.
also viel glück noch und gutes gelingen.

lieben gruß thomas

von Karl H. (kbuchegg)


Lesenswert?

A. K. wrote:
> Michl wrote:
>
>> Ich habe eine IC-Fassung auf der Platine und kann den AVR daher zum
>> programmieren auf das STK 500 stecken.
>
> Du bist sicher, dass du dir dieses archaischen Raus-und-Rein wirklich
> antun willst? Kein Platz mehr für die 6 Pins für ISP?

Was auch gehen würde:

TX/RX sind laut Plan eh noch frei und auf eine Steckerleiste geführt. 
Kleine Adapterplatine mit einem MAX232 für seine serielle Schnittstelle 
und dann einen Bootloader in den Mega16.

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.