Forum: Mikrocontroller und Digitale Elektronik µC mit 15m Leitung am IO Pin: Störungen


von Alex C. (tuxedo0801)


Lesenswert?

Hallo zusammen,

bin mir unsicher ob das gewählte Forum passt, oder ob's nicht doch eher 
in den Analogtechnik-Bereich sollte...

Ein Freund bastelt einen "Binäreingang" für ein KNX System. So ganz grob 
besteht das Teil aus einem Microcontroller (an dessen IO-Pins über einen 
Vorwiderstand Reed-Kontakte angeschlossen werden), der KNX Busankopplung 
und ein wenig Software, verpackt in ein Hutschienengehäuse. Die 
Fensterkontakte sind handelsübliche Reed-Kontakte wie man sie im 
Fensterbau verwendet. Die Leitung zwischen den Reed-Kontakten und den 
Schraubklemmen am Hutschienengehäuse ist eine einfache, 4-adrige 
"Telefonleitung" (nix großartige twisted pair) mit rund 15m, die in der 
Wand quer durch's Haus verlegt wurde.

Das Problem ist nun: Offenbar (noch nicht mit einem Oszi verifiziert) 
wird hier und da immer mal wieder über die lange Leitung quer durch's 
Haus ein bisschen Spannung von parallel liegenden, stromführenden 
Leitungen induziert, was dann zur Folge hat, dass der µC denkt, der 
Zustand des Reeds hätte sich geändert.

