Forum: Mikrocontroller und Digitale Elektronik CAN Low und CAN High mit Oszilloscop darstellen?


von Andi Ü. (and0riz0r)


Lesenswert?

Hallo,

gibt es eine Möglichkeit mit einem normalen Oszilloskop beim CAN-Bus 
CAN_H und CAN_L sichtbar zu machen? Ich habe 4 Kanäle und 200 MHz 
Bandbreite, aber ich weiß einfach nicht, wie man das machen soll.
Irgendwie kann dass doch gar nicht gehen, denn woher soll das Oszi denn 
wissen, im Bezug auf was es messen soll - oder geht das doch irgendwie?

CAN-GND verwende ich nicht. Was soll das überhaupt sein :-)

von karadur (Gast)


Lesenswert?

Hallo

CAN-GND ist das Referenzpotential.

Zum Scope: nimm 2 Widerstände z.B. 1k und schalte die zwischen die 
Datenleitungen. Das Mittelpotential an Scope GND. Die Datenleitungen an 
2 Kanäle und dann das Scope auf Differenzbildung schalten.

von TestX .. (xaos)


Lesenswert?

Andi Ü. schrieb:
> CAN-GND verwende ich nicht. Was soll das überhaupt sein :-)
solltest du dringend verwenden..alternativ liegt das meistens auch auf 
CAN-SHIELD - ansonsten einfach die masse deines systems nehmen und gut..

von Andi Ü. (and0riz0r)


Lesenswert?

> [CAN  GND] solltest du dringend verwenden

Warum? Dafür ist das Signal doch differenziell.
Ich kann auch nix gegenüber meiner "Systemmasse" sehen mit dem Oszi. Wie 
soll dass dann eine Referenz sein?


Der Transceiver den ich habe, der hat auch keinen CAN-GND Eingang (oder 
Ausgang?)
http://www.ti.com/product/sn65hvd1050

Nur mein PC-CAN-Viewer, der hat eben noch ein CAN-GND.

> Zum Scope: nimm 2 Widerstände z.B. 1k und schalte die zwischen die
> Datenleitungen. Das Mittelpotential an Scope GND. Die Datenleitungen an
> 2 Kanäle und dann das Scope auf Differenzbildung schalten.

Nette Idee, das werd ich gleich mal testen.

von TestX .. (xaos)


Lesenswert?

Andi Ü. schrieb:
>> [CAN  GND] solltest du dringend verwenden
>
> Warum? Dafür ist das Signal doch differenziell.
> Ich kann auch nix gegenüber meiner "Systemmasse" sehen mit dem Oszi. Wie
> soll dass dann eine Referenz sein?
das signal ist zwar differentiell, trotzdem haben beide signale einen 
bezug zu der spannungsversorgung des treibers mit dem sie erzeugt 
werden. in deinem fall einfach dem GND pin - wenn du mit dem oszi nicht 
siehst, machst du messtechnisch was falsch...
außerdem sollte man dringend ein bezugspotential bei CAN etc. mitführen 
da es sonst probleme geben kann durch extreme spannungsdifferenzen 
zueinander..

> Der Transceiver den ich habe, der hat auch keinen CAN-GND Eingang (oder
> Ausgang?)
> http://www.ti.com/product/sn65hvd1050
der hat aber einen GND pin ...

von Dietrich L. (dietrichl)


Lesenswert?

Andi Ü. schrieb:
> Der Transceiver den ich habe, der hat auch keinen CAN-GND Eingang (oder
> Ausgang?)
Doch, das ist Pin 2 (GND).
CANL und CANH schweben doch nicht im freien Raum! Die Signale werden 
beim Senden doch in Richtung Vcc und GND geschaltet. Als Eingänge müssen 
die Spannungen auch immer zwischen 0 und Vcc liegen. Also muss Du bei 
ein CAN-Verbindung auch immer den GND als Bezugspotential mitverbinden!

Gruß Dietrich

Edir: Andi D. was schneller :-(

von Andi Ü. (and0riz0r)


Lesenswert?

Geht. Top! Danke.

Nur was ist GND eigentlich hier? Die Mitte zwischen den beiden Leveln? 
:)

von TestX .. (xaos)


Lesenswert?

Andi Ü. schrieb:
> Nur was ist GND eigentlich hier? Die Mitte zwischen den beiden Leveln?
> :)
CAN spezifikation lesen... CANH und CANL befinden sich zwischen GND und 
VCC

von karadur (Gast)


Lesenswert?

Hallo

GND brauchst du um den Gleichtaktbereich der Eingänge nicht zu 
überfahren. Das Signal ist zwar differentiell, aber über Netzteile, 
Erdschleifen u.s.w. hast du evtl. eine Offsetspannung die den Eingang 
des Empfängers nicht mehr arbeiten lässt.

von Andi Ü. (and0riz0r)


Lesenswert?

Ich messe aber definitiv nichts zwischen GND und CANH bzw CANL. GND ist 
dasselbe GND dass den CAN-Transceiver "speist".
Die Datenübertragung funktioniert aber tadellos.

Mit dem Trick von Karadur seh ich die einzelnen Signale auch.
Differentiell zwischen CANH und CANL messen klappt natürlich auch.

Seid ihr sicher, dass man zwischen GND und CANH was messen können 
sollte?

von Andi Ü. (and0riz0r)


Lesenswert?

Andi D. schrieb:
> CAN spezifikation lesen... CANH und CANL befinden sich zwischen GND und
> VCC

Das hatte ich nicht gemeint. Ich wollte damit die Sache mit den beiden 1 
k Widerständen ansprechen.

