Forum: Mikrocontroller und Digitale Elektronik Low Speed CAN fault tolerant TJA1055 Terminierung


von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Ich hab einen TJA1055 CAN-Transceiver gemäß Datenblatt terminiert mit 
5k6 so hat das bisher im Auto auch immer funktioniert.

Nun möchte zwei für einen Testaufbau miteinander verbinden. Die maximale 
Terminierung darf 500 Ω nicht unterschreiten, und als Gesamtwiderstand 
soll sich ungefähr 100 Ω ergeben. Dazu bräuchte es also mindestens 5 
Teilnehmer, ich hab aber nur 2. Mir erschließt sich allerdings nicht wie 
dieser Wert zustande kommen soll, da die Transceiver nur mit ihren CAN 
Lines und GND verbunden sind, nicht mit ihren RTH, RTL Pins.

Das weitere Problem die Transceiver sind schon verlötet, ich komme an 
die RTH, RTL Pins sehr schlecht ran. Ich kann zwischen CAN-H und RTH 
sowie zwischen CAN-L und RTL meine beiden 5k6 messen, aber zwischen 
CAN-H und GND messe ich nichts.

Ich könnte nun einen dritten Teilnehmer mit 500 Ω hinzufügen und hoffen 
dass es dann geht. Ich würde aber gerne wissen ob es eine andere 
Möglichkeit der Terminierung gibt.

: Bearbeitet durch User
von Martin (tines)


Lesenswert?

Wie und wo genau schließt Du den Transceiver denn an?
Ein bestehender Bus im Auto sollte schon an beiden Enden mit 120Ω 
terminiert sein.

Die Widerstände beim TJA1055 an RTL und RTH scheinen ja nur im 
Fehlerfall benutzt zu werden, wenn ich das Datenblatt richtig verstehe.

von Daniel F. (foxi_the_daywalker)


Lesenswert?

Hi,

Martin schrieb:
> Ein bestehender Bus im Auto sollte schon an beiden Enden mit 120Ω
> terminiert sein.

Ich kam mir schon alt vor, weil ich einfach davon ausging, dass man an 
beiden Enden zwischen CANH und CANL je einen Widerstand (120 Ohm) macht.

von Alexander (alecxs)


Lesenswert?

Die Terminierung mit 120 Ω zwischen den CAN-Lines trifft hier leider 
nicht zu, deswegen die Frage.

von Rainer W. (rawi)


Lesenswert?

Daniel F. schrieb:
> ... dass man an beiden Enden zwischen CANH und CANL je einen Widerstand
> (120 Ohm) macht.

Wo sollen die Abschlusswiderstände auch sonst hin.
Das hat nichts mit Mikrocontrollern und Digitaltechnik zu tun, sondern 
gehört zu HF: Um Reflektionen am Leitungsende zu unterbinden, muss die 
Leitung mit der Leitungsimpedanz abgeschlossen werden.
Standardmäßige 120 Ω passen gut genug für Zweidrahtleitungen.

von Alexander (alecxs)


Lesenswert?

Martin schrieb:
> Wie und wo genau schließt Du den Transceiver denn an?
> Ein bestehender Bus im Auto sollte schon an beiden Enden mit 120Ω
> terminiert sein.

Es ist für den Testaufbau kein bestehender Bus verfügbar, nur zwei 
CAN-Transceiver miteinander verbunden. Ich hab Probleme mit der Bitrate 
und möchte deswegen andere Bitraten testen, dazu kann ich nicht ans Auto 
gehen.

Rainer W. schrieb:
> Wo sollen die Abschlusswiderstände auch sonst hin.

Es gibt keine Abschlusswiderstände (siehe Seiten 25 und 62 Application 
Hints)

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Alexander schrieb:
> Es gibt keine Abschlusswiderstände (siehe Seiten 25 und 62 Application
> Hints)

Bei kurzem Bus kann es ohne oder mit nur einem funktionieren. Das ist 
aber nicht der Sinn von CAN. Da geht es meist um längere Strecken.

Ganz allgemein:
https://support.maxongroup.com/hc/en-us/articles/360009241840-CAN-bus-topology-and-bus-termination

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Danke aber der Link passt hier nicht. Ich formuliere es anders. 
Abschlusswiderstände zwischen den CAN-Lines sind nicht zulässig. Das 
würde den Eindrahtbetrieb verhindern, was ja gerade das 
Alleinstellungsmerkmal des FT-CAN ist.

