Halloechen, ich habe ein kleines Problem das ich einen entfernten Schalter einlesen muss. Die Entfernung betraegt ca. 15m. Leider gibt es die Schaltung schon, so dass ich nur noch sehr begrenzte Moeglichkeiten habe. OK, die Schaltung sieht wie folgt aus: 3.3V rail vom einlesenden Eingang, danch eine Doppel BAT54 mit einem Optocoupler parallel zu einer der BAT54. Danach einen Wiederstand von 1kOhm, dann kommmt schon der Schalter (an J2) und dann zurueck zum GND des einlesenden Geraetes. Genaueres im Anhang... Wie wahrscheinlich zu erwarten ist macht die Schaltung was sie will.. Oft ist der Schalter geschlosen, aber der uP erkennt Schalter geoeffnet... und umgekehrt... Hat jemand vieleicht eine Idee was man machen koennte/helfen koennnte?
> Wie wahrscheinlich zu erwarten ist macht die Schaltung was sie will.. Die Schaltung ist zwar unnötig aufwendig, aber grundsätzlich sollte sie schon funktionieren... Wohin schaltet der Schalter? Gegen GND? Wozu ein OK, wenn das Potential sowieso das selbe ist? Und der Dateiname des Bildes ist damit auch nur Lug und Trug... Aber ich würde sagen: mach einfach mal eine Brücke über die D4 und/oder den R12 wesentlich niederohmiger. Denn die Diode hat 0,7V Spannungsabfall, der OK 1,5V, damit bleiben für den Widerstand 0,9V, was in einem LED-Strom von 0,9mA resultiert. Das ist für einen OK im Schalterbetrieb deutlich zu wenig...
> dann kommmt schon der Schalter (an J2) und dann zurueck zum GND > des einlesenden Geraetes. Ich würde eher sagen, du verschleppst dir den GND deines Gerätes in der halben Welt und koppelst jede Menge Störungen ein...
Danke erstmals... Ja ja... ich weiss es gibt da gar keine Isolation ... Die BAT54 ist eine Doppel Schottky Barrier Diode und hat nur 0.35V Spannungsabfall... was die Sache aber auch nicht wesentlich besser macht. Ich werde einfach mal den Widerstand verringern. Das mit den eingekoppelten Stoerungen ist wahrscheinlich korrekt, speziell unter dem Gesichtspunkt das die Schaltung im Automobilbereich funktionieren soll. Jedoch dachte ich immer das verdrillte Draehte und Leitungsfuehrung (zum Sensor/Schalter und zureuck) immer das Optimum waere. Klar man kann noch schirmen... Aber wie gesagt, ich darf nicht viel veraendern... Management! Die Schalter sind nicht ideal... kein Gold, viel zu geringer Wetting Current, 50000 Lifecycle obwohl mit 2000000 mal zu rechnen ist.. usw usw. Trotzdem vielen Dank fuer eure Hilfe..
>speziell unter dem Gesichtspunkt das die Schaltung im Automobilbereich >funktionieren soll. Soll ich jetzt lachen? >Aber wie gesagt, ich darf nicht viel veraendern... Management! Dann tritt den Deppen in den Arsch!
Dumm gelaufen wenn man erst vor einer Woche in der Firma angefangen hat :) Naechste Woche kann ich einen "Problembus" besuchen. Hat jemand vieleicht Tips was man dort vor Ort so alles analysieren koennte... Klar sind das Deppen... Automotive (24V) und dann wird nur gegen GND geschaltet... oder halt Float. Ich habe das nicht so kennengelernt... Dann diese "Isolierung"... wozu? Kein Bodycomputer, Tuersteteuergeraet, Rear Seat Entertainment, Seat Controller hat Optoisolierung.. soweit ich das kenn. Klar wuerde ich gern ein paar Automotive spezifische Komponenten (Kontaktmonitor, intelligent HS/LS Switches usw ) einfuehren aber dieses tolle Design ist gerade fertiggestellt worden und der Stolz des Managements (vor allem muessten einige Herren sich dann eingestehen das etwas falsch gelaufen ist...)... Ja das Management hofft immer noch auf ein Wunder... denn es gibt Busse bei denen das wunderbar funktioniert und dann ploetzlich gibt es sehr viele Fehlermeldungen und dann wieder wochenlang Ruhe. Und das Ganze ohne erkennbaren Zusammenhang... Die machen halt lieber tolle Statistiken...
Hallo, Schmeiß den Optokoppler raus, der macht nur Ärger (temperaturabhängiges CTR) Deine Chefs müßten doch auch einsehen daß mit einem kostengünstigeren Design mehr zu verdienen ist und ihr Arbeitsplatz länger erhalten bleibt. Du brauchst: 1. Direkt am Stecker einen EMV-Kondensator ans Metallgehäuse Dimensionierung entsprechend den EMV-Tests. (Startwert 1-10nF) 2. einen (oder mehrere) Pull-up Widerstand der den Kontakt(reinigungs) Strom aufbringt 3. Einen Serienwiderstand vom Steckerpin zum Prozessorpin als Strombegrenzung im Fehlerfall (Kurzschluß nach Batterie) bzw. EMV-Impulse. Fehler-Strom <= 0.5 .. 1mA je nach Prozessor 4. einen Filterkondensator direkt am Prozessorpin gegen Signal Gnd (bildet zusammen mit dem Serienwiderstand einen Tiefpaß Zeitkonstante möglichst > 1ms. 5. Optional noch einen Widerstand parallel zum Filterkondensator um die Schaltschwelle des Prozessoreingangs noch etwas nach oben zu schieben. Der Schalter sollte möglichst nicht über Karosseriemasse angeschlossen sein sondern der Masseanschluß vom Steuergerät als 2-Draht-Leitung angeschlossen werden. (Masseversatz). Und glaube nicht daß der Optokoppler irgendwelche Störungen herausfiltert. Bei ESD-Störungen leuchtet bei entsprechender Einkopplung die Diode und schaltet den Transistor durch falls keine Entstörmaßnahmen beidseitig des Optokopplers vorhanden sind. (Doppelter Aufwand).
Danke fuer die sehr ausfuehrlichen Tips... hoert sich fast so an als wenn du aus der Automotive Brache kommen wuerdest... :) Habe da noch eine Frage mehr in Richtung SW... Unser Processor macht gerade mal 3 Samples und bildet dann darueber den Mittelwert... sind 3 Samples nicht ein wenig wenig.. Gibt es da einen Daumenwert... Ich haette gedacht das mindestens 10 Samples herrangezogen werden sollten... Danke nochmals
Hallo, was heißt hier 3 Samples mit Mittelwert bei einem Digitalpin? Ich hoffe du liest die 3 Samples nicht unmittelbar hintereinander ein. Also ich kenne Entprellung von Digitalpins nur so: 1. Die Abtastung erfolgt in festen Zeitrastern von so 10 - 20 ms (Kürzer macht wenig Sinn wegen Kontaktprellen und Störimpulsen) 2. Die Übernahme des neuen Zustandes erfolgt erst wenn x mal hintereinander (ohne Unterbrechung) der neue Zustand abgetastet wurde. (also nix mit "Mittelwert") 3. x ist mindestens 3, richtet sich nach der Anwendung. (parametrierbar?) Zum Teil werden für steigende und fallende Flanke unterschiedliche Werte verwendet. Wenn du eine Tastatur entprellst bei der Die Tasten zurückspringen wirst du kaum Entprellzeiten mit 10*20ms haben wollen, da sonst keine der Tasten erkannt werden würde. Wenn Du natürlich alle 1ms ein Sample generierst und das Kontaktprellen schon bis zu 5 ms dauert, können 10 Abtastungen auch zu wenig sein. Ich gehe mal von einer sinnvollen Mindestentprelldauer von 40 - 100 ms aus. Hängt natürlich davon ab was am Eingang physikalisch als sinnvolle Schaltfrequenz dranhängt. Ein Endschalter an einer schweren Mechanik hat sicher eine andere als eine Schaltwippe. 4. Sicherheitsrelevante Signale sind entweder redundant ausgeführt oder werden mit anderen Signalen plausibilisiert.
Daniel Duesentrieb schrieb: > Habe da noch eine Frage mehr in Richtung SW... Unser Processor macht > gerade mal 3 Samples und bildet dann darueber den Mittelwert. Das ist keine wirksame Entprellmethode. Das ist einfach nur Quatsch. Zum Entprellen mußt Du warten, bis n* Samples den gleichen Wert haben und dieser entgegengesetzt dem bisher gespeichertem Entprellzustand ist. Und natürlich müssen die Samples in einem vernünftigen Entprellintervall erfolgen, z.B. 5..50ms (bei n = 4). Es gibt da ne hübsche Routine, die bei minimalstem Aufwand eine der Busbreite der CPU entsprechende Anzahl Eingänge parallel entprellt, also 8, 16 oder 32. Auch wenn ein Optokoppler vollkommen nutzlos ist, wenn man beide Seiten verbindet, wird das nicht der Fehler sein. Sondern eindeutig die Software. Peter
@Daniel Duesentrieb: Bist du sicher das es für die Serienreife in der Automobilindistrie ist? Wenn ja, wie machst du SH2GND,SH2BAT,OL - Diagnose mit dieser Schaltung, also mit DTCs wird da wohl nichts. Oder kannst du das Signal noch plausibilisieren? Zur Abtastung: Kenne es auch nicht anders, als wie es von Anja und Peter Dannegger vorgeschlagen wurde. Gruss
Sorry falsch ausgedrueckt... Habe jetzt auch noch mal die SW Leute gefragt... also es wird alle 500ms ein digtales Sample (1 oder 0) genommen, dann geschaut ob mindestens 3 Samples hintereinander den gleichen Zustand haben und dann entsprechend entschieden... Hoffe das habe ich so richtig wiedergegeben. Mir erscheint jedoch das Intervall von 500ms seltsam... Ach ja noch etwas, die Elektronik die wir haben ist nicht direkt fuer die Automobilindustrie ... wir ruesten Busse/Taxis mit Intelligent Transport Systems (ITS) aus und bewegen uns daher schon nah an Automotive Forderungen... Das Problem was ich sehe ist das die Firma sich eher als Systemintegrator sieht .. also Dinge nur dazukauft. 75% aller Angestellten machen Desktop/Server SW. Eingene Entwicklung soll so klein wie moeglich gehalten werden... > Was ist denn SH2GND, SH2BAT,OL - Diagnose mit dieser Schaltung, > also mit DTCs wird da wohl nichts.... Versteh nur Bahnhof? Sorry... to GND, to BAT aber was bitte schoen... DTC??? Vielen Dank fuer all die Hilfe und Geduld.
Hallo, > Dumm gelaufen wenn man erst vor einer Woche in der Firma angefangen hat > :) Naechste Woche kann ich einen "Problembus" besuchen. Hat jemand > vieleicht Tips was man dort vor Ort so alles analysieren koennte... Was ich mir anschauen würde: - Welches potential "Sieht" deine Schaltung am Eingang. (also genau die beiden Pins verwenden wo der Schalter angeschlossen ist) - Welches Potential ist am Schalter vorhanden. - Gibt es hierbei Differenzen (Masseversatz) - Wie ist der Schalter tatsächlich angeschlossen (Mehrfachanbindungen an Masse oder sauber sternförmig an deiner Schaltung) - Gibt es Störimpulse am Eingang deiner Schaltung (Oszi für Übersprechen im Kabelbaum) - Wird das Verhalten besser wenn ein 10nF/200V Kondensator am Eingang gegen (Gehäuse-) Masse angeschlossen wird. Ich nehme mal an daß ihr noch keine EMV-Prüfungen durchgeführt habt. Alles was direkt ungefiltert am Stecker hängt sollte mindestens für 10-fache Bordnetzspannung (also mindestens 200V Kurzzeitbelastung) ausgelegt sein. Da kann es für die 30V-Diode auch mit 1K Vorwiderstand schon knapp werden.
Daniel Duesentrieb schrieb: > Sorry falsch ausgedrueckt... Habe jetzt auch noch mal die SW Leute > gefragt... also es wird alle 500ms ein digtales Sample (1 oder 0) > genommen, dann geschaut ob mindestens 3 Samples hintereinander den > gleichen Zustand haben und dann entsprechend entschieden... Also erst nach 1,5s reagiert die Software auf den Kontakt. Das ist ja ne halbe Ewigkeit. Für ne Taste sind solche Ewigkeiten ungeeignet, die hat der Benutzer längst losgelassen. Eine Taste sollte spätestens nach 300ms reagieren. Gibts nen Grund, so extrem langsam zu sein? Peter
Peter Dannegger schrieb: > Daniel Duesentrieb schrieb: >> Sorry falsch ausgedrueckt... Habe jetzt auch noch mal die SW Leute >> gefragt... also es wird alle 500ms ein digtales Sample (1 oder 0) >> genommen, dann geschaut ob mindestens 3 Samples hintereinander den >> gleichen Zustand haben und dann entsprechend entschieden... > > Also erst nach 1,5s reagiert die Software auf den Kontakt. > Das ist ja ne halbe Ewigkeit. > > Für ne Taste sind solche Ewigkeiten ungeeignet, die hat der Benutzer > längst losgelassen. Eine Taste sollte spätestens nach 300ms reagieren. > > Gibts nen Grund, so extrem langsam zu sein? Ich hab den Thread jetzt gerade nur überflogen, aber hat er nicht gesagt dass er einen Schalter in der Türe hat? Ich denke dann passt das schon, weil keiner macht die Autotüre innerhalb 1,5s auf und wieder zu ;-). Gruß, Steffen
Steffen O. schrieb: > Ich hab den Thread jetzt gerade nur überflogen, aber hat er nicht gesagt > dass er einen Schalter in der Türe hat? Das habe ich wohl überlesen. Dann könnte aber hinzukommen, daß im Auto oftmals extrem billige Kontaktmaterialien verwendet werden, die eine hohe Betätigungsspannung benötigen (zum Durchschlagen der Oxydschicht oder Verschmutzungen). Die 3,3V - LED - Diode ergeben etwa nur 1V, das könnte deutlich zuwenig sein. Kontakte im Auto sollten mindestens mit 12V gelesen werden. D.h. an den Eingang muß noch ein Pullup (2,2k) gegen 12V. Peter
Danke... Nein keine Ahnung warum 500ms... ich finde das auch lang... die Tueren sind pneumatisch, das geht schon relativ flink ... Die SW Leute sind mit einem Single Board Computer und Windows CE unterwegs... Koennte mir vorstellen das HW einlesen nicht so einfach ist... :) Ja die Kruecke mit dem geringen Kontaktstrom ... alles schon kommuniziert, aber Management ist da taub... Die HW wurde von jemanden konstruiert der soetwas nicht kann und heute relativ weit oben sitzt...
Mit dieser Art von Softwareseitigem Entprellen haben wir gute Erfahrung gemacht. gruß Jan
Hallo, ist viel zu aufwendig. falls steigende und fallende Flanke in der Entprellung gleich sind würde ich folgendes nehmen: #define Limit 3 KeyNew = ((Port.Key and BitMask) != 0); if (KeyNew == KeyDeb) { KeyCtr = 0; } else { KeyCtr ++; if (KeyCtr >= Limit) { KeyNew = !KeyNew; KeyCtr = 0; } }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.