Mehr Details hab ich aktuell nicht. Aber ich gehe davon aus, dass die 
"Prüfspannung" zu den Reeds bereits "gepulst" ist (um die Reeds über die 
Jahre hinweg etwas zu schonen was Funkenbildung etc betrifft (machen 
wohl Hersteller käuflich zu erwerbender KNX Binäreingänge auch so) und 
dass die "Prüfspannung" nicht über 5V liegt.


Um das Bild zu vereinfachen kann man die ganze Schaltung wohl auf einen 
µC, eine 3.3V-5V Spannungsquelle, einen Reedkontakt an einer 15-20m 
Leitung quer durch's Haus sowie einen IO-Pin am µC reduzieren.

Die Fehl-Erkennungen sind natürlich nicht so prickelnd. Bevor man jetzt 
das Rad neu erfindet, dachte ich mal, ich frage in die Runde ob da 
jemand eine gute Idee hat wie man solche offenbar induzierte 
Fremdspannungen am besten heraus filtert...

Das ganze ließe sich natürlich auch in Software weitgehend lösen. Z.b. 
einen geänderten Status am IO-Pin nur dann für voll nehmen, wenn auch in 
diesem Moment die Prüfspannung gerade aktiv ist und ergänzend in 
bestimmten Zeiabständen (millisekunden) den Status prüfen (es ist 
unwahrscheinlich dass man ein Fenster im <100ms Takt zweimal öffnen und 
man dann auch noch beide male separate erkennen will).

Die Frage die sich stellt ist also erstmal in Richtung: Wie kann ich 
Schaltungstechnisch solche Fehler "verhindern" bzw entgegen wirken?

Hat da jemand ne Idee?

von Joachim B. (jar)


Lesenswert?

den Strom erhöhen, pullup mit 1k sorgt schon mal für nennenswerten Strom 
der sich nicht so leicht beinflussen lässt, Telefonleitungen mit 20mA 
gehen über Kilometer unbeeindrukt!

Dann kann man auch Filtern, entprellen, wenn sich innerhalb von 10-40ms 
der Zustand nicht ändert wirds wohl echt sein.

: Bearbeitet durch User
von Fabian (Gast)


Lesenswert?

Man macht Beides. In Software sollten hier schon entsprechende 
Vorkehrungen getroffen werden, aber in Hardware ist dies viel wichtiger.

Wie sieht denn die Eingangsbeschaltung überhaupt aus? Geht er direkt auf 
den I/O Kontakt?
Hier ist normalerweise ein EMV gerechtes Design empfehlenswert. Sprich: 
Tiefpassfilter, Überspannungsschutz etc.

von Joachim B. (jar)


Lesenswert?

Die meisten Fehler zu hochohmige Pullups, oder pullup per Software im 
Chip vergessen einzuschalten oder durch Störung im Chip oder Programm 
oder Kernel abgeschaltet, das kann mit einem echten eingelötetem R nie 
geschehen.

von Alex C. (tuxedo0801)


Lesenswert?

Wie gesagt, Details kenn ich (noch) nicht. Da ich aber auch so einen 
Binäreingang auf meiner ToDo Liste stehen hab, dachte mir ich frag mal 
in die Runde.

von Joe F. (easylife)


Lesenswert?

Als erstes sollte man bei so langen Leitungen natürlich an eine 
Schutzbeschaltung in Form von TVS Dioden denken, die zwar das Problem 
nicht lösen, aber der uC schützen.

Hardwareseitig kann man einen Tiefpass-Filter mit nachgeschaltetem 
Schmitt-Trigger einsetzen.

Die einfachste Lösung hast du selbst schon genannt: Entprellung.
Signal also erstmal "beobachten". Die Störungen sind vermutlich kürzer 
als 1ms, insofern reicht es vermutlich aus, einmal zu messen, wenn 
geöffnetes Fenster detektiert 1-2ms warten, nochmal messen. Nur wenn 
auch beim 2. Mal geöffnetes Fenster detektiert wird entsprechende Aktion 
auslösen.

Du schreibst, dass die Prüfspannung nicht dauerhaft angelegt ist. In 
diesem Fall sollte man auch nach dem Anlegen der Prüfspannung eine 
angemessene Zeit warten bevor die Kontakte ausgewertet werden, damit 
etwaige Über-/Unterschwinger auf der Leitung abgeklungen sind.

von Peter D. (peda)


Lesenswert?

Alex C. schrieb:
> Wie kann ich
> Schaltungstechnisch solche Fehler "verhindern" bzw entgegen wirken?

Nur schwer.
Es wird vermutlich ein externer Interrupt verwendet und der kann schon 
auf wenige ns kurze Störimpulse triggern.

Lösung:
SW so ändern, daß im Timerinterrupt der Pin mehrfach abgetastet wird. 
Z.B. neuen Zustand als gültig erkennen, wenn er >=4 * 1ms gleich ist.

von Jim M. (turboj)


Lesenswert?

Alex C. schrieb:
> Um das Bild zu vereinfachen kann man die ganze Schaltung wohl auf einen
> µC, eine 3.3V-5V Spannungsquelle, einen Reedkontakt an einer 15-20m
> Leitung quer durch's Haus sowie einen IO-Pin am µC reduzieren.

Da fehlt der Pullup (oder Pulldown) Widerstand, ohne den wäre der Strom 
durch den Reedkontakt ja unendlich.

Und genau dieser Widerstand hat einen klassischen Zielkonflikt: Je 
kleiner er ist desto weniger Störungen, aber der Reedkontakt wird beim 
Schalten mehr belastet.

Wenn die Quelle getrennt und der Kontakt offen ist, hat man eine Antenne 
am µC Eingang mit hoher Impedanz gebaut. Da kann man den Pinzustand als 
Zufallsgenerator benutzen.

Anders ausgedrückt: Schaltplan, bitte.

von Alex C. (tuxedo0801)


Lesenswert?

Ich gehe davon aus dass mein Freund schon so schlau war und den IO-Pin 
nicht in der Luft hängen lässt, sondern einen entsprechenden PullDown 
dran hat.

Die Sache mit dem Strom auf dem Kontakt und etwaigen Abriss-Funken ist 
bekannt, weswegen ich ja auch die gepulste Abfragespannung erwähnt 
hatte.


Auf die Idee mit den TVS Dioden hätte ich auch kommen können. Gut, die 
lösen nicht direkt das Problem, aber lassen ggf. das Gerät länger leben.

Tiefpass-Filter: Das krieg ich in Software auch hin. Lässt sich dann 
auch schneller mal ändern wie den Tief-Pass in HW zu ändern.

von Joachim B. (jar)


Lesenswert?

Alex C. schrieb:
> Ich gehe davon aus dass mein Freund schon so schlau war und den IO-Pin
> nicht in der Luft hängen lässt, sondern einen entsprechenden PullDown
> dran hat.

wobei besser pullup wäre!

pulldown kann ungebremst bei Verschaltungs oder Lötfehler zuviel Strom 
senden

von Jens P. (picler)


Lesenswert?

Wenn ich solche langen Leitungen direkt an einen uC hängen muss, schalte 
ich einen einfachen Optokoppler davor. Der entprellt und trennt das 
Signal galvanisch. Mit dem Kontakt steuere ich dann nur die Led des 
Kopplers an. Hört sich vielleicht ein bissel wie mit Kanonen auf Spatzen 
an, habe mit der Lösung aber gute Erfahrung gemacht. Die oben genannten 
Tipps für eine sinnvolle Auswertung per Software gelten natürlich 
trotzdem.

von jgfasjg (Gast)


Lesenswert?

Alex C. schrieb:
> Die Sache mit dem Strom auf dem Kontakt und etwaigen Abriss-Funken ist
> bekannt, weswegen ich ja auch die gepulste Abfragespannung erwähnt
> hatte.

Was denn nur fuer ein Abrissfunken?
Schaltet der Reedkontakt direkt eine indutive Last?

jgfasjg

von Alex C. (tuxedo0801)


Lesenswert?

Häng dich nicht so arg am dem Wort "Abriss-Funken" auf. Das ist ggf. 
deutlich "überdimensioniert" und sicherlich nicht ganz korrekt gewählt.

Fakt ist: Je kleiner der Strom der da durchfließt, desto länger lebt der 
Reed-Kontakt. Und da die Teile in haushaltsüblichen Fenstern sich nicht 
so toll wechseln lassen, ist es erstrebenswert die zu schonen wo's nur 
geht.

von Der Öler (Gast)


Lesenswert?

Alles entkoppeln und trennen... Keine direkten Verbindungen zwischen 
Sensoren und der Auswerteelektronik!

von Joe F. (easylife)


Lesenswert?

Jens P. schrieb:
> Mit dem Kontakt steuere ich dann nur die Led des
> Kopplers an. Hört sich vielleicht ein bissel wie mit Kanonen auf Spatzen
> an, habe mit der Lösung aber gute Erfahrung gemacht.

Diese Lösung ist tatsächlich für diese Anwendung eine sehr gute Lösung.
Einerseits arbeitest du mit einer vernünftig dimensionierten 
Stromschleife (die Optokoppler LED will ja in der Regel 5-10mA sehen), 
und gleichzeitig hast du den optimalen Schutz für den uC.

von Alex C. (tuxedo0801)


Lesenswert?

So nochmal kurzes Feedback hinsichtlich "mehr Details":

Der Eingang am µC ist mit einem 470k PullUp auf 3.3V geschaltet. Der 
Reed brückt den Eingang im geschlossenen Zustand mit 47k auf Masse.
Eine Schutzbeschaltung mit Dioden ist auch drin.

Zur Idee mit dem Opto:

Klingt vernünftig (strikte Trennung). Aber der entprellt doch nicht?! 
Oder ist der verwendete Typ tatsächlich so träge?

@Jens PICler (picler)
Fehler auf der langen Leitung (indizierte Fremdspannung und dergleichen) 
filterst du dann rein per SW?

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

Alex C. schrieb:
> Der Eingang am µC ist mit einem 470k PullUp auf 3.3V geschaltet.

Das ist praktisch offen. Mal im Datenblatt nach den Leckströmen des µCs 
geschaut? Die liegen mitunter in derselben Größenordnung...

> Reed brückt den Eingang im geschlossenen Zustand mit 47k auf Masse.

Auch noch eine Größenordnung zu viel, wenn da 15m "Antenne" dran ist.

von Alex C. (tuxedo0801)


Lesenswert?

Ich nehme an, die Widerstände wurden deshalb so groß gewählt, weil die 
Reeds im Normalzustand (Fenster=Zu) geschlossen sind und so "strom 
gespart" wird (davon steht am KNX Bus auch nicht unbegrenzt zur 
Verfügung. Normalerweise hat man nur rund 50-100mA bei 3.3-5V... Bei 16 
Eingängen kann sich das schnell aufsummieren).