von Martin (tines)


Lesenswert?

Dann mach doch einfach mal bei Deinem Testbus an jedes Ende 120Ω.

von Rainer W. (rawi)


Lesenswert?

Alexander schrieb:
> Dazu bräuchte es also mindestens 5
> Teilnehmer, ich hab aber nur 2. Mir erschließt sich allerdings nicht wie
> dieser Wert zustande kommen soll

Die Hinweise in "Application Hints TJA1055T - Fault-tolerant CAN 
transceiver" Kapitel 9.1 dürften deine Frage beantworten
https://www.nxp.com/docs/en/application-note/AH0801.pdf

> Das weitere Problem die Transceiver sind schon verlötet, ich komme an
> die RTH, RTL Pins sehr schlecht ran.

Für FT-CAN ist das ungünstig

: Bearbeitet durch User
von Florian L. (muut) Benutzerseite


Lesenswert?

FT CAN erwartet schon die üblichen 120Ohm an den Enden des Buses. Nur im 
Fehlerfall kann der TJA1055 in den Eindrahtmodus schalten, wo diese 
Widerstände dann verwendet werden. Die Datenrate darf übrigends maximal 
125kbit/s betragen.

von Alexander (alecxs)


Lesenswert?

Martin schrieb:
> Dann mach doch einfach mal bei Deinem Testbus an jedes Ende 120Ω.

Hab ich probiert geht nicht. Ich hab auch probiert je 470Ω zwischen L - 
VBat und H - GND, L - VCC und H - GND kleiner wollte ich nicht gehen da 
1/4w.

Rainer W. schrieb:
> Die Hinweise in "Application Hints TJA1055T - Fault-tolerant CAN
> transceiver" Kapitel 9.1 dürften deine Frage beantworten

und die Antwort lautet?

von Rainer W. (rawi)


Lesenswert?

Alexander schrieb:
> und die Antwort lautet?

Die kurze Antwort: Stör dich nicht dran.

Die lange Version: "So within systems with less than 4 transceivers it 
is not possible to achieve the termination optimum of 100 Ohm. In 
practice this is typically no problem because such “small” systems will 
have less bus cable lengths compared to bigger networks and thus have no 
problem with a higher total termination resistances."

von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Florian L. schrieb:
> FT CAN erwartet schon die üblichen 120Ohm an den Enden des Buses.

Das macht für mich keinen Sinn, der Bus hat im Low-Power Modus einen 12V 
Pegel. Das wären 200mA bei 60Ω da wäre die Batterie über Nacht leer. Das 
ganze Auto zieht aber nur 15mA.

(Übrigens geil wie sich der Tippfehler durchs Internet zieht, es muss 
ISO 11898-3 heißen)

: Bearbeitet durch User
von Kai B. (kaib) Benutzerseite


Lesenswert?

Für die, die hier mit 120Ohm Terminieren wollen, dass ist bei Fault 
Tolerant bzw. auch Low Speed CAN genannt nicht anzuwenden. CAN != CAN
Die Terminierung funktioniert hier anders! Die Terminierung ist direkt 
an der Transceiver Seite mit z.B. 5,6KOhm umgesetzt und nicht wie man es 
vom HS CAN (ISO 11898-2) kennt mit 120Ohm am jeweiligen Bus Ende.
Um die Ideale Terminierung von 100Ohm zu erreichen muss solch einem 
System entsprechend ausgelegt sein. Im Fahrzeug ist die Anzahl 
Teilnehmer in aller Regel bekannt und die Terminierung kann darauf 
ausgelegt werden.

Bei den PCAN HS CAN zu LS CAN Converter mit einem TJA1055 ist die 
Terminierung über einen Schalter umschaltbar von 5,6K zu 560Ohm.

Habe leider nicht mehr so oft mit FT CAN zu tun, aber das sollte mit 
zwei Teilnehmer für einen Labor Aufbau reichen wenn da dann ggf einer 
mit 560Ohm Terminiert. Zumindest tat das mit besagten PCAN Converter und 
einem CAN Modul mit kurzer Kabellänge.
Zu beachten ist auch die Maximale Baudrate von 125kbit.

von Alexander (alecxs)


Lesenswert?

Brauche ich einen Master der immer sendet? Im Moment ist es so dass der 
Empfänger nichts empfängt, und daher sendet der Sender auch nichts. 
Vermutlich weil er kein ACK bekommt, Henne Ei Dilemma. Ich teste mit 
100kbit/s. Ich baue morgen mal einen dritten Teilnehmer auf mit 560 Ω 
per Jumper zuschaltbar.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Alexander schrieb:
> Vermutlich weil er kein ACK bekommt

