Gute Abend,
ich versuche mich derzeit an einem K-Line Bus an meinem Motorrad. Ziel
ist es später mal ein paar Daten vom Steuergerät abzurufen.
Ich hab mir also ein kleinen Aufbau mit einem Arduino Uno und dem
Interface SN65HDVA195 gemacht. Im Anhang findet ihr die Schaltung.
Die initialisierung soll wie folgt ablaufen:
1. K-Line für 70ms auf „Low“ setzen
2. K-Line für 120ms auf „High“ setzen
3. „Wakeup“ - Nachricht FE04FFFFhex senden
Problem ist dass das "Low" setzen nicht klappt. Hab ich einen Denkfehler
mit dem Optokoppler?
Danke und Grüße
Wozu soll der Optokoppler sein?? Nach deinem Prinzip würde auch ein
stinknormaler npn-Transistor reichen.
Warum machst du es nicht übder dir TxD-Leitung des transceivers?
Einfach per Pinwackeln, bevor die UART den Pin bekommt? Oft geht auch
die Reizung mit einem Byte sehr niedriger Baudrate.
H.Joachim S. schrieb:> Wozu soll der Optokoppler sein?? Nach deinem Prinzip würde auch ein> stinknormaler npn-Transistor reichen.
Sehe ich auch so. Wobei die Beschaltung des Optokopplers jetzt auch
nicht verkehrt aussieht.
> Warum machst du es nicht übder dir TxD-Leitung des transceivers?
Weil dann der dominant timeout zuschlägt. Wenn TxD zu lange low ist
vermutet der Transceiver einen abgestürzten Microcontroller und schaltet
den Sendepfad ab. Dieses Feature haben aber nicht alle LIN-Transceiver.
Den hier verwendeten Typen kenne ich nicht. Beim TJA1021 beträgt tdom
27..70 ms, beim TLE7259-2 6..20 ms, beim ATA6663 40..85 ms. Reicht also
in allen drei Fällen für die geforderten 70 ms nicht aus.
soul e. schrieb:> Sehe ich auch so. Wobei die Beschaltung des Optokopplers jetzt auch> nicht verkehrt aussieht
weil ich beim Optokoppler eine perfekte galvanische Trennung habe,
anders als beim Transistor?!
Aber danke für die Tipps, dann muss ich meinen Aufbau wohl nochmals
überprüfen. Ich vertraue diesen Breadboards eh keinen Meter :-)
Palmö schrieb:> weil ich beim Optokoppler eine perfekte galvanische Trennung habe,> anders als beim Transistor?!
So wie der Optokoppler auf dem oben angehängten Bild beschaltet ist hast
Du keine galvanische Trennung. Pin 2 und 4 sind verbunden. Der
Optokoppler dient nur als (langsamer) NPN-Transistor.
Für eine galvanische Trennung müssten EN, RxD und TxD ebenfalls isoliert
werden. Der LIN-Transceiver wird dann aus dem Fahrzeug versorgt, der
Microcontroller aus einer separaten Batterie. Bringt aber nur bei einem
mobilen Tester Vorteile, nicht bei einem Festeinbau.
soul e. schrieb:> So wie der Optokoppler auf dem oben angehängten Bild beschaltet ist hast> Du keine galvanische Trennung
Muss ich dir vollkommen Recht geben, sorry!
Ich hab den Fehler nun auch gefunden, das Interface hat einen Pullup der
mir ständig die Versorgungsspannung auf den Bus legt.
Also hab ich es nun mit einem Signalrelais als Wechsler versucht und
Teilerfolge erzielt (siehe Anhang).
Das Problem ist nun nur noch das Prellen das sich über ca. 1ms zieht
(siehe Anhang).
Da bleibt mir dann aber auch nichts anderes übrig als mir was aus
Flip-Flops zu basteln?! Oder Sollte ein Kondensator der die 2ms
überbrücken kann ausreichen?
Danke!
Hallo zusammen,
ich muss das Thema nochmal kurz aufrollen. Bevor ich das ganze jetzt mit
Halbleiterrealis löse....Ist es möglich das ganze wie im Anhang zu sehen
mit einem Transistor zu lösen? Ich schalte quasi dauerhaft durch bis auf
die Initialisierungssequenz.
In wie weit darf man den so einen BUS überhaupt belasten?
Und ja, an der Basis fehlt der Vorwiderstand... :)
Vielen Dank!
Palmö schrieb:> Keiner eine Idee?
Warum machst du es nicht einfach mit 2xBC337 und 1xLM2903 ?
Damit kannst du dann auch L_Line steuern.
Unser erstes Exemplar vor 18 Jahren auf Lochraster aufgebaut,
funktioniert immer noch, unzählige FIATs und VWs damit getestet.
Bastian W. schrieb:> C an den Bus, E an GND und B über einen Widerstand an Init
das funktioniert nicht da mir das Interface immer die 12V auf den Bus
legt. Die K-line darf dabei also nicht mit dem Interface verbunden sein.
Marc V. schrieb:> Warum machst du es nicht einfach mit 2xBC337 und 1xLM2903 ?>> Damit kannst du dann auch L_Line steuern.
Wieso soll ich jetzt das Rad neu erfinden? Die Schaltung hat mit dem
"normalen" Relais schon komplett funktioniert, außerdem hab ich keine
L-Line.
Ich habs jetzt noch mit einem Halbleiterrelais versucht (Siehe Anhang).
Aber anscheinend hab ich wieder nen Denkfehler drin....
Wenn ich Spannung anlege (über INIT - 3,3V) sind immer beide Ausgänge
geschalten. Ziehe ich die Verbindung von Pin 6 zu Masse ab schaltet das
Relais korrekt....hä?
Es handelt sich dabei um das AQW610S.
Danke euch!
Palmö schrieb:> Marc V. schrieb:>> Warum machst du es nicht einfach mit 2xBC337 und 1xLM2903 ?>>>> Damit kannst du dann auch L_Line steuern.>> Wieso soll ich jetzt das Rad neu erfinden? Die Schaltung hat mit dem> "normalen" Relais schon komplett funktioniert, außerdem hab ich keine> L-Line.
So, wie du das darstellst, hast du auch keine K_Line:
Palmö schrieb:> Ich hab den Fehler nun auch gefunden, das Interface hat einen Pullup der> mir ständig die Versorgungsspannung auf den Bus legt.
Das soll bei K_Line auch so sein, bzw. stört überhaupt nicht.
Als Pullup ist bei Diagnosegeräten alles zwischen 470 und 560 Ohm
erlaubt und stört 100% nicht.
Von welcher K_Line redest du also (wenn überhaupt) ?
Marc V. schrieb:> So, wie du das darstellst, hast du auch keine K_Line:Marc V. schrieb:> Von welcher K_Line redest du also (wenn überhaupt) ?
Ich versteh nicht ganz was du meinst. Drück ich mich so undeutlich aus?
Ich arbeite an einem Motorrad das nur über eine K-Leitung verfügt.
Die L-Leitung ist soweit ich weiß nur optional zur unidirektionalen
Kommunikation.
In meinen Schaltplänen ist die K-Leitung Symbolisch eingezeichnet.
Wie du vielleicht oben gelesen hast habe ich die Erfahrung gemacht, dass
wenn ich die K-Leitung mit dem Interface verbinde und dann versuche mit
dem Optokoppler das ganze auf Masse zu ziehen bei mir der Effekt
auftritt, dass die K-Leitung eben immer High bleibt. Trenne ich dass
ganze mit dem Relais (Beispiel auch oben), funktioniert es einwandfrei.