Auch wird das der Grund sein, warum keine Optos zum Einsatz kommen... 
rätsel

von Joe F. (easylife)


Lesenswert?

Alex C. schrieb:
> Der Eingang am µC ist mit einem 470k PullUp auf 3.3V geschaltet. Der
> Reed brückt den Eingang im geschlossenen Zustand mit 47k auf Masse.

Das ist, wie schon geschrieben wurde, einfach nur grober Unfug.
Mal abgesehen von der absurden Hochohmigkeit (in der Schleife fließen 
gerade mal 6uA) liegt auch im geschlossenen Zustand des Schalters schon 
ein Pegel von 0.3V am Input. Da reicht dann schon die kleinste 
Einstrahlung, um ein High zu erkennen.

Kann der Widerstand am Reedkontakt den gewechselt werden, oder muss man 
mit den 47K leben?

: Bearbeitet durch User
von Alex C. (tuxedo0801)


Lesenswert?

Ist wohl noch ein "Versuchsaufbau". Was mittlerweile unternommen wurde 
weiß ich nicht. Versuche das aber gerade in Erfahrung zu bringen.

von Alex C. (tuxedo0801)


Lesenswert?

> liegt auch im geschlossenen Zustand des Schalters schon ein Pegel von 0.3V
> am Input. Da reicht dann schon die kleinste Einstrahlung, um ein High zu
> erkennen.

