Hallo,
habe mich in letzter Zeit auch mit SD-Karten und deren Ansteuerung beschäftigt.
Also ohne Arduino-Umgebung und dafür selber geschriebener Code (aber noch in Arbeit).
Dass es nicht klappt, kann viele Ursachen haben.
Einerseits die Hardware, also z.B.
- vernünftige Spannungsversorgung der Karte
- falls Pegelwandler 5V<->3,3V nötig sind: keine Spannungsteiler, lieber geeignete ICs nehmen
- Leitungslängen und maximale Taktfrequenzen beachten, bei langen Leitungen lieber niedrigere Frequenzen. Manche Karten erwarten sehr steile Flanken.
- nicht alle Karten verhalten sich gleich !!! Evtl. andere Marke probieren. Auch SD/SDHC beachten. Nicht alle Bibliotheken unterstützen die großen Karten
- Pullupwiderstand 10k an DO-Leitung (MISO) und /CS-Leitung.
Andererseits die Software:
- Dateisystem der Karte muss passen, die Bibliotheken verwenden meist FAT16 oder FAT32. Kleine Karten <32MB haben FAT12.
- Initialisierung: Unmittelbar nach Anlegen der Versorgungsspannung. Clock maximal 400kHz. Würde empfehlen, nach jedem Flash-Vorgang auf den Arduino diesen danach kurz aus- und wieder einzuschalten. In meinen Testfällen wollen die Karten nach angelegter Spannung höchstens eine Initialisierung. Danach geht es nicht mehr. Erst wieder nach aus- und einschalten.
- Die Karte kann nach Unterbrechungen in der Kommunikation in einen Stromsparmodus gehen.
- Evtl. Karte neu formatieren
Das sind erst mal ein paar Anhaltspunkte, denen mal nachgehen könnte.
Grüße,
Bernhard
Lesezeichen