SD eller Compact FLASH på PIC???

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
GoAmiga
Inlägg: 36
Blev medlem: 17 november 2005, 11:34:24

SD eller Compact FLASH på PIC???

Inlägg av GoAmiga »

Har tänkt göra ett projekt där jag behöver mycket lagringsutrymme och jag undrar om någon här vet vad som är lättast att göra något interface mot, SD eller Compact Flash??? Eller finns det något annat alternativ?

Alla möjliga ideer och svar är välkomna!
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

SD är ju klart lättare ur den aspekten att det är färre anslutningar. Den är seriell och körs via ett SPI-interface. CF är normalt parallellinterface och kräver många portpinnar.
GoAmiga
Inlägg: 36
Blev medlem: 17 november 2005, 11:34:24

Inlägg av GoAmiga »

Så är det lättare att bygga upp ett interface till SD? Googlade lite
och tyckte att jag hittade en hel del intressant exempelkod för SPI... Har tyvärr inte tid att
kika igenom den just nu :oops:
Användarvisningsbild
Paladin
Inlägg: 37
Blev medlem: 23 augusti 2006, 13:46:56
Ort: Karlstad

Inlägg av Paladin »

Jag gjorde ett interface för ett CF-kort med en PIC 18F452. Det krävde 15 pinnar men i gengäld så är protokollet väldigt simpelt och kan köras i IDE-läge. Jag valde mellan CF och SD men CF kan användas med 5V matning samt att specifikationen för SD kostade pengar (vet inte om den är allmän idag?)

/Mikael

P.S.
Detta är mitt första inlägg i forumet=)
D.S.
GoAmiga
Inlägg: 36
Blev medlem: 17 november 2005, 11:34:24

Inlägg av GoAmiga »

Jag antar att jag får börja jaga lite datablad.
Någon som har tips på bra någon stanns det finns spec för CF?
Användarvisningsbild
Paladin
Inlägg: 37
Blev medlem: 23 augusti 2006, 13:46:56
Ort: Karlstad

CF-spec.

Inlägg av Paladin »

Specen för CF kan laddas hem gratis från http://www.compactflash.org/ Det kräver dock att du registrerar dig. Jag har bara kört kortet i IDE-läge. Någonstans ska jag ha lista på pinnarna som användes och länkar för IDE-gränssnittet...
GoAmiga
Inlägg: 36
Blev medlem: 17 november 2005, 11:34:24

Inlägg av GoAmiga »

Ok.. Tackar så mycket!!
Körde du förresten C eller Assembler?
Användarvisningsbild
lgrfbs
Inlägg: 7367
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

Paladin skrev:Jag gjorde ett interface för ett CF-kort med en PIC 18F452. Det krävde 15 pinnar men i gengäld så är protokollet väldigt simpelt och kan köras i IDE-läge. Jag valde mellan CF och SD men CF kan användas med 5V matning samt att specifikationen för SD kostade pengar (vet inte om den är allmän idag?)

/Mikael

P.S.
Detta är mitt första inlägg i forumet=)
D.S.
Välkommen till forumet
Kolla:
http://www.mikroe.com/en/tools/#extras

Ganska långt ner på sidan.
Användarvisningsbild
Paladin
Inlägg: 37
Blev medlem: 23 augusti 2006, 13:46:56
Ort: Karlstad

Inlägg av Paladin »

Jag programmerade i C. Assembler skulle vara för mycket jobb för det projektet! Kan nämna att all kommunikation med kortet skedde på sektornivå. Att jobba med filsystem var lite överkurs. Jag har pinkonfigurationer och småsnuttar kod liggandes om du är intresserad.

Kollade på http://www.sdcard.org/ och där kan man ladda hem "Simplified Version of Physical Layer Spec." om man klickar på "About SD Memory Card". Verkar vara en nyare version av dokumentet än jag haft. Här verkar mjukvaruspecifikationerna för SPI-läge vara med. Kanske ska kolla det istället? Fyra pinnar är bättre än 15. Det räcker även med tre (Chip Select är kanske inte nödvändig att styra). Problemet är att SD jobbar med 3.3V som max.

Mikael
Användarvisningsbild
Earendil
EF Sponsor
Inlägg: 448
Blev medlem: 2 juni 2004, 09:06:43
Ort: Lund

Inlägg av Earendil »

Jag har implementerat grundläggande läsning av ett FAT16-filsystem på ett SD-kort, inklusive bit-bangade drivrutiner för SPI. Allt hackat i assembler för 16F688. Ca 1100 instruktioner allt som allt. Behövs 4 I/O-portar. CS, DataIn, DataOut och klocka till kortet.

SD-korten är väldigt enkla att använda, fast i början är det ju alltid lite småsaker som strular. Du kan lugnt fråga mig om du har några problem med att få kläm på det. Förhoppningsvis kan jag hjälpa till. Den kod jag har kanske kan hjälpa dig lite, om det skulle knipa. Fast den borde städas upp lite förstås... :lol:

CS måste styras om du ska köra SPI (den ska aktiveras under reset för att just välja SPI, annars får du multimedia-mode).
GoAmiga
Inlägg: 36
Blev medlem: 17 november 2005, 11:34:24

Inlägg av GoAmiga »

Ok.. Då ska jag skumma igenom specarna för de två korten och se vilket som verkar "roligast". :D
Användarvisningsbild
Earendil
EF Sponsor
Inlägg: 448
Blev medlem: 2 juni 2004, 09:06:43
Ort: Lund

Inlägg av Earendil »

Hmm, kom precis på en sak. Du talade ju om att du behövde lagringskapacitet. Tänk på att när du ska skriva till ett SD-kort behöver du skriva en hel sektor i taget (512 bytes). Detta gäller rimligen alla SD-kort. Därför kan du behöva ha en hel sektor i minnet på PIC:en innan du påbörjar operationen. Detta utesluter ju de minsta PIC:arna. Jag kan ha fel, eftersom jag inte kollat särskilt mycket på just skrivning på SD-kort, men dubbelkolla gärna just det här.

Skulle gissa att samma sak gäller compact flash-kort.
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

När det gäller SD-kort har du rätt... skrivning måste ske med minst 512B åt gången. Läsning ska dock kunna ske i mindre bitar.
Vet inte hur det är med CF, men jag gissar att det gäller samma för dom.
Användarvisningsbild
Earendil
EF Sponsor
Inlägg: 448
Blev medlem: 2 juni 2004, 09:06:43
Ort: Lund

Inlägg av Earendil »

Jodå, läsning kan man göra ner till 1 byte i taget - åtminstone enligt specen. Själv läser jag 2, 32 resp 512 bytes i taget i mitt projekt (2 bytes för ett FAT-entry, 32 bytes för ett directory entry och 512 bytes för en sektor med data). Jag har stött på ett MMC-kort som bara klarar 512 bytes dock! Så man kan inte alltid lita på dem... Prova ett annat kort i så fall.

[EDIT]
Använder ett SanDisk 128 megabyte SD-kort.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Jag tycker helt klart SD.
Ett tips kan vara att kolla in den mass storage frameworken för PIC18F4550, denna bör ge några ideér
Skriv svar