Hallo!

Ich versuche hier verzweifelt ne SD Karte zu initialisieren. Mehr will ich grad granicht, bzw. zu mehr bin ich noch nicht gekommen.

Auf der Seite von Ulrich Radig ist ja auch das PDF mit den Timings. Genau das habe ich jetzt mal nachprogrammiert, aber es geht ums verrecken nicht.
Auch das Datenblatt das ebenfalls auf der Seite von Ulrich Radig zu finden ist, hat mir nicht sonderlich weitergeholfen, außer dass ich jetzt weiss, dass es nur 6Bit Befehle sind.

Hier aber erstmal mein Code:


Code:
   $crystal = 8000000
   $baud = 9600
   $regfile = "M8def.dat"


Dim Dout As Byte
Dim Din As Byte
Dim I As Byte

Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinb.5 = Output

Config Pinb.4 = Input

Mmc_cs Alias Portb.2
Set Mmc_cs

Sck Alias Portb.5
Mosi Alias Portb.3
Miso Alias Pinb.4

Set Sck
Set Mosi
Set Miso                                                    'Pull Up


Do
Gosub Mmc_init

Wait 1

Print Bin(din)
Loop



Mmc_init:

For I = 1 To 10

Dout = &HFF
Shiftout Mosi , Sck , Dout , 1 , 8 , 16

Next


Reset Mmc_cs

Dout = &H00
Shiftout Mosi , Sck , Dout , 1 , 6 , 16

Dout = &H00
Shiftout Mosi , Sck , Dout , 1 , 8 , 16
Shiftout Mosi , Sck , Dout , 1 , 8 , 16

Dout = &H95
Shiftout Mosi , Sck , Dout , 1 , 8 , 16


Shiftin Miso , Sck , Din , 1 , 8 , 16


Set Mmc_cs

Return
Ich sende also erst 80 Pulse, dann geht CS auf Low, anschließend CMD0 und so weiter.
Von der Karte kommt aber kein Fatz zurück. Die bleibt einfach stumm.

Elektrisch ist alles OK, kann auch mit dem Oszi wunderbar CS, Dout, und CLK anschauen.
Karte ist auch OK, da sie in meiner Digicam tut.

MfG

Schoko

P.S.: Hier die Timings von der SD-Karte: http://www.ulrichradig.de/site/atmel...CSDTimming.pdf