Im Datenblatt steht die "Input Low Voltage" beschrieben mit max. 0,6 Vcc 
... Das wären bei 3,3V Betriebsspannung dann 1,98V.

Für ein High sind laut Datenblatt mind. 0.8 Vcc, also 2,64V nötig.

Beides ist doch recht weit weg von 0,3V.

: Bearbeitet durch User
von posti (Gast)


Lesenswert?

Hi

Die Hochohmigkeit ist doch eigentlich gar nicht nötig.
Klar, wenn ich auf die Reed-Kontakte nonstop Vdd gebe, geht da schon 
Strom durch.
Wenn ich aber nur alle paar ms für nen paar µs den Pin auf High lege, 
reicht es doch aus, wenn ich darauf achte, daß meine 20mA (kA, was der 
Pin so ab kann) nicht überschritten werden.
Den Rest kann man optimieren, wenn's funktioniert.
Und Abrissfunken sind auch eher unwahrscheinlich, da die Zeit, in der 
wirklich Strom fließt, doch arg kurz ist, daß man Das 2x in seinem Leben 
schafft denk.

Mal eine ganz andere Frage, völlig OT:
Kannst Du einen Thread aufmachen, wenn Du von Deinem Kumpel erfahren 
kannst, wie die Treiberstufe eines KNZ-Teilnehmer aussieht?
Hatte dazu Nichts gefunden und geht bei mir auch nur in die Richtung 
'Hausbus', wo ich mir noch nicht ganz schlüssig bin, wie ich Den 
aufziehe.

MfG

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Die Zuverlässigkeit und Alterung von Relaiskontakten ist entgegen der 
intuitiven Annahme nicht etwa be minimaler Belastung am geringsten, 
sondern erst bei etwas höheren Spanungen und Strömen. Die Spannung dient 
dazu, etwaige Oxydschichten zu durchschlagen, der Strom dazu, den Dreck 
"wegzusprengen". Bei Reedrelais sind die nötigen Spannungen und Ströme 
zwar deutlich geringer als bei Relais mit offenen Kontakten, aber 
trotzdem nicht bei Null. Ich würde bei typischen Reedrelais daher mit 
ca. 5V bis 12V und einem Strom von 1mA bis 10mA arbeiten.

Absolutes Gift für einen Relaiskontakt ist jedoch eine hohe kapazitive 
Belastung, da beim Einschalten durchaus sehr hohe Ströme fließen können. 
Selbst ein paar nF direkt am Kontakt können zum Kleben führen.

Unabhängig davon sollte natürlich eine geeignete Eingangsbeschaltung mit 
Tiefpassfilter, Schmitttrigger usw. vorgesehen werden, zzgl. einer 
Entprellung per Timer-Interrupt, nicht durch die Relaiseingänge 
selbst.

von Alex C. (tuxedo0801)


Lesenswert?

Andreas S. schrieb:
> Absolutes Gift für einen Relaiskontakt ist jedoch eine hohe kapazitive
> Belastung, da beim Einschalten durchaus sehr hohe Ströme fließen können.
> Selbst ein paar nF direkt am Kontakt können zum Kleben führen.

Naja, direkte kapazitive Belastungen gibt's bei Fensterkontakten nicht. 
Da geht es nur darum den Status des Fensters (offen/gekippt/verriegelt) 
auf den (KNX-)Bus zu bringen.



> Klar, wenn ich auf die Reed-Kontakte nonstop Vdd gebe, geht da schon
> Strom durch.

Deshalb die gepulste Prüfspannung.

> Wenn ich aber nur alle paar ms für nen paar µs den Pin auf High lege,
> reicht es doch aus, wenn ich darauf achte, daß meine 20mA (kA, was der
> Pin so ab kann) nicht überschritten werden.
> Den Rest kann man optimieren, wenn's funktioniert.
> Und Abrissfunken sind auch eher unwahrscheinlich, da die Zeit, in der
> wirklich Strom fließt, doch arg kurz ist, daß man Das 2x in seinem Leben
> schafft denk.

genau das ist die Begründung für die gepulste Prüfspannung. Ich hatte ja 
schon geschrieben dass damit das Risiko drastisch reduziert wird.

