Forum: Mikrocontroller und Digitale Elektronik CAN Controller MCP2515 Problem mit SPI ?


von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute, ich hoffe ihr könnt mir helfen,

ich versuche schon seit gut einer Woche den MCP2515 zum laufen zu 
bekommen, aber  es klappt einfach nicht. Natürlich habe ich mir die 
Internetseite "kreatives Chaos" angeschaut, von der habe ich mir auch 
den Treiber abgleitet. Mein Problem: Ich weiss ja nicht ob der 
Controller richtig initialisiert wurde, deswegen gebe ich mir über die 
serielle Schnittstelle immer die Werte von CANSTAT und CANCRTL aus da 
steht aber immer 0xFF drin was aber laut Datenblatt nicht geht. Ich habe 
mal mein komplettes AVR Studio Projekt gepostet und wär froh wenn mir 
jemand helfen könnte. Ich benutze einen Atmega128

von Andreas (Gast)


Lesenswert?

kann sich keiner erbarmen mir zu helfen ?

von A.K. (Gast)


Lesenswert?

SPI-Treiber testen: Slave rauswerfen und MISO und MOSI über Widerstand 
>= 5K verbinden (Widerstand weil ISP die auch benutzt) und wenn's ein 
Echo gibt ist alles ok.

Und wenn der Treiber ok ist, liegt's an der Hardware. SPI abschalten und 
mit Testprogramm gaaaaaaaaanz langsam an den Pins wackeln. Das lässt 
sich dann sogar mit LED an den MCP-Pins nachmessen.

von Andreas (Gast)


Lesenswert?

Also ich lese, wenn ich das SPI brücke immer 0xFF zurück verstehe aber 
nicht woran das liegen kann ...

von Andreas (Gast)


Lesenswert?

meine SPI init sieht so aus:

void SPI_MasterInit(void)
{

    // Aktivieren der Pins für das SPI Interface
    DDR_SPI  |= (1<<DD_SCK)|(1<<DD_MOSI);
    PORT_SPI &= ~((1<<DD_SCK)|(1<<DD_MOSI)|(1<<DD_MISO));

    DDR_CS   |= (1<<P_CS);
    PORT_CS  |= (1<<P_CS);

    // Aktivieren des SPI Master Interfaces, fosc = fclk / 2
    SPCR = (1<<SPE)|(1<<MSTR);
    SPSR = (1<<SPI2X);
}

von crazy horse (Gast)


Lesenswert?

gehst du dahin:
http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515

Meiner Meinung nach die beste Seite zum Thema AVR <-> MCP2515

Wer es damit nicht schafft, sollte die Finger von MCs lassen :-)

von Andreas (Gast)


Lesenswert?

haha ... ich denke das ich ein Problem mit der SPI habe weil ich da 
immer nur 0xff zurücklese auch wenn ich MISO mit Mosi über einen 
Widerstand kurzschliesse

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.