Hallo, ich möchte verschiedene Signale (ca. 16) von einem KFZ mit einem MC erfassen. Die Signale können entweder +Batt, GND oder Z-State als Zustand haben. Die Hardware soll möglichst universell aufgebaut sein um alle drei Zustände pro Pin abzudecken. Z-State muss aber vom MC nie Ausgewertet werden bzw. wird als "aus" behandelt. Der MC (5V-Version) hätte intern schaltbare Pull-up/-down Widerstände. Beispiele: Handbremswarnleuchte normal Z, angezogen auf GND Wischwasser normal Z, Signal bei +Batt. Fernlicht: aus GND, an +Batt. usw. Es soll völlig egal sein an welchen Eingangspin ich welches Signal hänge, der MC muss es nur zuverlässig auswerten können. Im KFZ-Bereich sollten die Eingänge min. 15-18V abkönnen und ESD tauglich sein. Ich habe UNI-Direktionale Level Shifter gefunden, die dann aber mit den Z-State Signalen nicht klar kommen. Bi-Direktionale Level Shifter könnten vom MC via Pull-up/-down "vorkonfiguriert" werden um auch die Z-State Zustände zu berücksichtigen aber ich habe keine für 15-18V gefunden. Gibt es solche IC's am besten gleich mit 6-8 Ein-/Ausgängen? Gruß Markus
Dein µC soll also an allen 16 Eingängen High, Low und Z erkennen können. Wenn er Z nicht erkennen könnte, müsste man diesen Zustand entweder mit High oder mit Low gleich setzen. Aber dann könntest du die Leitungen nicht mehr beliebig tauschen. Ich würde Dir empfehlen, einen µc mit 16 analogen Eingängen zu verwenden und davor Spannungsteiler zu schalten (keine Levelshifter) Das ist mit Sicherheit die einfachste und billigste Lösung. In Frage käme zum Beispiel ein STM32F103RBT6 oder STM32F103VET6 Board. Die bekommst du bei Ali Express ab etwa 7 Euro. Alternativ könnte man irgendeinen anderen µC verwenden und dessen analoge Eingänge durch einen seriellen AD Wandler wie den MCP3208 erweitern. Spannungsteiler:
1 | |
2 | 10k 10k |
3 | +3,3V (bzw 5V) o---[===]---+---[===]---| |
4 | | |
5 | In 12V o-----------[===]---+-----||----| |
6 | 10k | 10nF |
7 | | |
8 | o |
9 | ADC Eingang |
Bei Z wird der ADC halbe Versorgungsspannung messen. Bei GND wird er 0V messen. Bei 12V wird er die maximale Spannung (3,3V bzw 5V) messen.
Markus S. schrieb: > Handbremswarnleuchte normal Z, angezogen auf GND > Wischwasser normal Z, Signal bei +Batt. Das ist aber nur für den "nackten" Sensor/Schalter so. Im Auto eingebaut und am Steuergerät angeschlossen liegen da immer Pegel an.
@Stefan: Wie geschrieben muss der MC Z nicht erkennen, es ist halt nur so das manche Sensoren halt hochohmig sind wenn nicht aktiv und nach +Batt oder Masse wenn aktiv. EMV wäre dann auch noch so eine Sache... Deshalb lieber mit nem Level Shifter oder ähnlichem. @Joachim: Das ist zwar richtig, aber genau diese(s) Steuergerät(e) möchte ich ersetzen.
Ich merke dass du mich nicht verstanden hast, ebensiwenig den Schaltungsvorschlag. Aber wer nicht will der hat schon. Du weisst es ja scheinbar besser. Nur warum bittest du uns dann um Hilfe?
Markus S. schrieb: > @Joachim: Das ist zwar richtig, aber genau diese(s) Steuergerät(e) > möchte ich ersetzen. Und du hast den Überblick, was du da tun willst? Das sind meist nur Nebenfunktionen in eh vorhandenen Steuergeräten (ich kann mir bei der Fragestellung gerade nicht vorstellen, dass du die komplett rausschmeissen willst/kannst). Und die neigen dann dazu, Fehlermeldungen zu schmeissen wegen unplausibler Sensorwerte. Schreib mal genauer, was das werden soll.
Die Originaltechnik im KFZ ist aus den 80'er also nix mit Diagnostik etc. Also wie schon geschrieben möchte ich die "Sensoren" gerne direkt mit einem MC auslesen und auswerten. Gibt es einen Bi-Direktionalen Level-Shifter mit mehreren IO und 15-18V Eingängen? Wie z. B. den TXB010x von TI
:
Bearbeitet durch User
Markus S. schrieb: > Gibt es einen Bi-Direktionalen Level-Shifter mit mehreren IO und 15-18V > Eingängen? Wie z. B. den TXB010x von TI Nein, die sind aller nur für Logik (höchstens 5 V) gedacht. Für Open-Drain-I/Os (entspricht LSF010x/TXS010x) könntest du dir das diskret aufbauen, aber TXB wird dann zu komplex.
Bidirektional nutzt dir gar nichts. Was du machen könntest: je Eingang 2 Optokoppler. Verdoppelt aber die Anzahl der nötigen Inputs an deinem MC.
> Verdoppelt aber die Anzahl der nötigen Inputs an deinem MC.
Deswegen habe ich die Nutzung analoger Eingänge empfohlen.
H.Joachim S. schrieb: > Bidirektional nutzt dir gar nichts. Ich würde sagen Bidirektional wäre perfekt gewesen. Beispiel: Handbremse inaktiv hochohmig Z, aktiv GND MC PIN auf Eingang mit internem Pull-up konfiguriert. Ergibt inaktiv dann am MC PIN einen 5V Pegel, der rückwärts über den Bidirektionalen Treiber auf +12V (+Batt) bei inaktiver Handbremse schaltet. Zieht man die Handbremse nun an, wird der Pegel auf GND gezogen und vorwärts über den Treiber der MC Pin auch auf Masse gezogen. Genau so umgekehrt mit einem Z und +Batt Signal, der MC Pin ist dann allerdings intern mit einem Pull-down geschaltet. Wenn man dann noch am Eingang des Bi-Treibers zur KFZ Seite ein 15K in Reihe legt kann nicht mal bei falscher Pull-up/down config was kaputt gehen. Oder sehe ich das Falsch?
:
Bearbeitet durch User
Du vergisst, dass an dem Schalter der Handbremse noch Lampen angeschlossen sind (normalerweise jedenfalls).
Normal schon, aber dann hätte ich mir den ganzen Aufwand mit Z-State eh nicht machen brauchen, da die (Glüh)Lampen dann als Pull-Up/Down fungieren. Ich habe aber die original Steuergeräte bzw. das KI nicht mehr drin, deshalb sind mache Leitung ebent unbeschaltet offen (Z)...
Normalerweise genügen einfache Spannungsteiler die man richtig herum dreht, je nachdem ob der Schalter die Leitung mit dem Plus-Pol oder mit GDN verbindet. Aber du willst es universell haben, also brauchst du Eingänge, die mindestens 3 Zustände erfassen können. Analoge Eingänge können das ganz sicher. Digitale Eingänge können das nur paarweise. Dann brauchst du aber 32 Eingänge für 16 Schalter.
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.