> Kannst Du einen Thread aufmachen, wenn Du von Deinem Kumpel erfahren
> kannst, wie die Treiberstufe eines KNZ-Teilnehmer aussieht?

Du meinst KNX... Nicht KNZ, richtig?

Nun ja, das ist easy. Guckst du hier:
https://knx-user-forum.de/forum/%C3%B6ffentlicher-bereich/knx-eib-forum/diy-do-it-yourself/33016-arduino-am-knx
https://knx-user-forum.de/forum/projektforen/konnekting

Da kannst du dich einlesen und mitdiskutieren.

Mein aktuelles Fazit bisher:

1a) ESD-Schutz durch passende TVS Dioden oder ähnliches
1b) Sofern Strom-mäßig möglich: Optos einsetzen
2) Der beste/flexibelste Schutz gegen Störeinwirkungen (z.b. Induktion 
durch parallel verlaufende Leitungen im Haus) ist immer noch auf der 
Software-seite. Tiefpass und Co. hin oder her.
3) Reed-Relais nicht dauerhaft bestromen, sondern gepulst abfragen um 
die Belastung der Kontakte weitestgehend zu minimieren (war ja gleich zu 
beginn des Threads klar)

von Manfred (Gast)


Lesenswert?

posti schrieb:
> Wenn ich aber nur alle paar ms für nen paar µs den Pin auf High lege,
> reicht es doch aus,
Ich habe gerade eine Überwachung gebaut, die wenig Strom brauchen soll. 
Der Kontakt ist im Betrieb geschlossen / bei Störung offen:

Erstmal definiere ich den Anschluß am AT328 als Ausgang low, dann geht 
der Prof. für 8s schlafen. Aufwachen, Pin als Input mit Pullup 
definieren, Pegel angucken, wieder als Ausgang_Low und nächste Pause.

Hätte ich Signalstörungen zu befürchten, würde ich bei positiver 
Erkennung in eine Schleife gehen und dreimal nachfassen, das sehe ich 
als selbstverständlich, wenn man solche Systeme macht.

Ein Fenster samt bedienendem Menschen ist ein mechanisch träges Gebilde, 
auch da genügt eine Abfrage alle paar Sekunden.

----

An anderer Stelle hole ich analoge Werte, samt Zuschaltung des 
(stromfressenden) Teilers brauche ich 3µs. Wenn der Grenzwert erreicht 
ist, gehe ich in eine Schleife und hole 10 Werte mit 2ms Abstand, 
Oversampling. Nur, wenn dieser weitere zwei Male zutreffend ist, wird 
die Aktion gestartet.

von Alex C. (tuxedo0801)


Lesenswert?

"Alle paar Sekunden" prüfen ist je nach Einsatzzweck zu wenig. Es gibt 
im KNx Umfeld viele Echtzeit-Visualisierungen. Da wäre es störend wenn 
am Display oder an der Kontroll-LED erst nach z.b. 8 sek (im Worst-Case) 
der Status entsprechend kippt.

Aber man kann hier ja durchaus interrupt-basiert arbeiten und nebenher 
die Prüfspannung vom µC aus pulsen. Jedesmal wenn ein interrupt 
ausgelöst wird schauen ob in diesem Moment auch die Prüfspannung 
angeschaltet war. Das dann 3x mit kleinem Zeitversatz machen und schon 
müsste man die Störungen los sein.

Ggf. kann man sich auch mit ein wenig extra HW wie dem MAX6818 das leben 
in Sachen "Störungen rausfiltern" leichter machen. Der "entprellt" schon 
mal grundlegend, timer-basiert.

von posti (Gast)


Lesenswert?

Hi

Meine Erfahrungen bei KNX sind eh, daß es 'ne Sekunde braucht', bis was 
passiert.
Nagelt mich jetzt nicht auf diese Sekunde fest, es ist aber eben nicht 
'sofort'.

Welches Schaltvermögen haben die Fensterkontakte?
Es gibt Drehzahl-Messer auf Reed-Kontakt-Basis - da kommt der Magnet 
schon recht oft vorbei.
Wenn ich Das auf ein Fensterflügel umlege, wird Dieser manch ein Jahr 
täglich mehrfach benutzt werden dürfen, bevor wir auch nur in die Nähe 
der garantierten Schaltspiele kommen.

Hatte gerade nachgedacht, ob eine KSQ mit wenigen mA Vorteile bringt, 
aber unterm Strich ändert sich nur der 'Standby-Strom' - in die falsche 
Richtung - und Mehr als mit dem Impuls bekommen wir auch nicht erfasst.

