Forum: Mikrocontroller und Digitale Elektronik CAN BUS empfängt nichts


von Christian J. (stormracer)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche nun schon seit ein paar Tagen einen CAN BUS zum laufen zu 
bringen. Dazu verwende ich die Module von Chip45.com. Da ist ein 
AT90CAN128 mit einem ATA6660 drauf. Auch wenn's dort anders steht.

Den RS Pin habe ich auf Masse gelötet.
Zwei Module sind miteinander verbunden. Ich verwende die CAN Lib von 
Kreatives Chaos. Auf dem Steckbrett hat es auch schonmal kurz 
funktioniert. Nun habe ich die beiden Module mit einer Lochraster 
Platine Verbunden.

Mein Problem ist, ich kann zwar senden, aber nichts empfangen. Es tritt 
aber auch kein Fehler auf, der vom CAN erkannt wird. Also ich kann auch 
mehr als 15 Nachrichten versenden, ohne dass ein Fehler auftritt. Erst 
wenn ich den Bus unterbreche erhalte ich Fehler.

Trotzdem kann ich auf dem zweiten Kontroller nichts empfangen.
Ich habe mal ein Oszi Bild von CANH (gelb) und CANL (blau) angehängt. 
Die CANH sieht dort stark gestört aus. Die CANL nicht. Auch wenn ich die 
beiden Module gegeneinander vertausche ändert sich nichts.

Ist das Bild normal für CAN? Ich habe leider nur die beiden Module, 
sodass ich nicht anders testen kann.

Die Quelltexte habe ich auch mit angehängt. Das eine Programm wartet 
darauf, dass per UART 8 Zeichen angekommen sind und sendet diese dann 
per CAN. Das andere empfängt die CAN Nachricht und gibt sie per UART 
aus.

Sorry für die schlechte Bildqualität, aber das Handy fokussiert einfach 
nicht auf den Bildschirm.

Viele Grüße
Christian

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Nein das Bild ist nicht normal.
Überprüfe mal die Verbindungen TX,RX,CANH,CANL.
Ich vermute da ist irgendwas nicht vernünftig verbunden.
Gegebenenfalls mal nachlöten.

von cskulkw (Gast)


Lesenswert?

Sind die Module jeweils am CAN mit 120 Ohm abgeschlossen? Sonst könnten 
Dir die Reflexionen Probleme machen.

Als weiteren Tip würde ich Dir empfehlen die RX-Ausgänge der Transceiver 
AT660 anzuzapfen. Da siehst Du am besten, ob die Signale vom Bus richtig 
am AT90CANxxx ankommen.

Wenn das gelbe Signal das Differenzsignal auf dem CAN-Bus sein soll, 
würde ich hier auf nicht abgeschlossene CAN-Knoten tippen.

von Christian J. (stormracer)


Lesenswert?

Hallo,

danke für die Antworten.

Die Module sind mit direkt miteinander verbunden. Das Bild ist 
entstanden, als ich keinen Abschluss Widerstand eingebaut hatte. Mit 
Widerstand hat es auch nicht funktioniert. Da habe ich aber das Scope 
noch nicht gehabt. Das kann ich mir also erst morgen wieder angucken.

Wie sollte ich den den Bus abschließen? Eine 120Ohm Widerstand in die 
Mitte zwischen die beiden Module. Oder jeweils am "Ende" des Busses zwei 
120Ohm, oder 60 Ohm Widerstände?

Viele Grüße
Christian

von Schorschi (Gast)


Lesenswert?

Hi,

zum Abschlus:

Am Anfang und am Ende jeweils 120Ohm zwischen CANL und CANH.
Nicht vergessen die GAN_GND Leitung miteinander zu verbinden.

Gruß,
Schorschi.

von cskulkw (Gast)


Lesenswert?

Schorschi schrieb:
> Nicht vergessen die GAN_GND Leitung miteinander zu verbinden.

Also, bei mir habe ich das nicht gemacht. Die Kommunikation nur mit 
CAN_H und CAN_L funktioniert auch ohne Ground bei 1MBaud zwischen 2 
Geräte, die jeweils ihr eines Steckernetzteil haben.

CAN_GND ist noch ein Überbleibsel aus der Zeit des Low-Speed-CANs

von TestX .. (xaos)


Lesenswert?

cskulkw schrieb:
> CAN_GND ist noch ein Überbleibsel aus der Zeit des Low-Speed-CANs

nein ist es nicht! CAN ist zwar differentiell aber du brauchst ein 
bezugspotential, da du sonst die transceiver oder die ganze schaltung 
toasten kannst, gerade wenn du 2 steckernetzteile verwendest..

schau dir wie gesagt auch mal die RX,TX leitungeen der transceiver 
an..aber irgendwas stimmt da total nicht

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.