Jetzt sitz ich schon den dritten Tag an der Schaltung und messe und teste usw.
Ich krieg die SD Karte ScanDisk 512MB nicht zum laufen! Nachdem ich den Code dreimal auf den Kopf gestellt habe bin ich am Ende meiner Weisheit.
Ich habe mir das Timing der SD Karte (pdf Datei) angesehen.
Die SD Karten Pegel müßten doch in Ruhe ALLE! HIGH führen!
Im Code (mmc.c) sieht das aber anders aus!
Code: Alles auswählen
//Aktiviren des SPI - Bus, Clock = Idel LOW //SPI Clock teilen durch 128
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1); //Enable SPI, SPI in Master Mode
SPSR = (0<<SPI2X);
Müßte doch heißen:
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1)|(1<<CPOL);
Genauso verhält es sich mit PINB3(CS). Es kommt nur ein schwacher Pegel von PINB3(CS).
Mit MMC_Write |=(1<<MMC_Chip_Select); wird PINB3 auf HIGH gesetzt.
Also eine Diode wäre an. Bei mir ist es genau andersrum.
Mit MMC_Write &=~1<<MMC_Chip_Select); wird der Pegel HIGH!!
Wie kommt das zustande???
Liegt es vieleicht daran das der SPI Bus und PORTB parallel betrieben werden. Ich zweifle ja nicht an das der Code bei anderen WEBSERVERN funzt, aber warum geht dieses Schei...ding nicht bei mir. Zumindest müße er doch eine Initiallisierung zurückgeben.
Terminal bring:
Start...
Keine MMC/SD Karte gefunden
MMC/SD Karte gefunden
dann bleibt das Terminal stumm...
Wenn ich dann einen kurzen Impuls auf DO der SD Karte gebe,
wird die Netzwerkkarte initiallisiert. Das ist der Inpuls der von der SD Karte kommen sollte!
Hardware ist überprüft (ATmega32 gewechselt, Fusebits kontrolliert, Levelshifter 5-3,3V überprüft, SD Karte i.O.)
PS1: Angaben zur Hardware:
ATmega32, 16Mhz mit Code 1.39 progammiert, WinAVR V2.5
ScanDisk SD Karte 512MB
Schaltung Webserver nach Mikrokontroller.com / J.Busse
PS2: Der Webserver läuft ohne eingebundene SD Karte einwandfrei!!
Kann mir jemand noch Tips oder Denkanstöße geben, die mir weiterhelfen
Grüße von OLLI