Probleme bei CAN Bus

OP #2317199
Lesenswert?
• ▲
▼
Hallo,

ich hab im Moment das Problem, dass ich keine Nachrichten ueber den CAN 
Bus empfangen oder senden kann.
Ich verwende einen ATMega32 der ueber SPI mit einem MCP2515 verbunden 
ist. Als Bustreiber verwende ich einen MCP2551. Schaltplan befindet sich 
im Anhang. Hab hier kein Eagle deswegen mal schnell einen mit Powerpoint 
gemacht.

Ich benutze die Bibliothek die vom Roboterclub Aachen entwickelt wurde.
Beim Erstellen der Bibliothek bin ich schon auf das erste Problem 
gestossen.
Beim builden bekam ich einen Fehler das er die Funktionen spi_wait und 
spi_start nicht kannte. Ich hab dann den spi.h includiert und den 
Funktionsprototypen etwas geaendert. Seit dem funktioniert es. Kann auch 
einwandfrei Register beschreiben und auch die richtigen Werte auslesen.

Beim Erstellen der Bibliothek fuer einen AT90CAN128 bekam ich eine 
Fehlermeldung von WinAVR, dass dieser Kontroller nicht unterstuetzt 
wird. Kann aber eigentlich nicht sein.

Falls jemand aehnliche Probleme damit hatte oder eine bessere Loesung 
dafuer hat waere ich sehr dankbar.

Nun zu dem schwierigeren Problem.
Verwende ich den LOOPBACK Mode des MCP2551 funktioniert alles 
einwandfrei.
Sprich ich kann Nachrichten senden und empfang diese auch. Also habe ich 
den selben Aufbau auf einen weiteren Steckbrett aufgebaut um ma ein paar 
Nachrichten hin und herzuschicken. Aber es funktioniert nicht. Es wird 
zwar eine Nachricht in den Sendepuffer geschoben aber es gibt 
offentsichtlich Probleme beim Senden den das Fehlercounter Register wird 
hochgezaehlt. Die entsprechenden Flags werden gesetzt bis beim Ueberlauf 
der Controller dann in den Bus OFF Zustand geht. Ich verwende auf beiden 
Steckbrettern das selbe Programm, sodass das Bittiming ja in Ordnung 
sein muesste.

Ich werde auch mal das c.file mit dem Hauptprogramm anhaengen
Hat jemand eine Idee was ich falsch mache?

Gruss Johannes
Angehängte Dateien:
Gast #2317507
Lesenswert?
• ▲
▼
Hallo,

> Verwende ich den LOOPBACK Mode des MCP2551 funktioniert alles einwandfrei.

Logisch; der MCP2551 ist falsch angeschlossen (siehe Datenblatt!). TxD 
an TXCAN und RxD an RXCAN anschliessen, nicht anders rum.

> rs solltest du offen lassen.

Besser nicht; Anschluss an GND ergibt höchste Slew-Rate auf dem Bus (was 
für HiSpeed-CAN auch erforderlich ist). Also Rs so belassen. Aber Vref 
gehört nicht an 5V; es ist ein Ausgang.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.