Forum: Mikrocontroller und Digitale Elektronik 32Bit SD Karten Kommunikation


von Oli H. (lavalu)


Lesenswert?

Hi,

ich möchte gerne eine SD Karte mit einem PIC32 via SPI lesen und 
schreiben. Der PIC32 bietet an die SPI Übertragungen in 32Bit "Paketen" 
zu organisieren was für hohe Datenraten bestimmt von Vorteil ist.
Die Alternative wäre es die Übertragungen in 8Bit "Paketen" zu 
organisieren, was jedoch auch dazu führt das ich mich 4 mal ums 
nachladen von SPI Daten kümmern muss.

32Bit wären also mein Favorit was die Übertragung angeht, aber...

Die SD Karten werden ja durch Kommandos gesteuert welche 6Byte lang 
sind, danach muss ich auf eine Antwort der SD Karte warten und hin und 
wieder ein paar Bytes zur SD schicken damit ich dann irgendwann die 
Antwort bekomme. Wann diese Antwort kommt hängt allerdings von dem 
Kommando ab.

Mein Problem ist nun: Sind die Antworten von der SD Karte in auch in 
32Byte Paketen organisiert so dass ich davon ausgehen kann das sich das 
Antwort Byte z.B. in den Bits7 - 0 der 32Bit Übertragungen zu finden 
sind, oder muss ich damit rechnen dass die Antwort jedesmal an einer 
anderen stelle in den 32Bit Paketen zu finden ist ??

Ich habe hier 2 Karten die beim senden eines 6 Byte Kommandos nach 2 
weiteren Bytes die Antwort senden. Das spricht für eine 32Bit 
organisation in den Karten. Hat jemand die Möglichkeit das bei sich auch 
mal zu testen ?? würde mich brennend interessieren.

von holger (Gast)


Lesenswert?

>Mein Problem ist nun: Sind die Antworten von der SD Karte in auch in
>32Byte Paketen organisiert

Nein.

von Jim M. (turboj)


Lesenswert?

holger schrieb:
>>Mein Problem ist nun: Sind die Antworten von der SD Karte in auch in
>>32Byte Paketen organisiert
>
> Nein.

Aber: Es gibt eine Stelle beim Lesen oder Schreiben, ab der genau 512 
Byte (= ein Sektor) übertragen wird. Dort und nur dort könnte man im 
32-Bit Modus arbeiten, d.h. umschalten auf 32 Bit, die 512 Byte 
übertragen und dann wieder zurück schalten.

Ähnlich mache ich das mit dem 16-Bit SSP des LPC1768. Achtung: Die 
Wörter müssen eventuell auf Big Endian gewandelt werden.

von holger (Gast)


Lesenswert?

>>>Mein Problem ist nun: Sind die Antworten von der SD Karte in auch in
>>>32Byte Paketen organisiert
>>
>> Nein.
>
>Aber: Es gibt eine Stelle beim Lesen oder Schreiben, ab der genau 512
>Byte (= ein Sektor) übertragen wird. Dort und nur dort könnte man im
>32-Bit Modus arbeiten, d.h. umschalten auf 32 Bit, die 512 Byte
>übertragen und dann wieder zurück schalten.

Das ist natürlich richtig und auch sinnvoll.
Optimieren lohnt sich sowieso nur da wo der grösste
Datendurchsatz gemacht wird. Beim Kommando oder beim
pollen auf die Response lohnt das nicht. Das ist im
Vergleich zu den 512 Datenbytes nur noch pillepalle
und bringt gar nichts.

von Oli H. (lavalu)


Lesenswert?

Das hört sich tatsächlich nach einer sinvollen Lösung an, danke.

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
Noch kein Account? Hier anmelden.