Forum: Mikrocontroller und Digitale Elektronik CANH und CANL sniffen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bülent C. (mirki)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe derzeit ein Problem, welches ich mir derzeit nicht erklären 
kann, und zwar geht es um die CANH und CANL Pegel.

Mit dem Oszi kann ich beide Pegel sauber darstellen, aber mit dem Logik 
Analyzer (OpenBench) sehe ich nur CANL und CANH nicht. CANH wird hier 
durchgehend als high dargstellt. Die Massen zwischen CAN Board und und 
Analzer sind auch verbunden.
Ausschließen kann ich einen defekten Pin am Analzer, da beim swap das 
gleiche passiert.

Wo liegt hier das Problem, ist es der Meßaufbau, oder der Analyzer 
selbst?

VG, Bülent

von Frank K. (fchk)


Bewertung
0 lesenswert
nicht lesenswert
Das liegt an den Schaltschwellen der Eingänge, d.h. bei welchen 
Spannungen wird eine 1 erkannt, bei welchen eine 0 und welcher Bereich 
ist undefiniert. Schau dazu ins Handbuch Deines LA. Bei einem guten 
Gerät kannst Du die einstellen, bei einem weniger guten sind die fest 
vorgegeben.

fchk

von user (Gast)


Bewertung
0 lesenswert
nicht lesenswert
CAN low wird auf GND geschaltet, CAN high auf 5V oder mehr

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Bülent C. schrieb:
> Wo liegt hier das Problem, ist es der Meßaufbau, oder der Analyzer
> selbst?

Weder noch, es liegt an Dir.
Beim CAN-Bus ist die Differenz zwischen CANH und CANL das Signal, 
nicht aber deren Lage zu GND.

von Bülent C. (mirki)


Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Weder noch, es liegt an Dir.
> Beim CAN-Bus ist die Differenz zwischen CANH und CANL das Signal,
> nicht aber deren Lage zu GND.

Das hört sich einleuchtend an! Anscheinend kann man LogicAnalzer keine 
Differenz Pegel erkennen?!

von Uwe Bonnes (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bülent C. schrieb:
> Peter Dannegger schrieb:
>> Weder noch, es liegt an Dir.
>> Beim CAN-Bus ist die Differenz zwischen CANH und CANL das Signal,
>> nicht aber deren Lage zu GND.
>
> Das hört sich einleuchtend an! Anscheinend kann man LogicAnalzer keine
> Differenz Pegel erkennen?!

Dann wäre es ja ein Differenz Analysator und kein Logikanalysator...

von Dieter M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stimmt schon, die Daten werden aus dem Differenz-Signal zwischen CAN_H 
und CAN_L gewonnen.
Wenn Du das Signal aus den einzelnen Leitungen gegen GND rekonstruieren 
möchtest, brauchst Du wirklich einen LA mit einstellbaren 
Schaltschwellen.
CAN_H pendelt nämlich zwischen 2,5V und 3,5V, hier wäre also eine 
Schaltschwelle von ca.3V sinnvoll.
CAN_L pendelt zwischen 2,5V und 1,5V, hier also Schaltschwelle ca. 2V!

Da Dein LA nur CAN_L richtig darstellt, (wahrscheinlich invertiert?) 
wird die Schaltschwelle wohl bei ca. 2V liegen

von Peter D. (peda)


Bewertung
2 lesenswert
nicht lesenswert
Alternativ könnte man den LA auch an RXD eines CAN-Transceivers (z.B. 
TJA1050T) anschließen.

von Bülent C. (mirki)


Bewertung
0 lesenswert
nicht lesenswert
Dieter M. schrieb:
> Da Dein LA nur CAN_L richtig darstellt, (wahrscheinlich invertiert?)
Ist nicht invertierend

Dieter M. schrieb:
> CAN_H pendelt nämlich zwischen 2,5V und 3,5V, hier wäre also eine
> Schaltschwelle von ca.3V sinnvoll.
> CAN_L pendelt zwischen 2,5V und 1,5V, hier also Schaltschwelle ca. 2V!
Das hört sich vernünftig an. Nur dummerweise kann ich die Schaltschwelle 
nicht einfach so anpassen...

von Bülent C. (mirki)


Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Alternativ könnte man den LA auch an RXD eines CAN-Transceivers (z.B.
> TJA1050T) anschließen.

Geht Leider nicht, da ich einen LPC11C24 vorliegen habe. Der hat den 
Transceiver mit on Board.

von Frank K. (fchk)


Bewertung
0 lesenswert
nicht lesenswert
Bülent C. schrieb:
> Peter Dannegger schrieb:
>> Weder noch, es liegt an Dir.
>> Beim CAN-Bus ist die Differenz zwischen CANH und CANL das Signal,
>> nicht aber deren Lage zu GND.
>
> Das hört sich einleuchtend an! Anscheinend kann man LogicAnalzer keine
> Differenz Pegel erkennen?!

Der hier kann das:

http://www.ikalogic.com/ikalogic-products/scanaplus-9-channels-100mhz-logic-analyzer/

"Number of integrated differential lines receivers: 2 (can used for CAN, 
RS485, etc.)"