Zur Abtastrate:
Speziell in diesem Fall ist eine 'sofortige' Visualisierung unnötig, 
aber klar, es gibt auch andere Einsätze, wo der 16-fach-Digital-In 
schnellere oder zeitlich kritischere Signale erfassen können muß.


Die KNX-Links habe ich mir weg gepackt - sind sogar Deutsch :)
Was hab ich gegoogelt - ja, im elitären KNX-Club anmelden, um mitspielen 
zu dürfnen, aber dazu bestand nun nicht so das Interesse - mir ging es 
nur um die Endstufe - wo aber auch die Dozenten auf den Lehrgängen 
bisher auch Nichts zu wussten - dafür waren Die in der Programmierung 
aber fit!

Danke Dir


MfG

von Jens P. (picler)


Lesenswert?

Alex C. schrieb:
> Fehler auf der langen Leitung (indizierte Fremdspannung und dergleichen)
> filterst du dann rein per SW?

Durch die 10-20mA Strom durch die LED hast du schon eine ziemlich 
niederohmige Stromschleife. Bis sich da irgendwelche Fremdspannung 
induziert, dauert es etwas. Außerdem mache ich bei solchen Anwendungen 
in den meisten Fällen bei der Abfrage des I/O-Pins eine Mehrfachabfrage. 
Der Pegel muss über einen definierten Zeitraum gleich sein, erst dann 
bewirkt eine Änderung was.

von Alex C. (tuxedo0801)


Lesenswert?

Also bei mir im KNX System dauert nicht's "ne Sekunde". Das geht 
"instant". wenn's mal hoch kommt sind das 300-400ms. Aber gut, anderes 
Thema.

Wenn es um den KNX Treiberbaustein geht:

OnSemi NCN5120. Im Datenblatt steht alles was du wissen musst. Die 
Beschaltung ist easy. Gibt noch weitere Hersteller die die gleiche 
Funktion in einem sehr ähnlichen Chip haben.
Software gibt's u.a. hier: https://github.com/KONNEKTING
Aber das hättest du beides in 5min "lesen" (ohne Registrierung im 
"elitären Forum" (nein, kein Club) rausfinden können.

Nun aber genug offtopic ;-)

von Alex C. (tuxedo0801)


Lesenswert?

Jens P. schrieb:
> Durch die 10-20mA Strom durch die LED hast du schon eine ziemlich
> niederohmige Stromschleife. Bis sich da irgendwelche Fremdspannung
> induziert, dauert es etwas.

Danke für die Rückmeldung.

10-20mA pro Opto-LED ist leider in unserem Fall nicht möglich, da nur 
50mA zur Verfügung stehen. Zumindest nicht, wenn man eine Prüfspannung 
für alle 16 Eingänge gleichzeitig hat. Das müsste dann schon ein "low 
current" Opto sein (müsste ich mal schauen ob's sowas gibt?!), und da 
trotzdem am besten noch pulsen und mit einem Elko puffern.

von Joachim B. (jar)


Lesenswert?

man kann ja um Strom zu sparen auch den sinnvollen 10-20mA Prüfstrom bei 
Bedarf vor dem Messen ein- und hinterher wieder ausschalten.

von Wolfgang (Gast)


Lesenswert?

Alex C. schrieb:
> Der Eingang am µC ist mit einem 470k PullUp auf 3.3V geschaltet. Der
> Reed brückt den Eingang im geschlossenen Zustand mit 47k auf Masse.

Dann streiche zur Verbesserung des Störbstandes mal zwei Nullen.

Alex C. schrieb:
> Tiefpass-Filter: Das krieg ich in Software auch hin. Lässt sich dann
> auch schneller mal ändern wie den Tief-Pass in HW zu ändern.

Mit einem HW-Tiefpass kannst du deutlich besser verhindern, dass kurze 
Störpulse überhaupt zur Überschreitung der Schaltschwelle des Eingangs 
führen.

von Alex C. (tuxedo0801)


Lesenswert?

Joachim B. schrieb:
> man kann ja um Strom zu sparen auch den sinnvollen 10-20mA Prüfstrom bei
> Bedarf vor dem Messen ein- und hinterher wieder ausschalten.

ich will dir nicht zunahe treten: Aber hattest du den Thread ganz 
gelesen? Wurde ja schon mehrfach erwähnt die Prüf-Spannung zu pulsen...

Und es geht nicht nur rein um das Strom sparen (in summe auf dauer), 
sondern um den Fakt, dass die Spannungsquelle im Normalfall nur 50mA für 
die gesamte Schaltung liefert. Mit etwas hängen und würgen auch in 
Richtung 100mA. Aber das ist ein anderes Thema.

