Gast
#782872
Es gibt ja schon unzählige Beiträge zu der Initialisierung von SD- Karten, aber zu diesem Problem konnte ich einfach keine Antwort finden. Mein Vorhaben: Nachdem ich CMD0 schicke, gehe ich in eine do-while Schleife in der ein Dummy- Byte (0xFF) geschrieben wird und auf den Response von CMD0 warte. Ich bleibe eben solange in der Schleife bis ein Response kommt. Mein Problem: Nach dem ersten Dummy- Byte steht aber nicht mehr 0xFF drinnen sondern irgendein Wert und es ist immer derselbe. Die einzigen SD- Karten bei denen das nicht der Fall ist sind von Corsair und die werden schon zur Rarität. Alle anderen Karten (Kingston, SanDisk, ...) geben mir nach dem ersten Dumy irgend einen Wert zurück. Nach langer Debuggerei konnte ich feststellen, dass ein gültiger Response immer nach 2 Dummy- Bytes kommt (das Timing liegt ja bei 1-8 Bytes). Also auch bei den "nicht- funktionsfähigen" SD- Karten konnte ich nach dem 2. Dummy- Byte einen gültigen Response erhalten (also 0x01) wenn ich die Schleife nach dem ersten Dummy weiterlaufen ließ. Eine profisorische Lösung wäre einfach auf den zu gewünschten Response (0x01) zu warten und dann die Schleife zu verlassen, aber wenn ich Fehlerauswerten will, weiß ich dann nicht ob es sich um einen gültigen Response handelt oder irgendeinen Wert. Die Funktion in der das Kommando geschickt und auf den Response gewartet wird, wird bis zu 20 mal aufgerufen bis eben ein ensprechender Response kommt. Ich würde jetzt also gerne wissen wieso ich nach dem ersten Dummy einen anderen Wert als 0xFF bekomme.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Ich habe schon einige freie SD- Spezifikationen durchgesehen und unzählige Foren durchgestöbert, aber dieses Problem wird so eigentlich nie behandelt.