Nimm ein Oszi und guck dir an, was auf dem Bus passiert. Dann kann aus 
dem "vermutlich" Gewissheit werden. Um herauszubekommen, von welchem 
Teilnehmer ein Pegel kommt, hilft ein Serienwiderstand in der Leitung.

von Alexander (alecxs)


Lesenswert?

Hab ich leider nicht. Ich hab nur ein DSO-138 da kann man die Frequenz 
nicht selbst auswählen, die sucht sich das Display selbst aus. Das 
funktioniert aber nur für PWM und AC einigermaßen gut.

von Thomas F. (igel)


Lesenswert?

Alexander schrieb:
> Hab ich probiert geht nicht. Ich hab auch probiert je 470Ω zwischen L -
> VBat und H - GND, L - VCC und H - GND kleiner wollte ich nicht gehen da
> 1/4w.

Klingt nicht schlecht. Schau mal bei Vector, Kapitel 4.4.5:

https://cdn.vector.com/cms/content/products/Hardware_Accessory/docs/Accessories_EN.pdf

von Rainer W. (rawi)


Lesenswert?

Alexander schrieb:
> Ich hab nur ein DSO-138 da kann man die Frequenz
> nicht selbst auswählen,

Das halte ich für seehr unwahrscheinlich. "Timebase" wählen und 
Parameter mit +/- Tasten einstellen.

von Alexander (alecxs)


Lesenswert?

Thomas F. schrieb:
> Klingt nicht schlecht. Schau mal bei Vector, Kapitel 4.4.5:

Da steht leider auch nur was im Datenblatt steht, Terminierung über die 
RTL RTH Pins.

von Rainer W. (rawi)


Angehängte Dateien:

Lesenswert?

Thomas F. schrieb:
> Schau mal bei Vector, Kapitel 4.4.5:

Mit dem Jumper kann man konfigurieren, ob der Knoten als Standardknoten 
oder als optionaler Knoten verwendet werden soll.

Nach Blockdiagramm Fig.4 in den App Hints von NXP zum TJA1055T auf S.12 
findet die Umschaltung der Strombegrenzung im Ruhezustand intern im 
TJA1055T statt, d.h. der (externe) Widerstand (bei Vector: 4.7kΩ||560 Ω 
= 500 Ω bzw. 4.7kΩ) ist IMMER aktiv und zur Stromreduzierung wird beim 
gesteuerte Bus-Abschluss eine als Stromquelle dargestellte Struktur in 
Serie geschaltet.

Auch geht daraus hervor, dass die Steuerung des Abschlusswiderstandes 
bei FT-CAN IMMER über RTH/RTL (Tippfehler in der Fig.4) läuft.
https://www.nxp.com/docs/en/application-note/AH0801.pdf

Alexander schrieb:
> Ich kann zwischen CAN-H und RTH sowie zwischen CAN-L und RTL meine
> beiden 5k6 messen, ...

Für vernünftigen Abschluss müssen bei einem Bus mit nur zwei Teilnehmern 
zwischen CAN-H und RTH bzw. zwischen CAN-L und RTL jeweils etwa 500 Ω zu 
messen sein.

Wenn du dort 5.6 kΩ misst, sind deine Treiber als optionale Knoten 
aufgebaut und für die direkte Kommunikation in dieser Bestückung so eher 
nicht zu gebrauchen, weil ein (halbweg) richtiger Busabschluss komplett 
fehlt. Um das zu ändern, könntest du parallel zu den 5.6 kΩ je einen 
Widerstand von 560 Ω schalten, um auf etwa 500 Ω zu kommen.
(Vector Kapitel 4.4.5, NXP App Hints 9.1.1.1 Variable System Size and 
Optional Nodes)

Alexander schrieb:
> Ich hab einen TJA1055 CAN-Transceiver gemäß Datenblatt terminiert mit
> 5k6 so hat das bisher im Auto auch immer funktioniert.
Ja klar, im Auto bist du damit wahrscheinlich (als optionaler Knoten) 
auf den vorhandenen und korrekt abgeschlossenen Bus gegangen. Dann 
liegst du mit 5.6 kΩ völlig vernünftig (kleiner 6 kΩ lt. NXP unter Kap. 
9.1.1.1) - kurz: works as designed.