von Joachim B. (jar)


Lesenswert?

Alex C. schrieb:
> ich will dir nicht zunahe treten: Aber hattest du den Thread ganz
> gelesen?

zum Teil, aber ich lese den Thread nicht bei jeder Antwort komplett neu

meine Antwort war #2 und wenn der TO weiterliest und denkt ist es klar 
das man auch bei 1-20mA Strom sparen kann und nicht mit µA auf 15m 
arbeiten muss.

von Manfred (Gast)


Lesenswert?

Alex C. schrieb:
> Wurde ja schon mehrfach erwähnt die Prüf-Spannung zu pulsen...
>
> Und es geht nicht nur rein um das Strom sparen (in summe auf dauer),
> sondern um den Fakt, dass die Spannungsquelle im Normalfall nur 50mA für
> die gesamte Schaltung liefert.

Man darf sich auch an Statistik versuchen: Bekomme irgendwo eine 
Pseudo-Zufallszahl her und gebe diese als Zeitversatz hinzu - damit soll 
die Wahrscheinlichkeit gleichzeitiger Messungen verringert werden.

von Wolfgang (Gast)


Lesenswert?

Alex C. schrieb:
> Und es geht nicht nur rein um das Strom sparen (in summe auf dauer),
> sondern um den Fakt, dass die Spannungsquelle im Normalfall nur 50mA für
> die gesamte Schaltung liefert.

Wieviele Schalter willst du denn Abfragen. Pro Schalter brauchst du - 
abhängig von deiner Leitung - bestimmt weniger als 10ms (Signale 
ansehen). Wenn du die Abfrageströme sequentiell aktivierst, belastest du 
deine Quelle mit genau einem Schalterstrom und kannst pro Sekunde 
locker mehr als huntert Schalter abfragen.

von KLaus (Gast)


Lesenswert?

Alex C. schrieb:
> Naja, direkte kapazitive Belastungen gibt's bei Fensterkontakten nicht.

Das kann man auch anders sehen:

Wolfgang schrieb:
> Mit einem HW-Tiefpass kannst du deutlich besser verhindern, dass kurze
> Störpulse überhaupt zur Überschreitung der Schaltschwelle des Eingangs
> führen.

MfG Klaus

von Thorsten Legat (Gast)


Lesenswert?

Wurde schon ein Treiber wie Max485 vorgeschlagen?

von Joachim B. (jar)


Lesenswert?

Alex C. schrieb:
> Naja, direkte kapazitive Belastungen gibt's bei Fensterkontakten nicht.

und wie siehts mit den 15m Kabel aus?

Jedes Kabel hat Kapazität manche mehr manche weniger und je länger desto 
mehr.
Kein Wunder das man da mit µA keine besonders schönen Flanken hinbekommt 
und jeder "pups" auf der Leitung stört.

Bei einem Reed Kontakt hat man zwar Zeit für die "Umladung" der 
Kabelkapazität und muss nicht im µs Bereich agieren, aber wie schon 
geschrieben wurde:

Andreas S. schrieb:
> Die Zuverlässigkeit und Alterung von Relaiskontakten ist entgegen der
> intuitiven Annahme nicht etwa be minimaler Belastung am geringsten,
> sondern erst bei etwas höheren Spanungen und Strömen. Die Spannung dient
> dazu, etwaige Oxydschichten zu durchschlagen, der Strom dazu, den Dreck
> "wegzusprengen". Bei Reedrelais sind die nötigen Spannungen und Ströme
> zwar deutlich geringer als bei Relais mit offenen Kontakten, aber
> trotzdem nicht bei Null. Ich würde bei typischen Reedrelais daher mit
> ca. 5V bis 12V und einem Strom von 1mA bis 10mA arbeiten.

: Bearbeitet durch User
von Alex C. (tuxedo0801)


Lesenswert?

Joachim B. schrieb:
>
> meine Antwort war #2 und wenn der TO weiterliest und denkt ist es klar
> das man auch bei 1-20mA Strom sparen kann und nicht mit µA auf 15m
> arbeiten muss.

Logo, aber ich hatte ja auch erwähnt dass es nicht meine Schaltung ist 
und dass ich vielmehr allgemein mehr Info zum lösen den Problems 
bräuchte. Und da kam ja auch schon einiges...

