MCP2515 senden wird nicht ausgeführt

Gast #3497975
Lesenswert?
• ▲
▼
Hi Leute,

ich bin darüber mit zwei Atmegas32 sowie MCP2515 und MCP2551 eine 
Verbindung aufzubauen. Jedoch bekomme ich es nicht hin.

Die SPI Verbindung zu den MCP2515 funktioniert. Ich kann Register 
beschreiben und im nachhinein auch wieder auslesen.

Folgende Initialisierung nehme ich vor:
RESET
CNF3          0x07
CNF2          0xBA
CNF1          0x03
CANINTE       0x07
READ CNF1 (testen ob CNF1 den Wert 0x03 hat)
BFPCTRL       0x00
TXRTSCTRL     0x00
RXB0CTRL      0x60
RXB1CTRL      0x60
CANCTRL       0x00

TXB0SIDH  0x80
TXB0SIDL  0x40
TXB0EID8  0x00
TXB0EID0  0x00
TXB0DLC   0x01
TXB01     0xAA

RTS mit 0x81

Nach Figure 3-1 auf Seite 17 des Datenblattes MCP2515 wird das Senden 
nur begonnen wenn der Bus bereit ist ("Is CAN bus available to start 
transmission")

Wann ist der Bus bereit? Ich beobachte mit dem Oszilloskop CANH und CANL 
gegen GND. Beide liegen bei ca. 2,5V was mir eigenartig erscheint.

Die Schaltung ist folgendem Schaltbild nachempfunden:
http://www.google.de/imgres?sa=X&espv=210&es_sm=93&biw=629&bih=634&tbm=isch&tbnid=fxK_XQePJL_ifM%3A&imgrefurl=http%3A%2F%2Fsiwawi.bauing.uni-kl.de%2Favr_projects%2Fcan%2F&docid=JU7P9_HZ1n_MHM&imgurl=http%3A%2F%2Fsiwawi.bauing.uni-kl.de%2Favr_projects%2Fcan%2Favrmcp_basic2.jpg&w=800&h=482&ei=_ZneUomzK8jXtQa0soHwCw&zoom=1&iact=rc&dur=642&page=1&start=0&ndsp=8&ved=0CGIQrQMwAg

Ich benutze jedoch einen 16MHz Quarzoszillator an OSC1

Ich komme hier nicht weiter. Mache ich irgendetwas falsch? Bin für alle 
Ideen und Anregungen dankbar!
Gast #3498064
Lesenswert?
• ▲
▼
Thomas schrieb:
> Wann ist der Bus bereit? Ich beobachte mit dem Oszilloskop CANH und CANL
> gegen GND. Beide liegen bei ca. 2,5V was mir eigenartig erscheint.

Also ist der Bus auf jeden Fall schon mal "bereit". Daran liegt es also 
nicht.
Terminiert ist der Bus auch ordnungsgemäß?
#3498455
Lesenswert?
• ▲
▼
Bisschen wenig Input, oder?
Schreibst du wirklich selbstzusammenklamüserte Hex-Werte in die 
Register? Und wenn ja, denkst du wirklich, es setzt sich einer hin, 
schaut ins Datenblatt und entschlüsselt, was es z.B. bedeutet, CANINTE 
mit 0x07 zu füttern??
Setz ein lesbares Programm rein, dann wird dir auch geholfen werden 
können.
Gast #3498824
Lesenswert?
• ▲
▼
Es scheint nun zu funktionieren.

Nach dem setzen des Modi lese ich nun erneut CANSTAT aus. So steht es 
auch im Datenblatt.

Manchmal wird bei der Übertragung ein Error Flag gesetzt. Dies verstehe 
ich noch nicht, da sich bisher noch keine Nachrichten "überschnitten" 
haben. Habe bisher noch nicht viel gesendet.

Vielen Dank für die Infos!

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.