Alexander schrieb:
> ... aber zwischen CAN-H und GND messe ich nichts.

Warum auch?

Alexander schrieb:
> Da steht leider auch nur was im Datenblatt steht, Terminierung über die
> RTL RTH Pins.

So ist die Welt nun einmal - so ist FT-CAN spezifiziert.

Ich verstehe allerdings dein Problem nicht ganz. An RTH und RTL sollten 
nach deiner Beschreibung doch die 5.6kΩ Widerstände hängen und da 
jeweils einen passenden Abschlusswiderstand huckepack drauf zu löten, 
sollte doch kein Hexenwerk sein.
Zeig einmal ein Photo von deiner Platine.

Alexander schrieb:
> Ich würde aber gerne wissen ob es eine andere
> Möglichkeit der Terminierung gibt.

Um auf deine Eingangsfrage zurück zu kommen: Ja gibt es, so wie von 
Vector gezeigt, mit einem Jumper, um von Standardknoten auf optionalen 
Knoten umkonfigurieren zu können.

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Rainer W. schrieb:
> da jeweils einen passenden Abschlusswiderstand huckepack drauf zu löten,
> sollte doch kein Hexenwerk sein.
> Zeig einmal ein Photo von deiner Platine.

Das ist 0603 und ich müsste es nach dem Versuchsaufbau ja wieder runter 
löten. Da bau ich lieber einen dritten Teilnehmer auf. In der nächsten 
Revision werde ich das berücksichtigen.

Was mir nicht klar ist, wie errechnet sich der Gesamtwiderstand? Und 
wenn er sich berechnen lässt, wie sieht dann das Widerstandsnetz aus? 
Die RTL, RTH Pins der Transceiver sind wie gesagt nicht untereinander 
verbunden. Es gibt nur Kabel für GND, VBat, Vcc, CAN-H, CAN-L.

von Rainer W. (rawi)


Lesenswert?

Alexander schrieb:
> Die RTL, RTH Pins der Transceiver sind wie gesagt nicht untereinander
> verbunden.

Ich kenne mich mit CAN nur sehr rudimentär aus, also bitte korrigieren, 
falls ich falsch liege.
Vermutlich erkennen alle Knoten, sobald einer ein Start-Bit auf den Bus 
legt und schalten dann jeder auf niedrigen Bus-Abschluss, damit die 
Datenbits sauber über den Bus laufen. Der Gesamtabschlusswiderstand 
ergibt sich dann aus der Parallelschaltung der Widerstände aller Knoten.
Nach Ende der Übertragung werden sie wieder auf den Minimalstrom 
schalten.

von Achim M. (minifloat)


Lesenswert?

Alexander schrieb:
> Da bau ich lieber einen dritten Teilnehmer auf

Ein Fake-Teilnehmer aus 5V-Quelle, zwei 560Ω Widerständen und ggf. 
Kondensator geht vielleicht auch? Es reicht, die Terminierung 
nachzubilden.

Rainer W. schrieb:
> Vermutlich erkennen alle Knoten, sobald einer ein Start-Bit auf den Bus
> legt und schalten dann jeder auf niedrigen Bus-Abschluss,

Die Terminierung kann im "normal mode" dauerhaft eingeschaltet bleiben.

mfg mf

: Bearbeitet durch User
von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Ich hatte es so versucht. Allerdings ist mir nicht klar wieso CAN-L auf 
Vcc gezogen werden muss und nicht auf VBat.

von Rainer W. (rawi)


Lesenswert?

Achim M. schrieb:
> Die Terminierung kann im "normal mode" dauerhaft eingeschaltet bleiben.

Das ist aber vielleicht nicht das, was mit dem Aufbau getestet werden 
soll.

: Bearbeitet durch User
von Achim M. (minifloat)


Lesenswert?

Alexander schrieb:
> Ich hatte es so versucht. Allerdings ist mir nicht klar wieso
> CAN-L auf Vcc gezogen werden muss und nicht auf VBat.

Rcanl und Rcanh sollen den Isolationswiderstand und Leckströme 
symbolisieren.

Für Simulation des Fehlermodus "dauerhaft dominanter Pegel auf CANL" 
muss freilich CANL auf VCC gezogen sein. Ob VCC oder VBAT spielt keine 
Rolle, weil erkannt werden muss das bereits bei VCC-Pegel. Damit wird es 
bei VBAT-Pegel wohl auch erkannt.

mfg mf

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.