Forum: Mikrocontroller und Digitale Elektronik gibt es Verstärker für CAN-Bus?


von Tom (Gast)


Lesenswert?

Hallo,

ich nutze für meine Heimautomatisierung den ESP32 mit diesen Transivern:
https://www.exp-tech.de/module/schnittstellen/9053/sn65hvd230-can-board

vorne und hinten hab ich 120 Ohm (der Buswiderstand ist bei 67 Ohm). Die 
Leitungen sind alle CAT7 und die Spannungsversorgung sind 9V welche "vor 
Ort" mit einem Stepdown auf 5V und im ESP auf 3.3.V heruntergeregelt 
werden.
Ich habe nahezu keine Stichleitungen, da ich immer den Rückkanal des 
Kabels verwende und dann sozusagen einen durchgehenden Bus habe.

Allerdings ist mein BUS Super lange. Ich schätze 250m - 300m. Jetzt 
fallen immer wieder Module aus. Wenn ich allerdings vorne oder hinten 3 
Module (100m Kabellänge) entferne läuft der BUS Stabil. Ich habe schon 
super langsame Geschwindigkeiten von 5Khz versucht, arbeite momentan mit 
20 (die Geschwindigkeit ändert aber nichts am Ausfall)

Leider ist ein Debug sehr schwer, da die Module erstmal 2-10 Stunden 
fehlerfei arbeiten und auch nicht immer die selben Module ausfallen 
sondern hier und da mal eines (auch in der Mitte). Da Hard und Software 
immer gleich (wenn auch funktion nicht immer identisch) ist denke ich 
aber fast ein Problem mit der Leitungslänge zu haben. Meine Idee wäre 
jetzt in der Zentrale (welche nahezu in der Mitte des Buses ist) einfach 
einen "Verstärker" einzubauen. <- geht sowas?

Alternativ müsste ich den BUS trennen und ein Modul bauen, welches 2 
CAN-Transiver beinhaltet und die Nachrichten weiterleitet <- das würde 
zwar eine Latenz bedeuten, aber der CAN ist so oder so "extrem schnell".

hat jemand eine Idee für mich?

Vielen Dank

von Rolf M. (rmagnus)


Lesenswert?

Tom schrieb:
> Jetzt fallen immer wieder Module aus.

Was meinst du damit? Was tun die Module? Gehen sie auf bus off? Was 
passiert, wenn du versuchst, sie wieder zu aktivieren?

> Ich habe schon super langsame Geschwindigkeiten von 5Khz versucht, arbeite
> momentan mit 20 (die Geschwindigkeit ändert aber nichts am Ausfall)

Bei 300m sollten auch 125 kbit/s noch funktionieren. Bei 50 kbit/s 
sollte schon ein Kilometer drin sein.

Tom schrieb:
> Meine Idee wäre jetzt in der Zentrale (welche nahezu in der Mitte des Buses
> ist) einfach einen "Verstärker" einzubauen. <- geht sowas?

Normalerweise hat die Längenbegrenzung weniger mit dem Pegel als mit den 
Signallaufzeiten zu tun.

von Frank K. (fchk)


Lesenswert?

Tom schrieb:

> Meine Idee wäre
> jetzt in der Zentrale (welche nahezu in der Mitte des Buses ist) einfach
> einen "Verstärker" einzubauen. <- geht sowas?

Nein. Die Signale laufen ja in beide Richtungen, und das wird für einen 
Verstärker schwierig.

> Alternativ müsste ich den BUS trennen und ein Modul bauen, welches 2
> CAN-Transiver beinhaltet und die Nachrichten weiterleitet <- das würde
> zwar eine Latenz bedeuten, aber der CAN ist so oder so "extrem schnell".

Das wäre der Weg, den Du gehen müsstest. Das wwäre dann ein Repeater: 
Nachricht auf einem Bus empfangen und auf dem anderen wieder senden. 
Oder die Zentrale so umbauen, dass sie mehrere Busse ansteuern kann. 
Dazu brauchst Du einen Mikrocontroller mit zwei oder drei integrierten 
CAN Controllern, so wie z.B. STM32F413.

Andere Sache: Deine CAN-Transceiver haben einen Widerstand an Pin 8, der 
festlegt, wie steil die Flanken sind. Der ist normalerweise 10k. Mit 
einem 100k Widerstand machst Du den langsamer. Das könnte auch helfen. 
Natürlich musst Du diese Modifikation auf allen angeschlossenen 
Transceivern durchführen.

fchk

von Falk B. (falk)


Lesenswert?

Tom schrieb:

> vorne und hinten hab ich 120 Ohm (der Buswiderstand ist bei 67 Ohm). Die
> Leitungen sind alle CAT7

Naja, CAT7 Ethernetkabel hat 100 Ohm Wellenwiderstand, da sollte man 
auch mit 2x 100 Ohm terminieren. Die 120 Ohm gelten nur, wenn man auch 
120Ohm Kabel nutzt.

Auf welchen Adern liegen deine Signale? Hoffentlich liegen CANH und CANL 
auf einem verdrillten Paar.

