Mit welcher Baudrate sollte man nach der Initialisierung die SPI-Schnittstelle takten damit die meisten Karten unterstützt werden? Ich hatte den Takt auf 5MBaud gesetzt was auch mit meiner ersten Testkarte wunderbar funktionierte. Schon die 2te Karte mag aber gar keine Baudraten über 400kBaud.
Nach der Initialisierung bis 25MHz. Deine 2. Karte wurde dann evtl. nicht richtig initialisiert. Welchen Code benutzt du?
Wie ist denn die SD-Karte angeschlossen...? Ich habe z.b. einen mega168 mit 20mhz: Läuft der µC mit 3.3 Volt & direkt angeschlossener sd-karte, so geht das maximum, verwende ich aber 5V am µC und einen Spannungsteiler um auf die 3.3V zu kommen, so geht's in der regel nur mit der halben geschwindigkeit... sieht mit richtigem levelshifter sicher auch wieder anders aus...
Ich habe die Karte direkt an einem uC angeschlossen der mit 3,3V läuft. Die initialisierung mit 400kBaud läuft sauber durch, danach schalte ich auf 5MBaud um und mit der 2ten Karte kommten falsche Daten beim Lesen eines Blocks. Belasse ich die Baudrate auf 400kBaud funktioniert es. Aber sobald ich eine höhere Baudrate wähle (1MBaud...) nicht mehr. Das kann doch nicht sein, ich dachte, dass jede Karte zumindest 5MBaud kann, da ich auch die 20MHz im Kopf hatte.
Hi, wie sieht denn deine Ini für die SD-Karte aus und wartest du beim Lesen von Blöcken auch auf das ACK 0x00 von der SD und dem Block Anfang 0xFE ? Gruß
Ich warte auf den Block-Anfang 0xFE. Und eben an dieser Stelle bleibt meine 2te Karte hängen bei 5MBaud, da kommen erst einige andere Daten und dann nur noch 0xFF.
Hier mal zum vergleich die Antworten auf ein Read Single Block Kommando: Karte die funktioniert: (SanDisk) 0xFF 0xFF 0xFF 0xFF 0xFE -> Daten Karte die nicht funktioniert (Kingston): 0 3F E0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 80 1 61 F9 F9 FF E0 0 0 0 3F E7 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A B5 54 75 BF FF FF FF FF F -> FF forever
Zwar nur überflogen, aber wenn da nochn 0x55 0xAA am Schluß wäre hätte ich ja fast darauf getippt, daß das der MBR deiner Karte ist. Kannste das mal formatieren, so daß man besser sieht was was ist. Am besten immer in 16byte Blöcke. Ist die Kingston vielleicht ne SDHC ? Und zeig mal deine SD-Ini ! Gruß
Ne, ist keine SDHC, ist eine 2GB-Karte. Wie gesagt, das komische ist ja, dass es mit 400kHz Takt funktioniert. Ich kann die Daten oben auch auf der Karte nicht finden, hab sie schon mit einem Hex-Editor geöffnet und danach gesucht.
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.