Tipps erwünscht zu Entkopplung Analogsensor, Atmega und RS485 Converter gegen Interferenzen

Gast #6978584
Lesenswert?

Hallo Zusammen,

Auf einem PCB habe ich einen Atmega328P, bis zu drei 
Feuchtigkeitssensoren (Analog) mit je 30cm Kabel dazwischen, 
Transistoren für 12V-Ventile und einen MAX485 converter um die Werte per 
RS485 zu einem Master zu kommunizieren.
Versorgt wird alles über einen 12V Input und einem DCDC-Wandler auf 5V 
für die genannten Komponenten.

Nun habe ich das Problem, dass manche Sensoren obwohl ansonsten 
funktionsfähig den RS485 Converter in seiner Funktion beeinträchtigen 
(Start-Bytes fehlen oder Nachrichten gehen gar nicht raus).

Ich vermute, dass die sich über die gemeinsame Versorgungsspannung 
irgendwie stören. Bin gerade dabei mir ein Oszi zu organisieren um das 
mal zu quantifizieren. DCDC-Konverter und Atmega haben übrigens bereits 
die üblichen bzw. im Datenblatt vorgeschriebenen Entkopplungs-KerKos.

Ich hab gelesen, dass es nicht schaden kann, auch an den MAX485 und die 
Sensor Stecker jeweils 100nF KerKos vorzusehen. Haltet ihr das für 
sinnvoll? Gibt es noch andere Möglichkeiten die irgendwie besser 
abzukapseln? Ich hatte schon überlegt einen separaten DCDC-Wandler nur 
für die Sensoren vorzusehen, oder macht das beim gemeinsamen GND eh 
keinen Sinn?
#6978731
Lesenswert?

ein Kerko ist nicht dazu da irgendwelche Störungen durch einen DCDC 
Wandler zu verhindern.

Ein Kerko stützt bei Umschaltvorgängen damit diese Spannungseinbrüche 
sich nicht auf die Versorgungsleitungen ausbreiten und diese wiederum 
als Störsender fungieren.

Ein Analogsensor verursacht auch durch das langsame Signal keine 
Störungen. Wenn das Signal vom Analogsensor zu hochohmig ist dann kann 
das Signal durch äußere Einflüsse gestört werden. Beispiel ein Poti 
nimmt man eins mit 1-10 kOhm funktioniert das recht gut wenn jetzt 
jemand eins mit 100 kOhm nimmt kann man damit Radioempfang aufzeichnen.

Ich hatte mal im Datenblatt des ATTiny26 eine Enstörung mittel Spule der 
AVCC Spannung gesehen, das hilft anscheinend etwas Störungen von der 
AVCC Spannungsversorgung fern zu halten.

Dein Problem wird einfach dieser DC-DC Wandler, das Ventil selbst(keine 
Freilaufdiode) oder dessen Versorgung sein, vielleicht zieht das 
kurzzeitig soviel das 12V Leitung zusammenbricht und es nicht mehr für 
die 5V ausreicht.

Mach doch mal ein Bild deines Aufbaus da kann man gleich viel mehr sagen 
was nicht so gut ist.
Gast #6978751
Lesenswert?

Klingt nach fehlendem "failsafe" auf dem Bus. Mittels PullUp/PullDown 
sollte an einer Stelle am RS485 Bus für definierte Pegel gesorgt werden 
falls kein Sender aktiv ist. GND mitführen, daber das dürfte eh der Fall 
sein.

Siehe auch RS485 im Wiki.
Gast #6978811
Lesenswert?

Felix schrieb:
> Gibt es noch andere Möglichkeiten die irgendwie besser
> abzukapseln? Ich hatte schon überlegt einen separaten DCDC-Wandler nur
> für die Sensoren vorzusehen, oder macht das beim gemeinsamen GND eh
> keinen Sinn?

Du könntest dir die Masseführung angucken. Die schönsten getrennten 
DCDC-Wandler nützen nichts, wenn sie eine gemeinsame Masse benutzen und 
ungünstig verdrahtet sind. Allerdings sollte das eigentlich den RS485 
nicht stören, wenn alles richtig verdrahtet ist und Ströme von ein paar 
mA fließen. Normal wäre dann eher, dass das Rauschen der Sensorwerte 
zunimmt.
Kurz: Da wird mit deinem Schaltplan oder dem Aufbau etwas im Argen 
liegen.
#6978831
Lesenswert?

