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