Forum: Mikrocontroller und Digitale Elektronik 600us low auf CAN-Bus - hat dies etwas zu bedeuten?


von Sergej (Gast)


Lesenswert?

Kennt jemand eine Situation, in der der CAN-Bus 600us lang
auf low gelegt wird? Der Bus wird mit 250 kbit/s betrieben.
Ich sehe diese Situation sporadisch, interessanterweise immer
wieder genau 600us lang, kann mir aber noch keinen Reim
darauf machen, wer dies erzeugt und warum...
Es hängen viele (~ 10-20?) Devices am Bus, auch unterschiedliche uC,
und ich kann angeschlossene Teilnehmer nicht einfach vom Bus trennen,
um zu sehen, wer diese Situation erzeugt.

Vielleicht eine Idee, wie man dies noch eingrenzen kann?

von S.E. (Gast)


Lesenswert?

Definiere bitte "CAN Bus ist low". Der Buspegel (für highspeed CAN) ist 
entweder rezessiv (CANH-CANL ~0V) oder dominant (CANH-CANL > ~2V).

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Sergej schrieb:
> immer wieder genau 600us lang

Der "TXD dominant time-out" liegt z.B. beim TJA1050 in diesem Bereich.

Irgendein Treiber verhindert, dass der angeschlossene Controller länger 
als 600µs lang low (dominant) sendet.

S.E. schrieb:
> Definiere bitte "CAN Bus ist low"

Wenn TX = LOW, macht der Transceiver DOMIANT draus.
Was soll er da definieren?

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Torsten C. schrieb:
> Wenn TX = LOW, macht der Transceiver DOMIANT draus.
> Was soll er da definieren?

 Was der Transceiver daraus macht, ist eine andere Frage.
 CAN-BUS == LOW gibt es einfach nicht.
 Entweder dominant oder recessive.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Marc V. schrieb:
> CAN-BUS == LOW gibt es einfach nicht.
>  Entweder dominant oder recessive.
Naja, eine 0 ist dominant, eine 1 rezessiv. Und man kann 
umgangssprachlich zur 0 auch mal LOW sagen. So fehlertolerant darf man 
schon sein...

: Bearbeitet durch Moderator
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Lothar M. schrieb:
> Naja, eine 0 ist dominant, eine 1 rezessiv. Und man kann
> umgangssprachlich zur 0 auch mal LOW sagen. So fehlertolerant darf man
> schon sein...

 Selbstverstandlich.
 Nur ist bei CAN rezessiv in etwa als CANH == CANL == VCC/2 definiert,
 dominant als (CANH - CANL) >= 1.5V also auch nicht 0.
 Aber das ist Haarspalterei, wir alle wissen was er sagen wollte.

von Sergej (Gast)


Lesenswert?

Ich hatte hinter einem CAN-Transceiver gemessen
und dort war CAN-RD für 600us auf low.
Laut Datenblatt ist der CAN-Bus-Zustand dann DOMINANT.

von Frank K. (fchk)


Lesenswert?

Sergej schrieb:
> Ich hatte hinter einem CAN-Transceiver gemessen
> und dort war CAN-RD für 600us auf low.
> Laut Datenblatt ist der CAN-Bus-Zustand dann DOMINANT.

So, dann gehst Du Gerät für Gerät durch und misst immer an CAN-TX und 
kannst dadurch feststellen, wer der Verursacher ist.

fchk

von Sergej (Gast)


Lesenswert?

Frank K. schrieb:
> So, dann gehst Du Gerät für Gerät durch und misst immer an CAN-TX und
> kannst dadurch feststellen, wer der Verursacher ist.

Dies ist leider leichter gesagt wie getan,
da das Signal nur für kurze Zeit anliegt (nicht permanent) und
die anderen CAN-Transceiver nur schwer erreichbar
und kontaktierbar sind...

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Sergej schrieb:
> Es hängen viele (~ 10-20?) Devices am Bus …
> Vielleicht eine Idee, wie man dies noch eingrenzen kann?

Entweder
1) Alle abziehen und einen nach dem anderen wieder anschließen,
   bis die 600µs auftauchen.

Oder
2) Einen nach dem anderen abziehen, bis die 600µs verschwinden.

Aber die Antwort ist so trivial, dass Du sicher auch schon selbst drauf 
gekommen bist. Was spricht dagegen?

: 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.