Sida 1 av 2
SD-kortläsare/-skrivare
Postat: 2 mars 2004, 14:58:29
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.

Postat: 2 mars 2004, 16:22:09
av PaNiC
Man tager vad man haver

.
Postat: 2 mars 2004, 17:07:58
av mrmike
Så sant som det var sagt
Här kommer ett första utkast på spänningsomvandlaren (5V -> 3.3V)

Postat: 2 mars 2004, 19:52:08
av danei
Vad är fördelen med SD framför CF?
Postat: 2 mars 2004, 20:17:43
av erixon
Mindre "sladar" att dra för att det är SPI....
vilket ger fler pinnar över till annat

Postat: 2 mars 2004, 20:54:06
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.
Postat: 2 mars 2004, 21:01:57
av danei
Går det att skriva mindre delar än hela sektorer så är det också en fördel.
Postat: 2 mars 2004, 21:02:40
av mrmike
måste skriva 512 byte i taget =(
Postat: 4 mars 2004, 00:51:15
av mrmike
Bara att koppla till uC:n

Framsteg
Postat: 8 mars 2004, 01:42:13
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

Postat: 8 mars 2004, 12:20:02
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?
Postat: 8 mars 2004, 12:57:44
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.
Postat: 8 mars 2004, 13:18:51
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?
Postat: 8 mars 2004, 13:51:01
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.
Postat: 8 mars 2004, 14:00:45
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.