Forum: Mikrocontroller und Digitale Elektronik K-Line Interface SN65HVDA


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Palmö (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (souleye) Benutzerseite


Bewertung
1 lesenswert
nicht 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.

: Bearbeitet durch User
von Palmö (Gast)


Bewertung
-2 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Hast denn die GNDs (Mopped, deine Schaltung) gebrückt?

von Soul E. (souleye) Benutzerseite


Bewertung
1 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die prellen garantiert nicht.

von Palmö (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Keiner eine Idee?

von Bastian W. (jackfrost)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.