SD-kortläsare/-skrivare

Berätta om dina pågående projekt.
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

SD-kortläsare/-skrivare

Inlägg av mrmike »

Får väl lägga upp en ny tråd för den här som senare ska ingå i min floppydiskemulator
Har filat till en SD-Card sockel av en PCI-kontakt.
Bild
Användarvisningsbild
PaNiC
Inlägg: 2565
Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet

Inlägg av PaNiC »

Man tager vad man haver :).
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Så sant som det var sagt :)

Här kommer ett första utkast på spänningsomvandlaren (5V -> 3.3V)
Bild
danei
EF Sponsor
Inlägg: 26384
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Vad är fördelen med SD framför CF?
Användarvisningsbild
erixon
Inlägg: 380
Blev medlem: 27 augusti 2003, 10:21:58

Inlägg av erixon »

Mindre "sladar" att dra för att det är SPI....
vilket ger fler pinnar över till annat :)
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Och storleken, på kapseln alltså. Men än så länge har de bara gjort SD med 1GB lagringsutrymme så det är ju en nackdel.
danei
EF Sponsor
Inlägg: 26384
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Går det att skriva mindre delar än hela sektorer så är det också en fördel.
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

måste skriva 512 byte i taget =(
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Bara att koppla till uC:n
Bild
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Framsteg

Inlägg av mrmike »

Jag har fått kontakt med kortet!
Detta har jag testat och som (verkar) fungerar är:
* Byta mod till SPI
* Initialisera
* Läsa OCR (vilka spänningar kortet vill ha)
* Läsa CID (card identification): TMSD032@Ôk<00>,=
* Läsa CSD (card specific data)
Skulle vara intressant med nåt register över tillverkarförkortningar och sånt. TM är "OEM/Application ID" där T bör betyda Toshiba (enligt en Palm Tungsten är det Toshiba som tillverkat kortet). SD032 är "Product Name" så jag måste ju ha gjort nåt rätt :)

Detta har jag försökt mig på men det fungerar inte (än):
* Läsa data. Vid start vid andra adresser än 0 får jag svar: Address error.
Vid start vid 0 får jag svar som jag inte förstår :humm:
Användarvisningsbild
zus
Inlägg: 198
Blev medlem: 14 december 2003, 11:34:08
Ort: Göteborg

Inlägg av zus »

Vet inte, kan vara helt fel...men eftersom du måste skriva 512b i taget måste väl kanske adressen peka på början av ett 512b seg?
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Har funderat på det också och testat lite olika adresser som borde funka men icke. Man ska kunna starta var som helst så länge man senare inte korsar nån physical card sector. Nu använder jag standardblockstorleken på 512 byte så jag ska testa att sätta blockstorleken till minimum.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Kan man verkligen adressera något annat än sektorerna(dom 512byten) i ett sånnt där kort? För att kunna adressera varje byte krävs ju en minst 25bitar lång adressbuss. För att adressera varje sector krävs ju bara 16bitar. Går det att köra i ATA-mode eller något sånnt, eller är det bara CF som går?
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Vad jag vet är det bara CF som använder ATA, fast jag vet ju inte allt. SD-kort har det inte iaf.
SD-kommandona ser ut så här:

Kod: Markera allt

+-----------+----------------+-----------+
|byte 1     | byte 2-5       |byte 6     |
+-+-+-------+----------------+---------+-+
|7|6|5     0|31             0|7        |0|
--+-+-------+----------------+---------+-+
|0|1|Command|Command Argument|CRC      |1|
+-+-+-------+----------------+---------+-+
32 bitar räcker och blir över till att adressera varje byte i minnet.

Urdrag ur SanDisk SD Card Product Manual avsnitt 5.1.3 Data Read:
The start address can be any byte address in the valid address range of the card. Every block, however, must be
contained in a single physical card sector.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Okej, jo 32bitar räcker ju lugnt... Tänkte bara att det verkade konstigt om man adresserade varje byte när korten är uppdelade i sektorer.
Skriv svar