Felix schrieb:
> Nun habe ich das Problem, dass manche Sensoren obwohl ansonsten
> funktionsfähig den RS485 Converter in seiner Funktion beeinträchtigen
> (Start-Bytes fehlen oder Nachrichten gehen gar nicht raus).

Niemals. Das ist zu 99% ein Softwareproblem.

> Ich vermute, dass die sich über die gemeinsame Versorgungsspannung
> irgendwie stören.

Aber doch nicht ein SENSOR! Der liefert schwache, harmlose Signale!

> Bin gerade dabei mir ein Oszi zu organisieren um das
> mal zu quantifizieren. DCDC-Konverter und Atmega haben übrigens bereits
> die üblichen bzw. im Datenblatt vorgeschriebenen Entkopplungs-KerKos.

Eher stört der deine Sensoren, denn die meisten, kleinen billigen DC/DC 
Wandler spucken ordentlich Störungen aus, sowohl über Leitungen als auch 
feldgebunden.

> Ich hab gelesen, dass es nicht schaden kann, auch an den MAX485 und die
> Sensor Stecker jeweils 100nF KerKos vorzusehen. Haltet ihr das für
> sinnvoll?

Ja sicher. Warum hast du sie eingespart?

https://www.mikrocontroller.net/articles/Kondensator#Entkoppelkondensator

> Gibt es noch andere Möglichkeiten die irgendwie besser
> abzukapseln? Ich hatte schon überlegt einen separaten DCDC-Wandler nur
> für die Sensoren vorzusehen,

Unsinn. Zeig lieber mal deinen Schaltplan, Layout und praktischen 
Aufbau.
Gast #6979389
Lesenswert?

MaWin schrieb:
> Das werden wohl kaum die analogen Feuchtesensoren sein, sondern eher die
>
> Felix schrieb:
>> 12V-Ventile

Im aktuellen Setup zeichne ich aktuell nur die Sensorwerte auf, die 
Ventile sind alle noch gar nicht angeschlossen. Jegliche Störungen 
müssten also durch Fehler in dem restlichen Schaltplan kommen.

Zum Schaltplan: U2 ist der MAX485, der gesamte Ventilteil unten links 
ist unbenutzt aktuell. Sensoranschlüsse rechts, daran kommt dann mit 
30cm Kabel der jeweilige Sensor. Links oben zwei Stecker mit BUS (A,B) 
und 12V und GND womit auch mehrere Slaves als Daisy-Chain hintereinander 
gehangen werden können. Vorne und hinten sind GND-Planes.
Angehängte Dateien:
#6979398
Lesenswert?

Man sollte immer verlinken, wovon das die Fortsetzung ist:

Beitrag "Re: Mysteriöse Instabilitäten bei RS485 zwischen RPi und mehreren Slaves"

Prinzipiell ist nichts zu sehen, warum diese Schaltung die RS-485 stören 
sollte.
Ich würde mal direkt vor den ADC-Eingang des AVR noch einen 10k zur 
Entkopplung setzen.
Da der MAX485 ja Leistung treiben kann, würde ich zur Stützung einen 
100nF + 10µF direkt an VCC/GND des MAX setzen.
#6979774
Lesenswert?

ja schick mal deinen Schaltplan nicht nur das Board. Beim Hersteller des 
MAX485 gibt einige Beispiele zur Beschaltung da wird mind. 3,1µF für VCC 
genommen ich würde auch wie schon gesagt einen 100nF Kerko zusätzlich
 hin machen. Da du das ja eh neu machen wirst würde ich dem µC ein 
LC-Filter mit 100mH+10µF spendieren um den größten Müll des DCDC 
Wandlers fernzuhalten.
#6980612
Lesenswert?

Felix schrieb:
> Hab immer Angst, dass da meine Arbeit zerrissen wird,

Nun ja, wenn gleich es dafür berechtigte Ängste gibt, vor allem ind 
iesem Forum, muss man auch konstantieren, daß Kritikkompetenz kein 
Allgemeingut ist.

https://de.wikipedia.org/wiki/Kritikkompetenz

Dein Schaltplan erliegt dem Zeitgeist. Das ist kein sonderlich guter 
Schaltplan, sondern eine unsinnige Anhäufuung von Labels. Das wurde 
schon 1001 mal diskutiert.

