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
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.
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.
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.