von karadur (Gast)


Lesenswert?

Hallo

du solltest etwas messen können. Der Sender gibt das Ausgangssignal ja 
bezogen auf GND aus. Hast du als GND den GND vom Ausgang? Evtl. 
galvanische Trennug?

von karadur (Gast)


Lesenswert?

Durch die 1k Widerstände bildest du ein Bezugspotential für dein Scope.
Es hat nix zu tun mit den Potentialen von Sendern und Empfängern.

von Andi Ü. (and0riz0r)


Lesenswert?

karadur schrieb:
> Es hat nix zu tun mit den Potentialen von Sendern und Empfängern.

jop, ich hab halt den einen Kanal dann noch am Scope invertiert, damit 
es so ausschaut, wie es ausschauen soll.

karadur schrieb:
> Hast du als GND den GND vom Ausgang?

Ich hab als GND den GND verwendet, der beim Transceiver an GND 
angeschlossen ist. Meiner Meinung nach ist dieser Anschluss aber primär 
für die Versorgungsspannung des Transceivers :) - also damit da Strom 
rein- und wieder rausfließen kann...

> Evtl.galvanische Trennug?

Hab ich auch schon gedacht, aber der SN65HD1050 sollte keine galvanische 
Trennung haben, denn den gibts schon lang und TI hat erst mit dem 
ISO1050 2009 einen Transceiver mit galvanischer Trennung rausgebracht.
Und ich selber hab jedenfalls keine galvanische Trennung eingebaut :). 
Nicht das ich wüsste :)
Oder kann das an dem USB-Transceiver auf der "anderen Seite" liegen?

von karadur (Gast)


Lesenswert?

Jetzt muß ich passen, evtl. weiß ja jemand anders mehr.

von Andi Ü. (and0riz0r)


Lesenswert?

MEIN FEHLER -shame on me.
Ka was da los war - falsches Triggerlevel oder so. Es geht doch. Das tut 
mir sehr leid.

Blöde Frage, kardur, warum hast du denn dann von Anfang an des mit den 
Widerständen vorgeschlagen? - Wenn es doch eh auch so gehen muss :]

Was ich auch nicht verstehe: Wenn ich nur den CAN-Transceiver an meinem 
Microcontroller mit Strom versorge, dann sendet der dauernd irgendwas 
(also nonstop läuft da am Oszi was, ohne dass irgendwelche expliziten 
Messages vom µC versendet werden sollen). Das geht so lange bis ich den 
USB-Transceiver zugeschalten hab.

Es ist als ob der Transceiver mitbekommen würde, ob noch jemand anderes 
da ist und bis dahin dauernd "Hallo" ruft. Sind das irgendwelche 
"Synch-Sachen?"

Was ist da los? :)

von TestX .. (xaos)


Lesenswert?

Andi Ü. schrieb:
> Was ist da los? :)
programmierfehler..

von karadur (Gast)


Lesenswert?

Dein Scope hat auch gerne ein Referenzpotential.

Solange du keine Störeinflüsse hast mag es auch so gehen.

Ich habe aber in der Industrie erlebt das es nicht geht ohne Bezug. z.B. 
wenn ein 150t Kran anfährt.

von Andi Ü. (and0riz0r)


Lesenswert?

Andi D. schrieb:
> programmierfehler..

? Hm, dann haben Peak die den USB-CAN-Viewer verkaufen aber auch einen 
Programmierfehler gemacht. Denn wenn der alleine dran hängt, geht auch 
etwas auf dem Bus :)

von TestX .. (xaos)


Lesenswert?

Andi Ü. schrieb:
> Andi D. schrieb:
>> programmierfehler..
>
> ? Hm, dann haben Peak die den USB-CAN-Viewer verkaufen aber auch einen
> Programmierfehler gemacht. Denn wenn der alleine dran hängt, geht auch
> etwas auf dem Bus :)

möglich, das ist billig hardwae und die treiber sind der letzte müll... 
normalerweise gehen keien nachrichten über den bus..die müssen explizit 
gesendet werden. kannst dir ja mal die frames anschauen was das für 
welche sind..

von eProfi (Gast)


Lesenswert?

Er braucht ein Gegenüber, das nach dem Paket ein ACK-Bit sendet. Solange 
er diese nicht empfängt, wiederholt er das Paket.

CANH und CANL haben etwa 2 V gegenüber Gnd.
Bei aktivem Bit wird CANH etwa 3 V und CANL etwa 1V.

Daran denken, den Bus beidseitig mit je 120 Ohm abzuschließen (bei 
kurzem Bus reicht auch einseitig).

von Andi Ü. (and0riz0r)


Lesenswert?

eProfi schrieb:
> Er braucht ein Gegenüber, das nach dem Paket ein ACK-Bit sendet. Solange
> er diese nicht empfängt, wiederholt er das Paket.

Ah ok, das kann sehr gut sein. Weil eine Message wird am Anfang 
automatisch noch verschickt, bevor er schweigen soll. Danke für den 
Hinweis.
Geht da dann auch jedes Mal der Errorcounter hoch, wenn er kein Ack 
bekommt?

von TestX .. (xaos)


Lesenswert?

Andi Ü. schrieb:
> Geht da dann auch jedes Mal der Errorcounter hoch, wenn er kein Ack
> bekommt?

ja und irgendwann schaltet er in den passiv modus bzw. shutdown - tu dir 
selbst einen gefallen und besorg dir mal die can spezifikation ..

von karadur (Gast)


Lesenswert?

Hallo

das mit dem Widerstandsteiler funktioniert bei differenziellen Signalen 
immer.

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.