CAN Controller MCP2515 Problem mit SPI ?

Gast #505674
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
Angehängte Dateien:
Gast #506610
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.
Gast #511576
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);
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren