Forum: Mikrocontroller und Digitale Elektronik K-Line Interface SN65HVDA


von Palmö (Gast)


Angehängte Dateien:

Lesenswert?

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

von H.Joachim S. (crazyhorse)


Lesenswert?

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.

von Soul E. (Gast)


Lesenswert?

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.

von Palmö (Gast)


Lesenswert?

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 :-)

von Gabi (Gast)


Lesenswert?

Hast denn die GNDs (Mopped, deine Schaltung) gebrückt?

von Soul E. (Gast)


Lesenswert?

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.

von Palmö (Gast)


Angehängte Dateien:

Lesenswert?

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!

von pegel (Gast)


Lesenswert?


von pegel (Gast)


Lesenswert?

Die prellen garantiert nicht.

von Palmö (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Palmö (Gast)


Lesenswert?

Keiner eine Idee?

von Bastian W. (jackfrost)


Lesenswert?

Bei dem Bild ist die K-Lie immer auf GND.

C an den Bus, E an GND und B über einen Widerstand an Init


Gruß JackFrost

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

von Palmö (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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) ?

: Bearbeitet durch User
von Palmö (Gast)


Lesenswert?

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.

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.