Hallo zusammen, eigentlich habe ich keine Probleme mit meinem AVR in Zusammenarbeit mit SD und SDHC Karten. Ich habe hier jedoch eine Apacer 60x 2GB, welche sich als SDHC ausgibt (CMD8 wird beantwortet mit 0x01), aber bei CMD24 z.B. nur bei den Adressen 0x000, 0x200, 0x400 als Response 0x00 sendet. Alle anderen Adressen zwischen 0x000 unx 0x400 werden mit 0x20 (Address Error) beantwortet (höhere Adressen habe ich nicht getestet). Wenn ich die Karte jedoch als SD-Karte betreibe, also die SDHC-Auskunft einfach ignoriere funktionieren die Schreibzugriffe ohne Probleme.
1 | CMD: 5800cffe005a |
2 | Response: ff, 00, |
Wenn die Karte eine SDHC-Karte wäre, könnte ich diese Adresse ja gar nicht adressieren (cffe00 -> wäre Block-Nr. 13630976, wäre irgendwo bei 6.5GB). https://github.com/OlliL/P8000_WDC_Emulator/blob/master/P8000_WDC_Emulator/wdc_drv_mmc.c Es geht um die Funktionen mmc_cmd() und mmc_write_sector(). Die SDHC Abfrage ist in mmc_do_init(). Weiss einer was hier los ist - warum behauptet die Karte SDHC zu sein? Was mache ich bei der CMD8 Auswertung falsch? Meine DSLR und Laptop können mit der Karte problemlos arbeiten (aber die machen sicherlich SDIO). Lt. Amazon ist die auch SDHC: http://www.amazon.com/Apacer-60X-Secure-Digital-Memory/dp/B000RWGD02 Ich habe aber z.B. eine 8GB SDHC Disk von PNY die Problemlos im SDHC-Modus arbeitet.