Manfred schrieb:
> Man darf sich auch an Statistik versuchen: Bekomme irgendwo eine
> Pseudo-Zufallszahl her und gebe diese als Zeitversatz hinzu - damit soll
> die Wahrscheinlichkeit gleichzeitiger Messungen verringert werden.

"gleichzeitiger messungen" ist das Stichwort. Aktuell sind individuelle 
Messungen nicht vorgesehen. Es gibt eine Prüfspannung für alle 
Eingänge/Kontakte.

Wolfgang schrieb:
> Wieviele Schalter willst du denn Abfragen. Pro Schalter brauchst du -
> abhängig von deiner Leitung - bestimmt weniger als 10ms (Signale
> ansehen). Wenn du die Abfrageströme sequentiell aktivierst, belastest du
> deine Quelle mit genau einem Schalterstrom und kannst pro Sekunde
> locker mehr als huntert Schalter abfragen.

Aktuell sieht die Schaltung 16 Eingänge/Kontakte vor. Dass man deutlich 
besser mit dem Strom haushalten kann wenn man die Eingänge inividuell 
mit der Prüfspannung versorgen könnte leuchtet ein. So schlau war ich 
schon. Das wäre ein Punkt für rev2 der Platine.

KLaus schrieb:
> Alex C. schrieb:
>> Naja, direkte kapazitive Belastungen gibt's bei Fensterkontakten nicht.
>
> Das kann man auch anders sehen:

Die Kapazität durch die Leitung ist für mich eher "indirekt" (aber 
dennoch existent).

Thorsten Legat schrieb:
> Wurde schon ein Treiber wie Max485 vorgeschlagen?

Nein, wieso auch? Oder wie steht ein RS-485/RS-422 Treiber im 
Zusammenhang mit dem Abfragen von Fensterkontekten über eine 15m Leitung 
quer durch's Haus? Ah, vielleicht willst du darauf hinaus, dass man weg 
vom Hutschienen Binäreingang, hin zum UP-Dosen-Binäreingang geht?! Okay, 
aber da man schon auf dem KNX Bus hängt, würde man das gleich mit KNX 
erschlagen statt auf RS-485 zu setzen.
Aber so eine dezentrale Lösung ist nicht Teil der Lösungsfindung. Es 
geht um ein Hutschienengerät.

Ich fasse also nochmal zusammen:

* Schutz für den Pin am µC... am besten mit einem Opto
* Da nur rund 50mA zur Verfügung stehen, und hier und da noch eine 
Status-LED vorhanden sein soll: Am besten die Prüfspannung für jeden 
Kontakt individuell einschaltbar machen. Prüf-Strom zwischen 1 und 20mA 
sollte passen.
* Dazu die Prüfspannung "pulsen" um die Reed-Kontakte weiter zu 
entlasten und deren Lebnsdauer zu erhöhen
* Ein Tiefpass/entprellen in HW schadet nicht, gefolgt von diversen 
Kniffen in SW (wie weiter oben schon erwähnt) die Störimpulse 
aussortiert

Im Großen und Ganzen müsste es das gewesen sein (außer ich hab etwas bei 
den vielen Antworten übersehen).

von Thorsten Legat (Gast)


Lesenswert?

Alex C. schrieb:
> Nein, wieso auch? Oder wie steht ein RS-485/RS-422 Treiber im
> Zusammenhang mit dem Abfragen von Fensterkontekten über eine 15m Leitung
> quer durch's Haus? Ah, vielleicht willst du darauf hinaus, dass man weg
> vom Hutschienen Binäreingang, hin zum UP-Dosen-Binäreingang geht?!

Nö. Damit könnte man dein fickeriges Signal robust differenziell 
übertragen.

von Alex C. (tuxedo0801)


Lesenswert?

Thorsten Legat schrieb:
>
> Nö. Damit könnte man dein fickeriges Signal robust differenziell
> übertragen.

Das wäre auch schon mit dem KNX-Bus möglich. Aber der Anwendungsfall 
sieht vor, dass das "Gerät" im Verteilerschrank sitzt.

von Alex C. (tuxedo0801)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Alex C. schrieb:
> Normalerweise hat man nur rund 50-100mA bei 3.3-5V... Bei 16
> Eingängen kann sich das schnell aufsummieren).

Alex C. schrieb:
> Der Eingang am µC ist mit einem 470k PullUp auf 3.3V geschaltet.

Die 470k sind ganz großer Mist.
Nimm 3,3k, das sind nur max 16mA aber um den Faktor 142 störfester.
Und nochmal 10k in Reihe zum MC-Pin, um den MC zu schützen.

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.