SD-kort kompatibilitet med enklare MCU?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
AndLi
Inlägg: 17040
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av AndLi »

Jag donade lite med SD kort och en ATmega, enklaste sättet att få allt att funka var med exempelkoden från FatFs.

SDHC kort har jag kört utan problem, vissa minnen ska visst inte klara SPI, men de flesta verkar göra det.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av blueint »

För standard SD-kort så behöver man sätta blocklängden till 1024 för 2 GB kort. Och 2048 för 4 GB kort.
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av jesper »

Blocklängden som sätts med SET_BLOCKLEN, ska alltid vara 512 (eller man låter bli sätta den, 512 är default). Och det är denna blocklängd som är intressant i transferna.

MAXIMUM blocklängd är en annan sak. Där är det lite speciellt för 2GB kort.

Från Specen, ver 3.01 Final:
4.3.2 2 GByte Card
To make 2GByte card, the Maximum Block Length (READ_BL_LEN=WRITE_BL_LEN) shall be set to
1024 bytes. However, the Block Length, set by CMD16, shall be up to 512 bytes to keep consistency
with 512 bytes Maximum Block Length cards (Less than and equal 2GByte cards).
Edit: Ska förtydliga att READ_BL_LEN och WRITE_BL_LEN är inget man sätter, det är kortspecifik data man läser från CSD registren.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6886
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av Marta »

Tackar alla så mycket. Då är frågan besvarad och allt tycks ha förutsättningar att fungera.
Pajn
Inlägg: 1160
Blev medlem: 6 juni 2008, 19:14:29
Ort: Nyköping
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av Pajn »

Glenn skrev:Ja, tycker man dryga 100MB/sec är långsamt så.. fast de flesta tycker nog det är väldigt snabbt.
Lite OT men du får ta och dra bort en nolla även för snabbare kort. De absolut vanligaste SD korten är Class 4 som klarar skriv och läs i just 4 MB/s. Det finns även 2, 6 och 10. 10 är inte speciellt vanlig och är lite dyrare. Visst finns det snabbare kort utanför Class skalan men de är ovanliga och ofta väldigt dyra.
Användarvisningsbild
Glenn
Inlägg: 33666
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av Glenn »

pajn: du får nog uppdatera din information lite, till att börja med är class10 mycket vanligt idag, jag köpte ett 8GB SDHC class10-kort för under hundra spänn för bara nån vecka sen till min digitalkamera, så det är varken dyrt eller ovanligt längre. (Står i manualen att kameran ska dra nytta av det dessutom, men jag har inte orkat testa om det blev nån skillnad mot mitt gamla class4-kort)

Men som du säger och som jag syftade på så finns det MYCKET snabbare SD-kort, så kallade UHS-kort, mest avsaedda för videoinspelning, poängen är ju att Tomas brukar drar upp ovanliga "superduper"snabba CF-kort när han kommer med sina jämförelser, kort som är tokdyra och som nästan ingen har, ska man jämföra med sådana kort så ska man ju givetvis jämföra med dom snabbaste SD-korten också, och dom gör drygt 100MB/sec, 104 om jag minns rätt. Det finns även en ännu snabbare klass definerad (UHS-II) , men då existerar det ju inga kort (än, Eller om det har släppts nu, fanns inga i somras iaf.)

Oavsett så stod det citat "SD är väl rätt långsamma", vilket ju var felaktigt, och det var det jag påpekade.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av blueint »

Det finns ett 4-bit I/O läge för SD-kort. Vilket lär behövas för dom snabba hastigheterna. Dessvärre är det gömt bakom "red tape", NDA, advokater osv..
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av jesper »

Inte alls.
De flesta mikroer som har MCI interface kan köra detta. Det är bara att sätta en bit i rätt register.
Inget hemligt alls.

Här är f.ö. bushastigheterna från specen (Simplified, version 3.01, 100518, sidan 3) :

Kod: Markera allt

Bus Speed Mode (using 4 parallel data lines)
(1) Default Speed mode: 3.3V signaling, Frequency up to 25 MHz, up to 12.5 MB/sec
(2) High Speed mode: 3.3V signaling, Frequency up to 50 MHz, up to 25 MB/sec
(3) SDR12: 1.8V signaling, Frequency up to 25 MHz, up to 12.5MB/sec
(4) SDR25: 1.8V signaling, Frequency up to 50 MHz, up to 25MB/sec
(5) SDR50: 1.8V signaling, Frequency up to 100 MHz, up to 50MB/sec
(6) SDR104: 1.8V signaling, Frequency up to 208 MHz, up to 104MB/sec
(7) DDR50: 1.8V signaling, Frequency up to 50 MHz, sampled on both clock edges, up to 50MB/sec
bearing
Inlägg: 11229
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av bearing »

Vad är anledningen till gränsen 208 MHz istället för 200 jämnt?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45167
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av TomasL »

För att reda ut saker lite:
När det gäller SD-Kort så är maximal enligt följande:
I 4-bit mode 832 Mbit/s
I SPI-mode 50Mbit/s

Den fulla specifikationen kostar $1000/år
Host-license $1000/år

Hostlicensen gäller enbart om man vill sätta loggan på sin produkt
Den fulla specen är nödvändig om man skall göra nånting annat än SPI.
SD-kort är inte bakåtkompatibla.
Klass 10 kort betyder 10MByte/s
SD kort rymmer upp till 32GB, vill man högre gäller SDXC, med proprietära drivrutiner.

När det gäll CF-kort:
Överföringshastighet upp till 167MByte/s
Max lagringsstorlek 128PetaByte
Specialversionen CFast går upp till 600Mbyte/s i överföringshastighet.
Standarden är helt öppen och inga kostnader är förenat med den, ej heller någon royalty

Generellt gäller att CF-korten, speciellt industrivarianterna har betydligt bättre antiwear algoritmer än SD-kort.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av blueint »

Standard-SD max 4 GB, byteaddressering.
SDHC, max 32 GB, sektoraddressering (512-byte)
SDXC, max 2 TB, sektoraddressering (512-byte)

Hur man signalerar med 4-bit åt gången är hemligt. Och man får inte använda det läget även utan "logga" vad jag vet.

Finns en del information här: https://en.wikipedia.org/wiki/Secure_Digital#Interface
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45167
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av TomasL »

Nja, 4-bit är nog inga konstigheter, man sätter bara rätt mode, så tittar byten ut en nibble i taget på de fyra linorna.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av blueint »

Att sätta rätt mode till rätt register, veta vilka setup och hålltider som gäller liksom kommando-till-data latens som finns. Och vilka flanker som ger giltiga data osv, är det som är konstigt :vissla:
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av jesper »

Det är inte det minsta konstigt. Det står i processorens datablad eller manual.
Resten läser man från SD specen. Simplified räcker bra för detta.
Har nyligen gjort SD drivisar för ST, Freescale och NXP processorer. Både med SPI och MCI interfacen med och utan DMA. För bare-metal och U-Boot.
Det går alldeles utmärkt med de öppna specar.

Ingen licens krävs för att använda korten, endast för att tillverka kort eller för att göra hårdvaran till en host kontroller.

Däremot finns det vissa delar, bla. om DRM, säkerhet och en del detalj information som endast finns i fullversionen av specifikationen. Men det är inte nödvändigt för oss vanliga dödliga.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: SD-kort kompatibilitet med enklare MCU?

Inlägg av blueint »

Implementerar du 4-bit bit-bang så är det licensbrott vad jag vet. I synnerhet om det är en FPGA/CPLD som gör jobbet.
Skriv svar