Gast
#667008
Hallo, ich widme mich mal wieder meinem Minirechner und versuche eine gescheite MMC Kartenverwaltung aufzubauen, ohne gleich ein FAT System aufsetzen zu müssen, was ich für PIC sowieso nicht auftreiben kann. Als Test habe ich Routinen geschrieben, die nach einem Zufallsprinzip Blocks beschreiben, lesen und vergleichen, so schnell wie möglich aber mit 250 khz Busrate wegen der Widerstandsteiler vor der Karte. Bei höehren Taktungen häufen sich leider die Fehler. Ich fange jeden Fehlercode ab, der von der Karte erzeugt werden kann. Dabei fiel mir auf, dass das Programm was bei der einen Karte funktioniert bei einer anderen nur Fehler produzierte. Nach vielen Experimenten zeigte sich, dass ich vor JEDEM OpenSingleBlockForWrite eine Init Sequenz laufen lassen muss und vor jedem Lesen ebenfalls. Es scheint so als würden manche Karten nach Zugriffen einfach auf Idle Mode gehen. Leider verliere ich dadurch Zeit beim Zugriff aber die Fehlerrate ist 0, jetzt bei allen Karten. Weiterhin fiel mir auf, dass manche Karten nach Kaltstart des Rechners sofort einen erfolgreichen Init duechliefen, bei andere musste ich erst mal die Spannungsversorgung programmgesteuert (3.3V Regler mit Power-Down-Mode) abschalten, alle Busleitungen low legen und 300ms warten und dann nochmal zuschalten, bis sie endlich reagierten. Nervig aber leider ist es so. Kann das jemand so bestätigen?