Hallo Zusammen, ich möchte eine MMC über SPI auslesen und Daten mit FAT16 lesen und schreiben. Ich arbeite mit einem PIC18F452 und programmiere in C. Nach anfänglichen Problemen kann ich die Karte initialisieren und CID und CSD einwandfrei auslesen. Status auslesen klappt auch. Nun lese ich Bölock 0x00 aus (cmd=0x51 + 4 Bytes 0x00 + 1 Byte 0xFF) und bekomme auch als response ein 0x00 und eine Antwort die 515 Bytes lang ist. Aus der Antwort werde ich aber nicht schlau, zumal mitten in der Antwort der Text auftaucht: "Invalid partition tableError loading operating systemMissing operating system". Ich habe die Karte schon neu Partitioniert und Formatiert. Auch mit der RSMMC aus meinem Handy habe ich es probiert. Gleicher Fehler. Interessant ist, wenn ich Block 1, 2 oder 3 auslese, bekomme ich den gleichen Block, nur um 1 Byte versetzt. Das Blockende endet übrigen mit 0x55, 0xAA. Hat das schonmal jemand gehabt? Die Karten sind übrigens von Infinion und SanDisk. Gruß Binnesmann
Ja nun, du willst den Bootblock auslesen und hast den Bootblock bekommen. Das er bei dir aber 515Byte gross ist und du ausserdem den Bootblock in jedem Sector findest zeigt aber das bei dir noch einige im argen liegt. Olaf
Hallo Olaf, 515 Byte sind nicht weiter verwunderlich, wie es ja im Datenblatt steht: 1st Byte Start Block 0xFE 2nd-513th Byte Data Last Two CRC und alles logisch. Was ich noch vergaß, ich habe mit Diskedit den ersten Block ausgelesen und der ist vollkommen anders als der den ich auslese. Ich hab nur ein Prgob mit der MMC, mit einer CF funzt das finden der Daten und der FAT. Gruß Binnesmann
naja das sind für mich aber 514byte und nicht 515byte ;) Somit hätten wir das Problem der 1 byte verschiebung von Block zu Block geklärt :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.