Forum: Mikrocontroller und Digitale Elektronik MCP2515 senden wird nicht ausgeführt


von Thomas (Gast)


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!

von Lutz (Gast)


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äß?

von Thomas (Gast)


Lesenswert?

100 Ohm an beiden Seiten.

von Thomas (Gast)


Lesenswert?

Auch wenn ich den MCP2515 im Loopback Modus betreibe wird das Senden 
nicht durchgeführt/beendet.

von Thomas (Gast)


Lesenswert?

Oh es scheint als würde der MCP2515 einfach nicht den Modus wechseln.

Ich ziehe mein vorherige Aussage zurück. Bin mir nun nicht mehr sicher, 
ob der MCP2515 jemals schon in einem anderen Modi als Configuration Mode 
war.

Habe auch schon den MCP2515 mit einem neuen getauscht. Keine Änderung.

von H.Joachim S. (crazyhorse)


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.

von Thomas (Gast)


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!

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.