> Allerdings ist mein BUS Super lange.

lang.

> Ich schätze 250m - 300m.

Das ist nicht sonderlich lang. Mit welcher Baudrate arbeitest du?


> Jetzt
> fallen immer wieder Module aus.

Was heißt das genau? Funktionieren sie nicht mehr und du musst einen 
Reset machen oder gehen sie dauerhaft kaputt?

> Wenn ich allerdings vorne oder hinten 3
> Module (100m Kabellänge) entferne läuft der BUS Stabil. Ich habe schon
> super langsame Geschwindigkeiten von 5Khz versucht, arbeite momentan mit
> 20 (die Geschwindigkeit ändert aber nichts am Ausfall)

Möglicherweise hast du ein EMV-Problem.

> Leider ist ein Debug sehr schwer, da die Module erstmal 2-10 Stunden
> fehlerfei arbeiten und auch nicht immer die selben Module ausfallen
> sondern hier und da mal eines (auch in der Mitte).

Wie verhalten sich die Module beim Ausfall? Kann man sie aus dem Bus 
entfernen und in einem Testaufbau testzen? Weißt du, was kaputt geht?

> Da Hard und Software
> immer gleich (wenn auch funktion nicht immer identisch) ist denke ich
> aber fast ein Problem mit der Leitungslänge zu haben.

Du denkst nicht, du glaubst. Weil es die einfachste Erklärung ist.

> Meine Idee wäre
> jetzt in der Zentrale (welche nahezu in der Mitte des Buses ist) einfach
> einen "Verstärker" einzubauen. <- geht sowas?

Nennt sich Repeater.

> Alternativ müsste ich den BUS trennen und ein Modul bauen, welches 2
> CAN-Transiver beinhaltet und die Nachrichten weiterleitet <- das würde
> zwar eine Latenz bedeuten, aber der CAN ist so oder so "extrem schnell".

Ein Repeater kann das.

Betreibe eine systematische Fehlersuche.

von Michi (Gast)


Angehängte Dateien:

Lesenswert?

Hi Tom,

bei meiner Heizungssteuerung hatte ich immer Probleme mit Überspannungen 
bei Gewittern (CAN-Bus Länge ca 800m, mehrere Gebäude). Da hab ich mir 
diese Repeater gebaut. Es sind zwei Stück im Einsatz und funktioniert 
seit zwei Jahren problemlos. Vielleicht hilft es dir ja. Wenn du 
interesse hast kan ich dir noch die Kicad Dateien schicken.

lg
Michi

von MiWi (Gast)


Lesenswert?

Michi schrieb:
> Hi Tom,
>
> bei meiner Heizungssteuerung hatte ich immer Probleme mit Überspannungen
> bei Gewittern (CAN-Bus Länge ca 800m, mehrere Gebäude). Da hab ich mir
> diese Repeater gebaut. Es sind zwei Stück im Einsatz und funktioniert
> seit zwei Jahren problemlos. Vielleicht hilft es dir ja. Wenn du
> interesse hast kan ich dir noch die Kicad Dateien schicken.
>
> lg
> Michi


ein interessantes Konzept. Wenn Deine Praxis nicht zeigen würde das es 
bei Dir funktioniert hätte ich gesagt das gemeinsame GND macht die galv. 
Trennung der Daten vollkommen sinnfrei und der GND baut lustige 
Schleifen, die erst recht für interessante Effekte zwischen Gebäuden 
sorgen können.

Naja, hier wird CAN mit Sillabs-Isolatoren (die Chips sind erfrischend 
einfach zu verwenden) getrennt, für Hardcore-Isolation (einige kV mit 
Transienten auf einer der Seiten von bis zu 30kV/us) wird LWL verwendet, 
läuft mit 1Mbit tadellos.

von Michi (Gast)


Lesenswert?

MiWi schrieb:
> Wenn Deine Praxis nicht zeigen würde das es bei Dir funktioniert hätte
> ich gesagt das gemeinsame GND macht die galv. Trennung der Daten
> vollkommen sinnfrei und der GND baut lustige Schleifen, die erst recht
> für interessante Effekte zwischen Gebäuden sorgen können.

Warum? Ich hab damit doch damit zwei galvanisch getrennte gnds. Die 
verwendeten Treiber haben hald jeweils zwei Kanäle die ich rausgeführt 
habe.

von MiWi (Gast)


Lesenswert?

Michi schrieb:
> MiWi schrieb:
>> Wenn Deine Praxis nicht zeigen würde das es bei Dir funktioniert hätte
>> ich gesagt das gemeinsame GND macht die galv. Trennung der Daten
>> vollkommen sinnfrei und der GND baut lustige Schleifen, die erst recht
>> für interessante Effekte zwischen Gebäuden sorgen können.
>
> Warum? Ich hab damit doch damit zwei galvanisch getrennte gnds. Die
> verwendeten Treiber haben hald jeweils zwei Kanäle die ich rausgeführt
> habe.

mag sein, doch du verbindest die GNDs über die TVS (D8 und D10). Daher - 
mehr als die TVS schafft Dein Teil als Potentialuterschied nicht.