Ansonsten eben CAN-Transceiver benutzen, oder wenn Du die Einzelsignale 
sehen willst, Komparatoren wie zB LM393.

fchk

: Bearbeitet durch User
von Bülent C. (mirki)


Bewertung
0 lesenswert
nicht lesenswert
Frank K. schrieb:
> Komparatoren wie zB LM393.

Das ist ein guter Ansatz..

von Christopher (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Wo liegt hier das Problem, ist es der Meßaufbau, oder der Analyzer
> selbst?

Ein Oszi kann auch helfen. Vielleicht hast du ja eines und kannst dir 
dann die Pegel anschauen. Mithilfe der "hold" Funktion kannst du dann 
auch die Übertragungsrate (Zeitdauer genau eines Bits messen) ermitteln 
und somit schon mal ausschließen, dass du dabei einen Fehler hast.

Den Rest kannst du dann eher mit einem normalen CAN-Teilnehmer (z.B. 
Peak-Hardware oder Vector wenn Geld vorhanden ist) und einer guten 
Auswertesoftware untersuchen.

von Steffen R. (steffen_rose)


Bewertung
0 lesenswert
nicht lesenswert
Bülent C. schrieb:
> Peter Dannegger schrieb:
>> Alternativ könnte man den LA auch an RXD eines CAN-Transceivers (z.B.
>> TJA1050T) anschließen.
>
> Geht Leider nicht, da ich einen LPC11C24 vorliegen habe. Der hat den
> Transceiver mit on Board.

Was willst Du überhaupt analysieren?

Die Güte des Signals - dafür ist eher ein Oszi geeignet.
Bittiming - Da du einen Oszi hast, ist dieser hierfür gut geeignet
CAN Bitream - braucht man extrem selten
CAN Nachrichten - dafür wäre ein CAN Adapter mit PC Tool sicher besser 
geeignet

von Thomas O. (kosmos)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
besorg dir doch einfach einen CAN-Tranceiver wie oben geschrieben wurde, 
denn hängst du einfach mit rein und gut.

Hier mal ein Bild vom Oszi einmal CANH, CANL und einmal RX vom MCP2551

ansonsten einfach Masse vom LA mit CANL verbinden dann hats du die 
Differenz allerdings muss die halt höher als die Schaltschwelle des LAs 
sein.

von Bülent C. (mirki)


Bewertung
0 lesenswert
nicht lesenswert
Thomas O. schrieb:
> RX vom MCP2551

Frank K. schrieb:
> Ansonsten eben CAN-Transceiver benutzen,

Peter Dannegger schrieb:
> Alternativ könnte man den LA auch an RXD eines CAN-Transceivers (z.B.
> TJA1050T) anschließen.


Ja, die einfachsten Workarounds sind die die am weitesten sind... Auf 
die Idee mit dem Transceiver hätte ich auch kommen müssen...tat es aber 
nicht.
Danke für den heißen Tipp!

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.