Schaltplan richtig zeichnen

Aber es gab hier schon DEUTLICH schlechtere Schaltpläne.

Dein U1 ist häßlich. Erstens gekippt und zweitens mit Signalen durch das 
Symbol.
C2 ist ein Tippfehler oder Unsinn. 100pF? Oder sollten das eher 100nF 
sein?
Dito C1.
Deine GND-Symbole an J1, J4 J5 stehen auf dem Kopf, das ist ungünstig. 
Was sollen R1, R2 und R5 machen? 1M als Pull Down Widerstand?
Warum führst du AREF auf die Stecker? Das klingt eher nach Stress, dort 
kann man sich viele Störungen einfangen. AREF sollte eigentlich nur am 
Contoller anliegen und dort mit 100nF gepuffert werden.
Was sollen die in der Luft schwebenden Labels unten links?
Deine Ventilansteuerung ist an sich zwar OK, aber erstens komsich 
dimensioniert (220 Ohm Basiswiderstand sind  grenzwertig wenige) und 2. 
Unsinnig verwinkelt gezeichnet. Man hätte besser einen ULN2803 oder 
ULN2007 genommen.
AREF und AVCC werden NICHT direkt verbunden! AREF bekommt nur einen 
100nF Kondensator! AVCC geht in den meisten Fällen an VCC, ggf. mit LC 
oder RC-Filter dazwischen.

> aber hier isser :)
> Hab an den Max jetzt schon 100nF und 10uF KerKos vorgesehen.

Schon mal OK.

Dein Problem liegt in der Software oder in den fehlenen Pull-Up/Down 
Widerständen am RS485 Bus.
Gast #6980618
Lesenswert?

Felix schrieb:
> Hab immer Angst, dass da meine Arbeit zerrissen wird, aber hier isser :)

Brauchst du nicht, der Schaltplan ist schon zerrissen genug ;-)
Warum verwendest du keine Linien, um Bauteil zu verbinden.
Bei so einem Suchspiel macht es keinen Spaß, Signale zu verfolgen.
Gast #6980636
Lesenswert?

Felix schrieb:
> Screenshot_Schaltplan.PNG

Bist du sicher, dass deine Software kompatibel zum Schaltplan ist?
Meist ist es keine gute Idee oder zumindest überflüssig, ARef mit AVCC 
zu verbinden. Der Pin ist laut Datenblatt lediglich zum Anschluss eines 
Entkopplungskondensators vorgesehen, der das Rauschverhalten des ADC 
verbessert. Um AVCC als Referenz zu verwenden, besitzt der ATmega328 
Steuerbits im ADMUX-Register.

Auch ist in deinem Schaltplan keine Entkopplung von AVCC und VCC zu 
entdecken. Nicht ohne Grund steht im Datenblatt: "If the ADC is used, it 
should be connected to VCC through a low-pass filter." (Kap. 1.1.7 AVcc)
#6980680
Lesenswert?

Wer liest denn das rs485 signal ein?

Bei meinen rs485 experimenten mit stromzählern und solarinvertern kan es 
öfters vor dass der rs485-usb adapter am PC das erste byte verschlukt 
hat. Dasselbe am orangepi.

Ich denke da war die automatische rx-tx umschaltung im usb-adapter 
schuld. Bin dem aber nie auf grung nachgegengen.

Deine probleme klingen ganz ähnlich.
#6980689
Lesenswert?

was mir so an deinem Schaltplan auffällt ist, zum einen der fehlende 
Elko z.B. 1000µF vor dem L7805, weiterhin zw. Reglereingang und GND ein 
100nF Kerko und zw. Reglerausgang und GND ebenfalls ein 100nF Kerko. In 
Reihe zur Diode könntest du ein eine kleine Drosselspule 10mH / 1A 
reinmachen wer weis was deinen Ventile für einen Dreck auf der 12V 
Schiene produzieren.

Die Schaltung deiner Ventile erschließt sich mir nicht ganz du schaltest 
doch auf der Masse Seite, deine Freilaufdiode sollte nun antiparallel 
zum Ventil sein.

Was für Ventile steuerst du an? Welchen Widerstand haben diese, den der 
BCX56 ist nicht besonderst stark.
#6980696
Lesenswert?

Thomas O. schrieb:
> was mir so an deinem Schaltplan auffällt ist, zum einen der fehlende
> Elko z.B. 1000µF vor dem L7805,

