Forum: Mikrocontroller und Digitale Elektronik galvanische Trennung für CAN-bus mit TJA1052i und TJA1040


von Shoadi (Gast)


Lesenswert?

Hallo,

beim Redesign eines unserer Offroad-Fahrzeuge haben wir gerade die 
Herausforderung,d ass wir die Controller eines Hochspannungsnetzes mit 
den Controller eines Niederspannungsnetzes mit CAN-Bus verbinden wollen.
Für diesen Zweck habe ich einen Prototyp für die galvanische Trennung 
gebaut, bestehend aus einem TJA1052i (für die isolierung) und einen 
TJA1040.

RxD und TxD der beiden Chips sind gerkeuzt Verbunden.

Für Testzwecke habe ich Versucht meine Platine über einen PCAN 
(USBtoCAN) mit einem IXXAT (USBtoCAN) zu verbinden - leider ohne Erfolg. 
Wenn ich jedoch eine der beiden RxDtoTxd Verbidnugnen abklemme, 
funktioniert die Übertragung in eine Seite. Wenn ich die Verbindung 
wieder herstelle, zeigen sowohl IXXAT als auch PCASN einen BusOff Status 
an.

Habt Ihr vielleicht ideen, wo das Problem liegen kann, bzw. ob es 
überhaupt möglich ist den TJA1052i mit einem TJA1040 auf diese Weise zu 
Verbinden?

Danke und frohes Schaffen,

Michael

von Bülent C. (mirki)


Lesenswert?

Shoadi schrieb:
> TJA1052i
Das ist ein CAN Transceiver mit integrierter galvanischen Trennung.

Shoadi schrieb:
> TJA1040.
Und das ist ein CAN Transceiver ohne galvanische Trennung.

Shoadi schrieb:
> Prototyp für die galvanische Trennung
> gebaut, bestehend aus einem TJA1052i (für die isolierung) und einen
> TJA1040.
>
> RxD und TxD der beiden Chips sind gerkeuzt Verbunden

Shoadi schrieb:
> wo das Problem liegen kann, bzw. ob es
> überhaupt möglich ist den TJA1052i mit einem TJA1040 auf diese Weise zu
> Verbinden?

äähm, was genau hast Du eiegentlich aufgebaut? Könntest Du mal bitte 
Dienen Aufbau samt der PIN Anschüße der beiden oben genannten Bausteine 
skizzieren.

von Rudolph (Gast)


Lesenswert?

Das funktioniert so nicht.
Ohne zusätzliche Logik kann man zwei Transceiver nicht koppeln und ich 
habe da auch noch keine schlanke Lösung gefunden die funktionieren 
würde.

Was funktioniert ist einen Transceicer vom MikroController zu trennen, 
etwa über einen ADUM1210 oder so, dazu braucht man dann noch einen DC/DC 
Wandler.

Oder wenn man ein CAN-Segment isoliert abtrennen will kann man auch 
einen Controller mit zwei CAN-Schnittstellen nehmen und einen der 
Transceiver isolieren.
Das erzeugt aber Latenz auf dem CAN.

Solche CAN-Isolatoren kann man auch kaufen.

von Rudolph (Gast)


Lesenswert?

Hier:

http://www.peak-system.com/PCAN-Optoadapter.215.0.html?&L=1

Wenn jemand eine Idee hat wie die genau funktionieren, immer raus damit. 
:-)

von Sajuuk (Gast)


Lesenswert?

Über nen schaltplan würde ich mich freuen.

von Steffen R. (steffen_rose)


Lesenswert?

CAN Controller  1
Ganvanische Entkopplung
Transceiver

CAN

Transceiver
Galvanische Entkopplung
CAN Controller 2

Was ist bei Euch anders?

Beim TJA1052i sind Transceiver und Galvanische Entkopplung auf einem 
Chip. Da wirds dann noch einfacher.

Shoadi schrieb:
> RxD und TxD der beiden Chips sind gerkeuzt Verbunden.

