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?
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.
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.
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.
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.
Felix schrieb:> dass manche Sensoren obwohl ansonsten funktionsfähig den RS485 Converter> in seiner Funktion beeinträchtigen
Das werden wohl kaum die analogen Feuchtesensoren sein, sondern eher die
Felix schrieb:> 12V-Ventile
Du musst also strategisch die Ursache analysieren und weniger
Felix schrieb:> vermute
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.
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.
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.
Pepe T. schrieb:> Du bist dir bewusst dass viele rs485 wandler ziemlicher müll sind?> Die ohne separte rx/tx umschaltleitung verschluken gerne mal den anfang.
Das wage ich zu bezweifeln.
Thomas O. schrieb:> ja schick mal deinen Schaltplan nicht nur das Board.
Hab immer Angst, dass da meine Arbeit zerrissen wird, aber hier isser :)
Hab an den Max jetzt schon 100nF und 10uF KerKos vorgesehen.
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.
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.
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)
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.
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.
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.
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.
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.
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!
Falk B. schrieb:> Das ist gar nicht das Thema der Diskussion! Der OP hat Fehler, auch ohne> Ventilansteuerung. Also muss er die erstmal finden!
Nein!
Wir machen da erst mal drosseln und elkos rein.
Ob das funktioniert interessiert nur sekundär.
Hallo,
mir fehlt im Schaltplan die I2C Busterminierung. Der R17 hängt zudem
verloren in der Luft. An RO (U2) muss zwingend noch ein Pullup ran. Mach
es wie gezeigt und die Hardware passt. Dann ist es wirklich nur noch
Software.
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).
Felix schrieb:> 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?
Ja
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.
Danke nochmal für die Antwort!
Falk B. schrieb:> Was sind denn das für Sensoren? Wenn die eine etwas bessere> Analogspannung brauchen,
Feuchtigkeitssensoren. Denke nicht, dass die noch nen Filter brauchen.
Felix schrieb:> Falk B. schrieb:>> Was sind denn das für Sensoren? Wenn die eine etwas bessere>> Analogspannung brauchen,>> Feuchtigkeitssensoren. Denke nicht, dass die noch nen Filter brauchen.
War das meine Frage?
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.
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.
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.
Veit D. schrieb:> Weiter oben im Text ist von 4,7 - 10k und 100nF die Rede.
Da oben ist die rede davon dass er serielle startbits verliert. Das wird
100%ig vom reset pullup beeinflusst. Garantiert! Genauso wie der booster
wirkt!
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.
Hallo,
Leute, macht was ihr wollt. Ich habs auch nur gut gemeint. Es ist nichts
weiter wie die empfohlene Standardbeschaltung laut Hersteller. Wer es
besser kann/weiß soll es machen. Ich bin raus.