Wozu? Dort hängt doch kein 50 Hz Gleichrichter dran, sondern ein 
Netzteil mit 12V Gleichspannung.

> weiterhin zw. Reglereingang und GND ein
> 100nF Kerko und zw. Reglerausgang und GND ebenfalls ein 100nF Kerko. In
> Reihe zur Diode könntest du ein eine kleine Drosselspule 10mH / 1A
> reinmachen wer weis was deinen Ventile für einen Dreck auf der 12V
> Schiene produzieren.

Käse^3! Ersten braucht das keiner, weil die Spulen mit Freilaufdiode 
schlicht handzahm sind und 2. hast du mal überlegt, wie große eine 
10mH/1A Spule ist? Und 3. Hat der OP die Ventilansteuerung noch gar 
nicht in Betrieb, trotzdem gibt es Fehler. Klingt so wie 
Handyfunkmasten, die selbst im ausgeschalteten Zustand Leute in Angst 
und Schrecken versetzen.

> Die Schaltung deiner Ventile erschließt sich mir nicht ganz du schaltest
> doch auf der Masse Seite, deine Freilaufdiode sollte nun antiparallel
> zum Ventil sein.

Ist sie auch, nur schlecht gezeichnet.
#6980826
Lesenswert?

wenn das direkt nach dem Gleichrichter wäre würden 1000µF für 1A eh 
nicht reichen. Es geht darum das beim Schalten der Ventile(Frequenz 
unbekannt) der LM7805 nicht aus dem tritt kommt.

10mH war jetzt etwas hoch gegriffen 1mH sollte auch reichen, ich habe da 
immer soetwas verwendet und bin immer gut mit gefahren. Leider wurde die 
Auswahl bei Reichelt jetzt sehr klein.
https://www.reichelt.de/festinduktivitaet-axial-77a-ferrit-470-h-fas-77a-471m-p245522.html

Da er den Ventilantrieb noch nicht in Verwendung hat, werden die 
Störungen ja nicht kleiner wenn es in Betrieb geht und dann können die 
1000µF das ganze etwas stützen.
Gast #6980856
Lesenswert?

Thomas O. schrieb:
> wenn das direkt nach dem Gleichrichter wäre würden 1000µF für 1A
> eh nicht reichen. Es geht darum das beim Schalten der Ventile(Frequenz
> unbekannt) der LM7805 nicht aus dem tritt kommt.

Die Größe des Ladekondensators hinter dem Gleichrichter hängt immer noch 
von der Spannung ab. Wieviel Strom die Ventile maximal benötigen, sehe 
ich da nicht - wie kommst du auf 1A?
Der LM7805 ist keine getaktete Logik. Da kommt nichts aus dem Tritt. 
Solange seine Drop-Spannung nicht unterschritten wird, ist alles in 
Ordnung.
#6980863
Lesenswert?

Thomas O. schrieb:
> wenn das direkt nach dem Gleichrichter wäre würden 1000µF für 1A eh
> nicht reichen. Es geht darum das beim Schalten der Ventile(Frequenz
> unbekannt) der LM7805 nicht aus dem tritt kommt.

Das kommt er nicht! Auch wenn Spulen und Magnetventile für viele Leute 
hier Magie sind, so sind die im Normalfall deutlich unkritischer als die 
Leute denken. Beim Einschalten steigt der Strom eher langsam, begrenzt 
durch die Induktivität. Beim Ausschalten fällt Laststrom für den 
Spannungsregler zwar sehr schnell, so schnell wie der Transistor 
schaltet. Aber das verkrafter der Spannungsregler, wenn gleich er ein 
paar hundert mV überschwingt. Aber der Spulenstrom klingt eher langsam 
durch die Freilaufdiode ab. Langsamer als beim Einschalten, da die 
Flußspannung der Diode sehr klein ist und und der ohmsche Anteil der 
Spule die Verluste erzeugt.

> 10mH war jetzt etwas hoch gegriffen 1mH sollte auch reichen, ich habe da
> immer soetwas verwendet und bin immer gut mit gefahren.

Aus Angst und Unwissen. Globuli für Elektroniker.

> Da er den Ventilantrieb noch nicht in Verwendung hat, werden die
> Störungen ja nicht kleiner wenn es in Betrieb geht und dann können die
> 1000µF das ganze etwas stützen.