Nee, die gehen jeweils zum CAN Controller und werden nicht gekreuzt.

(Ich bin keine Elektroniker. Daher kein Schaltplan.)

von Peter D. (peda)


Lesenswert?

Eine galvanische Trennung macht man üblicher Weise zwischen Transceiver 
und MC, d.h. wo die Signale noch unidirektional sind.
Wir haben z.B. Module, die auf 4000V floaten und die Trennung machen 
Optokoppler OPI1266.

von Harald A. (embedded)


Lesenswert?

Nun ja, die Komponenten sind ja - so wie ich es verstanden habe - schon 
fertig, qualifiziert und/oder nicht im Zugriff. Wie soll man da zwischen 
Controller und Transveiver trennen?

: Bearbeitet durch User
von Harald A. (embedded)


Lesenswert?

Zum aufgebauten CAN-Repeater mit den gekreuzten RXD/TXD (in diesem Fall 
mit galv. Trennung):
Wie Rudolph schon schrieb, das funktioniert nicht weil sich der 
dominante Pegel quasi festsetzt --> Dominanter Pegel wird z.B. von A 
nach B "kopiert". Da jetzt auf Seite B jetzt auch dominanter Pegel 
herrscht wird dieser ebenfalls auf Seite A kopiert.

Lösung: Es bedarf einer State-Machine, die einen dominanten Pegel (Low) 
von X nach Y durchlässt, die Gegenseite dann aber solange ignoriert bis 
der Pegel des Auslösers wieder rezessiv wird. Vermutlich braucht man 
noch einen Timer zum Reset der State-Machine für den Fehlerfall.

Ob das nun mit diskreter Logik (Gatter, Flip-Flops) aufgebaut wird oder 
mit programmierbarer Logik sei mal dahingestellt.

von Thomas F. (igel)


Lesenswert?

Sajuuk schrieb:
> Über nen schaltplan würde ich mich freuen.

http://www.ti.com/lit/ds/symlink/iso1050.pdf

Da ist einer drin.

von Harald A. (embedded)


Lesenswert?

Thomas F. schrieb:
> Sajuuk schrieb:
>> Über nen schaltplan würde ich mich freuen.
>
> http://www.ti.com/lit/ds/symlink/iso1050.pdf
>
> Da ist einer drin.

Für einen passiven CAN Repeater wie vom OP beabsichtigt? Habe ich den 
übersehen?

von Peter D. (peda)


Lesenswert?

Harald A. schrieb:
> Ob das nun mit diskreter Logik (Gatter, Flip-Flops) aufgebaut wird oder
> mit programmierbarer Logik sei mal dahingestellt.

Nur mit Logik allein geht das nicht.
Es gibt z.B. RS-485 Transceiver mit automatischer Richtungsumschaltung, 
die stellen über Strommessung fest, von welcher Seite getrieben wird.

von Rudolph R. (rudolph)


Lesenswert?

In dem CAN-Artikel hier wird da was erwähnt:
https://www.mikrocontroller.net/articles/CAN

Und zwar das hier:
http://www.oschmid.ch/mt/can-hub/can-hub.php

Ich kann nur nicht bestätigen, ob das funktioniert, hat das schon mal 
jemand erfolgreich aufgebaut?

Das müsste man dann nur noch um die galvanische Trennung ergänzen.

In die Peak-Adapter habe ich schon mal rein gesehen, die aber aus 
Zeitmangel nicht genau auseinander nehmen können.
Da scheint auf jeden Fall noch weniger drin zu sein.

von Steffen R. (steffen_rose)


Lesenswert?

Harald A. schrieb:
> Für einen passiven CAN Repeater wie vom OP beabsichtigt?

Der TO schreibt nichts von einem Repeater. Nach meinem Verständnis will 
er "nur" eine galvanische Trennung. Den Repeater hat erst  Rudolph ins 
Spiel gebracht.

von Rudolph (Gast)


Lesenswert?