Und besonders kräftig sind die TVS auch nicht. ESD ist ok, irgendwelche 
Normpulse auch, doch Real life zwischen mehreren Gebäuden würd ich ihnen 
nicht zumuten. Wenn Blitzschlag mit einer Quellimpedanz=50Ohm definiert
wird dann ist klar das das für schon sehr geschütze Umgebungen gedacht 
ist. Zwischen Gebäuden passiert vieles, doch alles ohne eine definierte 
Quellimpedanz. Und 800m lange Letungen klingeln lustig vor sich hin wenn 
es irgendwo scheppert.

Das ist ungefähr so wie der ideale Opamp und den real erhältlichen. 
Irgendwas ist immer.

Wie gesagt, es scheint bei Dir zu funktionieren und damit ist für Dich 
alles ok. Doch Galvanisch getrennt ist was anderes.

von Michael J. (jogibaer)


Lesenswert?

Hallo,

naja, er leitet nicht gegen GND sondern gegen PE ab.
Machen einige Hersteller auch so.
Der PE ist sowieso immer komplett durchverbunden.
Und seine beiden GNDs sind nicht mit PE verbunden.

Ich würde eher lieber 2 getrennte Trafos verwenden.
Je nach Typ ist die Koppelung der beiden Sekundärspulen nicht ohne.
Die Spannungsfestigkeit ist oft auch nicht so besonders.

Verbessern kann man immer was, das Problem hat jeder,
der eine Schaltung postet.

Jogibär

von MiWi (Gast)


Lesenswert?

Michael J. schrieb:
> Hallo,
>
> naja, er leitet nicht gegen GND sondern gegen PE ab.
> Machen einige Hersteller auch so.
> Der PE ist sowieso immer komplett durchverbunden.
> Und seine beiden GNDs sind nicht mit PE verbunden.

Aber nur solange die Spannungsdifferenz zwischen den beiden GNDs nicht 
größer als die TVS-Spannung ist.

Und dem CAN-Teil ist es vollkommen egal welche Spannung gegenüber PE 
ansteht, der will das seine max. Ratings zwischen seinen Eingangsports 
und GND eingehalten werden.

iaW: so wie es derzeit gezeichnet ist ist im Fall der Fälle die doppelte 
TVS-Spannung an den Eingängen der Transceiver vorhanden, da erst zB.  D7 
und dann D3 leiten müssen damit Überspannungen abgeleitet werden. Wenn 
der Transceiver das aushält ist`s ja ok.

>
> Ich würde eher lieber 2 getrennte Trafos verwenden.
> Je nach Typ ist die Koppelung der beiden Sekundärspulen nicht ohne.
> Die Spannungsfestigkeit ist oft auch nicht so besonders.

spielt aber in dem geposteten Fall keine Rolle weil es eben max. 88V 
sind die die beiden GNDs auseinander sein können (D8 in Serie mit D9)

> Verbessern kann man immer was, das Problem hat jeder,
> der eine Schaltung postet.

Wie gesagt, ich habe nur die Frage erläutert warum ich die Schaltung 
interessant finde. Michi hat keine Probleme damit, also paßt es für ihn.

Mein Konzept ist anders: eine robuste Isolierung der es (bis zu etlichen 
kV) egal ist wie hoch das Potential gegenüber PE ist (wird nur statisch 
mit R (einige Meg) und C auf PE geholt) und innerhalb vom Bus TVS auf 
den lokalen GND damit die Common Mode-Spannung nicht überschritten wird.

von temp (Gast)


Lesenswert?

Ich würde auch mal überprüfen, ob nicht 2 nodes versuchen die gleiche 
CAN-Id zu versenden. In solchen Fällen kann sich ein Knoten auch 
abschalten.

von Harry (Gast)


Lesenswert?

MiWi schrieb:
> Mein Konzept ist anders: eine robuste Isolierung der es (bis zu etlichen
> kV) egal ist wie hoch das Potential gegenüber PE ist (wird nur statisch
> mit R (einige Meg) und C auf PE geholt) und innerhalb vom Bus TVS auf
> den lokalen GND damit die Common Mode-Spannung nicht überschritten wird.

Nicht nur bei dir! Mache ich seit bestimmt zwanzig Jahren so... Local 
GND und PE sind einzig bei mir mit 1Meg und parallelen 1nf/1-2kv 
verbunden...
Zusätzlich können noch potente TVS Dioden in die Datenleitungen wie 
PESD1CAN. Mit Transceivern hab ich viel experimentiert und bin final 
beim TJA1051 gelandet. Sehr robust und wenn nötig auch schnell. Wenn 
sehr EMV versuchte Einsatzorte vorkommen oder es sehr sauber sein muss, 
kommt noch eine Daten-StroKo mit rein. Mag besser Wege geben, aber das 
ist mein Rezept mit dem ich gut fahre.

Speziell für Blitzeinschlag und Co bei CAN hab ich eine Appnote bei HOLT 
Semi gefunden. Die Stellen Chips für den Avionik Sektor her.

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.