Gast
#828764
Ich kann keine SD-Karten über SPI auslesen. Bei meinen MMC-Karten geht aber alles einwandfrei. Als Controller mehme ich den PIC18F6680 Versorgungsspannung 5V. Für die 3,3V der Karte habe ich sowohl Spannungsteiler mit Widerständen als auch Treiber schon erfolgreich getestet (mit MMC). Auch etwas längere Kabel von der SD zum PIC machen mir keine Probleme. Meine Taktfrequenz ist mittlerweile sehr klein, diese habe ich von zunächst 400kHz auf etwa 6 KHz langsamer gemacht. Auch der ACMD41-Befehl wird anstandslos akzeptiert. Danach sende ich optional CMD1. Ich sende alles 100-mal oder mehr, bis zum timeout. Wenn dann Fehler, nochmal von vorne. Alles OK. Auch bei einem timeout von 65000 bekomme ich am Ende nur falsche Werte. Mehrmals-Initialisierungen oder mehr als 80 clocks im disable-mode: alles umsonst. Die SD habe ich genauso angeschlossen wie die MMC, denn die 2 zusätzlichen Anschlüsse brauche ich nicht, obwohl ich schon mit pull-ups und pull-downs experimentiert habe. Allerdings sieht die Pegelfolge vollkommen anders aus als bei einer MMC die funktioniert. Vielleicht kann aber hier jemand etwas mit anfangen: ich lese zunächst nur die 512 Bytes des Bootsektors und erhalte immer: 43 52 30 30 30 30 30 31 54 58 usw. Richtig wäre aber: EB 3C 90 4D 53 44 4F 53 35 2E usw. Mit einer (einzigen) SanDisk funktioniert das sogar richtig, allerdings kann ich diese nicht beschreiben, macht nur Fehler ! Zum Lesen im PC benutze ich WinHex, mit dem ich die Karte im Cardreader auslese. Einen logischen Zusammenhang kann ich hier oben nicht feststellen. Es werden weder Bits verschluckt noch vertauscht. Bei einer anderen SD kann ich immer nur 00 00 00 00 usw. auslesen, warum? Kommt das hier jemandem bekannt vor oder hat jemand eine Idee, warum die MMC-Karten über SPI gehen, die SD-Karten aber alle nicht?