Da ich trotz ausführlicher Google Nachforschungen noch immer nicht
dahinter gekommen bin wie es sich mit den Pegeln auf den CAN Leitungen
verhält, will ich es mal hier versuchen. Mein Problem ist, dass ich
trotz dem Blockschaltbild des CAN Controllers (z.B. PCA82C250) mir die
Pegel auf den Leitungen nicht vorstellen kann.
Wenn ich nun einmal vom einfachsten Fall mit lediglich 2 Geräten am Bus
ausgehe.Wenn zu Anfang sich beide im High Impedance Zustand befinden,
welche Pegel habe ich dann auf CAN-L und auf CAN-H? Müssen irgendwelche
Pullup bzw. Pulldown Widerstände am Bus angebracht werden damit die
Sache funktioniert oder wo steckt das Geheimnis?
Danke schonmal für die Hilfe!
Ohne Abschluss geht es nicht. Und es zählt die Differenz zwischen CANH
und CAHL, nicht der absolute Pegel. Jedenfalls solange sich das in
Grenzen hält.
Recessive: Alle Treiber offen, d.h. CANH=CANL, Differenz 0.
Dominant: CANH=high, CANL=low, Differenz entsprechend gross.
Danke erstmal für die schnelle Antwort!
Das es um die Differenz der Pegel geht weis ich, nur konnte ich mit der
Tabelle auf
http://www.me-systeme.de/canbus.html
nur nichts Anfangen. Laut dieser ist im Dominanten Zustand CANL auf Low
und CANH floating da der Transistor gegen VCC geöffnet sein soll. Aber
mit deiner Erklärung is es sonnenklar. ^^
Damit brauche ich lediglich den Abschlusswiderstand und keine Pullup
bzw. Pulldown Widerstände, sehe ich das richtig?
Pullup/-down entsprechen nicht der Bosch-Spezifikation, ABER es ist sehr
wohl sinnvoll. Man kann damit den Signalpegel abstand vergrößern. Nicht
umsonst wird im VW-Konzern mit Pullup/-down Widerständen in den
CAN-Leitungen gearbeitet.
> Damit brauche ich lediglich den Abschlusswiderstand und keine Pullup> bzw. Pulldown Widerstände, sehe ich das richtig?
Korrekt. Im Unterschied zu RS485 ist der ausgeglichene Ruhepegel bei CAN
ein sauber definierter Zustand.
Obelix mag recht haben, dass etwas "Gegenspannung" per Pullup/down den
Störabstand vergrössern kann, d.h. bei "recessive" ist dann CANH<CANL.
Aber vergiss das. Sowas wird erst interessant, wenn du in stark
versauter Umgebung arbeitest.
Wie werden diese denn dann eingeschaltet? Ein Pullup auf CANH und ein
Pulldown auf CANL würde ja zu einer Differenzspannung im Recessive
Zustand führen. Oder wird nur z.B. ein Pullup auf CANH verwendet?
Bei den Abschlusswiderständen ist es ja klar, dass sie an den
Leitungsenden gebraucht werden. Wo würden diese Pullup/-down Widerstände
angebracht werden?
Damit liegt man allerdings bei PCA82C25x und MCP2551 ausserhalb der
Spezifikation, denn die definieren CANH-CANL nur innerhalb von
-1,0V..+5,0V, hier aber sind es -5,0V.
Habe mir jetzt die Application Note 228 etwas angesehen es sieht so aus,
als ob das ziemlich genau das ist, was ich gesucht habe. Werde es mir
morgen nocheinmal genau ansehen. Danke auf jedenfall für eure Hilfe.
@A.K.
Wie kommst du auf -5V ??? Wo sollen die denn her kommen?
Bei den Maximal zulässigen Spannungen an den Pins wird die Spannung
gegen Masse gemessen und nicht differenziel.
Nach dem Datenblatt hast du wohl recht. Was setzt den der VW-Konzern für
CAN-Tranciever ein?
Oder ... Das im Datenblatt ist so zu interpretieren, dass der PCA82C250
ab diesen Pegeln Recessive bzw. dominant erkennt.
Wenn man sich beispielsweise nur zum Vergleich mal VIL anschaut, dann
steht da ja -0,3V bis 0,3Vcc. Das ist der Bereich wo der Chip sicher
Low-Pegel erkennt. Der Chip geht deswegen aber nicht über 0,3Vcc kaput.
Dazu gibt es ja die Limiting Valus auf Seite 5. Da taucht Vdiff aber
nicht mehr auf. Auch nach Bild 11 sehe ich keinen Grund, warum der Chip
das nicht verkraften sollte.
Naja, ist auch egal, ich habe das so im Einsatz und es funktioniert seid
Jahren wunderbar.
> Was setzt den der VW-Konzern für CAN-Tranciever ein?
Dein Bild zeigt eben den PCA82C250.
Sicher, kaputt geht er ausserhalb davon nicht, und es ist auch kaum
anzunehmen, dass die Pegelerkennung plötzlich umkippt. Es wird wohl eher
so sein, dass diese Range so aus der CAN Spezifikation abgeschrieben
wurde.