Das ist gar nicht das Thema der Diskussion! Der OP hat Fehler, auch ohne 
Ventilansteuerung. Also muss er die erstmal finden!
Gast #6981843
Lesenswert?

Hallo zusammen, schonmal danke für die vielen Tipps!!!

Falk B. schrieb:
> C2 ist ein Tippfehler oder Unsinn. 100pF? Oder sollten das eher 100nF
> sein?

Hupsi, stimmt! Ich seh gerade das hab ich sogar so mit den Mini-Werten 
fertigen lassen!!! (auweia) (Offenbar hats sogar bisher trotzdem 
funktioniert...) Ist korrigiert.

Falk B. schrieb:
> Warum führst du AREF auf die Stecker? Das klingt eher nach Stress, dort
> kann man sich viele Störungen einfangen. AREF sollte eigentlich nur am
> Contoller anliegen und dort mit 100nF gepuffert werden.

Das hab ich mal aus einem Tutorial übernommen, schaue ich mir auf jeden 
Fall nochmal an. Recherche hat eine Schaltung ergeben, die mir plausibel 
scheint (s. Bild). Kann man das so machen?

Falk B. schrieb:
> fehlenen Pull-Up/Down
> Widerständen am RS485 Bus

Die sind tatsächlich am Start vom Bus auf dem Master-Board (je 510R).
Angehängte Dateien:
#6981871
Lesenswert?

Felix schrieb:
> Super, danke dir!
> AVCC ist aber nur für den Chip richtig?

Ja.

> Die Sensoren selbst hänge ich an
> VCC oder auch an AVCC hinter die Spule?

Was sind denn das für Sensoren? Wenn die eine etwas bessere 
Analogspannung brauchen, spendiert man denen eben auch einen LC-Filter 
wie für den AVR. Sind ja nur ein paar mA. Da reicht ein Filter für alle 
drei Sensoren.
#6981979
Lesenswert?

Falk B. schrieb:
> Veit D. schrieb:
>> mir fehlt im Schaltplan die I2C Busterminierung.
>
> Der OP hat gar kein I2C.

Okay, dumm gelaufen. Das ist ein Tippfehler. Sorry.
Eigentlich sieht man ja das es sich um RS485 handelt.  ;-)  Mein Einwand 
bleibt damit bestehen. Mich wundert jedoch immer noch das niemand auf 
die Busterminierung eingeht die in seinem Schaltplan falsch bzw. 
unvollständig ist.

@ Felix:
Dann zeichne deinen Schaltplan vollständig, sonst ist das erneutes 
Rätselraten und sorgt wie du merkst nur für Verwirrung. Das macht keinen 
Spass. Dein letztes Bild zeigt die Grundbeschaltung laut Atmel Appnote. 
Kann also nicht falsch sein. In der Appnote gibts noch mehr 
Informationen.
#6982227
Lesenswert?

Die Resetbeschaltung habe ich bisher immer mit 10kOhm und 100nF gemacht, 
das verzögert den Start zusätzlich um 1mSek falls du bei den Fuses nicht 
mit einer Verzögerung arbeitest. 100 kOhm finde ich arg hochohmig, wenn 
da irgendetwas in der Nähe stört wirst du damit Probleme haben. Es 
sollte halt bei Einsatz von debubWire nicht unter 10kOhm sein, sonst 
kann es der Programmer nicht zuverlässig runterziehen.
#6982290
Lesenswert?

Hallo,

stimmt, die 100k sind etwas viel. Bestimmt ein Tippfehler.  ;-)

Edit: Wobei in der 042 Appnote weiter unten im Layout Bsp. wirklich ein 
100k + 4,7nF am Reset klemmen. Oder der ATmega324PB hat eine andere 
Resetinnenschaltung. Weiter oben im Text ist von 4,7 - 10k und 100nF die 
Rede.
Gast #6983645
Lesenswert?

Veit D. schrieb:
> Edit: Wobei in der 042 Appnote weiter unten im Layout Bsp. wirklich ein
> 100k + 4,7nF am Reset klemmen. Oder der ATmega324PB hat eine andere
> Resetinnenschaltung. Weiter oben im Text ist von 4,7 - 10k und 100nF die
> Rede.

Und wo siehst du das Problem?
Rechne mal die Zeitkonstanten aus und wundere dich.

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