SD eller Compact FLASH på PIC???
SD eller Compact FLASH på PIC???
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!
Alla möjliga ideer och svar är välkomna!
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.
/Mikael
P.S.
Detta är mitt första inlägg i forumet=)
D.S.
CF-spec.
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...
Välkommen till forumetPaladin 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.
Kolla:
http://www.mikroe.com/en/tools/#extras
Ganska långt ner på sidan.
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
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
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...
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).
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...
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).
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.
Skulle gissa att samma sak gäller compact flash-kort.
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.
[EDIT]
Använder ett SanDisk 128 megabyte SD-kort.
