Hallo, Es gibt zu SD-Karten schon einiges an Infos und man wird auch immer wieder auf die Arbeiten von "chan" (oder wie auch der Kerl heißen mag) verwiesen. Ich hätte jedoch ein paar grundlegende Fragen: 1. In der Spec wird erwähnt das beim initialisieren der Karte (ACMD41) die Karte antwortet mit einer Bitmask welche die möglichen versorgungsspannungen angibt. Ist es notwendig das zu beachten oder unterstützt sowieso jede karte 3V ? In den verfügbaren Beiträgen und über google wird mehr oder weniger immer nur gesagt: Schließ 3V an und sei glücklich - aber warum gibt es dann diese Spannungs-Bitmask??? 2. Kann man einen Datenblock (Page) "stückweise" in die Karte übertragen bevor man das write einer auslöst oder muss man eine page immer am Stück übertragen und schreiben? grüße, Berhard
Bernhard Kraft schrieb: > Schließ 3V an und > sei glücklich - aber warum gibt es dann diese Spannungs-Bitmask?? Es gab mal low Voltage MMCs IIRC, aber ich glaube die kennen kein ACMD41. Bernhard Kraft schrieb: > 2. Kann man einen Datenblock (Page) "stückweise" in die Karte übertragen Nein, man muss den auf einmal senden. Bei alten SD (ohne HC) war das Stückeln theroretisch möglich, aber AFAIK gab es keine Karte die das praktisch kann (Write partial block Bit war nie gesetzt). Teilweises Lesen ging oft. Bei SDHC gibt es nur noch Blockadressen.
Die Spannungs Bitmask ist ein Relikt von einer Früheren Version des Standards, damals waren noch einige Spannungslevels (Low Voltage) mehr definiert und zur Verwendung geplant als in der aktuellen Version. Gemäss Standard 2.0 gibt es zwei Arten von Karten, High Voltage Karten mit Versorgungsspannungen von 2.7-3.6V und Dual Voltage Karten die zusätzlich noch tiefere Spannungen unterstützen. Diese Dual Voltage war aber nur als TBD (To be done) im Standard. Im Standard 3.0 sind die Low Voltage bereits ganz verschwunden. In der Praxis ergibt sich daraus dass SD 2.00 oder 3.01 konforme Karten immer mit 2.7-3.6V arbeiten. Gruss
Also zuerst mal danke für die Antworten. Ich denke das beantwortet meine Fragen. Ich werde einfach 3.0 V als Versorgung wählen. Sowohl mein µC (PIC18F25K80) als auch die meisten Komponenten (RTC, I2C Feuchtigkeits/Temperatur Sensor) kommen damit zurecht. Der Feuchtigkeits/Temperatur Sensor (SHT21) benötigt sogar 3.x V und darf mit 5V gar nicht betrieben werden - dadurch erspare ich mir sogar meinen I2C Pegelwandler. Einzig meinen CAN Controller muss ich gegen eine Alternative austauschen (CAN Busse lassen sich aufgrund der benötigten Differenzspannung nur schwer mit 3V betreiben). Des weiteren hab ich wo gelesen das 3V "moderner" als 3.3V ist und habe mich daher für ersteres entschieden. Zu dem schreiben eines Blockes: Das heißt im Prinzip ich darf nur das CS (Chip select) der SD-Karte während des schreiben eines Blockes nicht unterbrechen. Es gibt jedoch keine Mindestanforderung was die dauer des Schreibens betrifft. Soweit ich das verstehe ist die SPI Logik der SD-Karte ja statisch. D.h. ich könnte durchaus z.B. einfach eine Pause während des Schreibens machen und keine weiteren Clock-Signale + Daten senden. Wäre das zulässig?
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.