Nana, er hat schon deutlich beschrieben, dass er versucht hat, einen 
Repeater zu bauen. :-)
Um eben im Nachinhein zwei Segmente zu trennen.

von Michael K. (Firma: Mattro) (mmjjkk)


Lesenswert?

Hello,

und vielen Dank für eure Rückmeldungen. Jetzt ist mir klar, warum das 
Teil nicht so läuft wie es soll.

Ich baue einen neuen Prototypen, basierend auf:
http://www.oschmid.ch/mt/can-hub/can-hub.php
mit einem TJA1052i anstatt des MCP2551SN.

Ich bin gespannt ob das funktioniert. Die RC-Glieder finde ich ein wenig 
grenzwertig, und die Diode welche anscheinend den Pegel der RxdTxd 
Leitung über den Ausgang des NOR-Gates runterziehen soll ebenso.

Je nach Ergebnis meines Versuches werde ich ersteres mit einem 
Verzögerungsglied ersetzen, und zweiteres mit einem Transistor auf 
Masse.

Ich halte euch auf dem Laufenden.

von Michael K. (Firma: Mattro) (mmjjkk)


Lesenswert?

...und obs nun eine galvanische Trennung mit (ohnehin für diesen Zweck 
nötigen) Repeater wird, oder ein CAN-Repeater mit galvanischer Trennung 
lasse ich einmal dahingestellt - beide Ansätze helfen.

mfg

Michael K. oder K. Michael

von Steffen R. (steffen_rose)


Lesenswert?

Rudolph schrieb:
> Nana, er hat schon deutlich beschrieben, dass er versucht hat,
> einen
> Repeater zu bauen. :-)
> Um eben im Nachinhein zwei Segmente zu trennen.

Michael stimmt dir zu. Mich würde aber trotzdem mal interessieren, wie 
du es aus der Fragestellung herauslesen konntest.

So habe ich es verstanden:

Die Aufgabenstellung
> wir die Controller eines Hochspannungsnetzes mit
> den Controller eines Niederspannungsnetzes mit CAN-Bus verbinden wollen.

beschreibt keinen Repeater. Erst der fehlgeschlagene Lösungsansatz 
dürfte einen Repeater nahe komme.

Warum wird hier der Aufwand betrieben einen Repeater einzusetzen?

von Harald A. (embedded)


Lesenswert?

In diesem Zusammenhang war es unerheblich, ob man nun von einer reinen 
galvanischen Trennung oder von einem Repeater spricht.

Es kann zwar theoretisch einen Repeater ohne galvanische Trennung geben 
aber keine galvanische Trennung ohne Repeater-Funktionalität.

@Steffen:
Was wäre denn HIER weniger Aufwand als ein galv. getr. passiver 
Repeater? Würde mir gerne weitere Lösungsansätze ansehen.

: Bearbeitet durch User
von Steffen R. (steffen_rose)


Lesenswert?

Naja, langsam dämmerts auch mir.

Ich hätte die Geräte galvanisch entkoppelt. Mein Fehler. Bei mir haben 
fast alle Geräte eine galvanische Entkopplung und hatte hier 
fehlerhafterweise erwartet, dass diese Änderung nur einzelne Geräte 
betrifft.

von Harald A. (embedded)


Lesenswert?

Tja, ich kann mir auch nicht vorstellen, dass eine 
Hochspannungskomponente keine galv. Trennung auf der CAN Ebene hat. 
Vielleicht ist die auch vorhanden aber nicht explizit aufgeführt.

Vielleicht noch ein Hinweis für spätere Leser: ein passiver CAN-Repeater 
frischt das Signal als solches wieder auf (oder trennt es galvanisch) 
aber er verschlechtert die Signallaufzeit ergänzend zur Signallaufzeit 
auf dem Kabel. Bei höheren Baudraten kommt der CAN Controller ab einer 
gewissen Strecke trotzdem aus dem Tritt.
Wenn es also um Reichweiten-Verlängerung geht ist ein aktiver Repeater 
die sinnvollere Wahl.

: Bearbeitet durch User
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.