Musik spelas väckarklocka (6 / 24 steg)
Steg 6: USB-lagring med MicroSD
Sedan, att förstå USB-lagring
http://en.wikipedia.org/wiki/USB_mass-storage_device_class
http://en.wikipedia.org/wiki/SCSI
http://en.wikipedia.org/wiki/USB_Attached_SCSI
Vad jag behöver dig att förstå är hur datorn bestämmer vilken sorts enhet är ansluten (så förstår USB deskriptorer), och sedan inser att datorn kommer att utfärda SCSI-kommandon via USB till mikrokontroller och mikrokontroller kommer att utföra de SCSI-kommandona genom att kommunicera med SD-kortet. SCSI fungerar direkt på raw minnet av SD-kortet, utan att bry sig om filsystemet. Det bryr sig inte om filer, endast byte.
---------------------------------------------------------------------------------------------------------
AT90USB1286 är kapabel att full fart USB (inte hög hastighet! hålla detta i åtanke som filen överföringshastigheten blir inte bäst, plus våra Teensy körs endast på 8 MHz och SPI klockan är endast på 4 MHz). För att använda dess inbyggda USB, har vi några val. Manuellt programmet en USB stack i C, eller använda USB stack kod som Atmel, eller Använd LUFA (Lightweight USB Framework för AVRs).
Vi kommer att använda LUFA (version 101122 från och med tidpunkten för jag skriver detta), det är öppen källkod och det är design speciellt för denna särskilda familj av AVR microcontrollers.
http://www.fourwalledcubicle.com/lufa.php
Hämta och utforska LUFAS kod, dokumentation och exempel.
Vi kommer att utnyttja den massa lagring demonstrationen inkluderas i LUFA distributionen. Den särskilda demon använder dock en dataflash IC istället för SD-kort. Så är här ett exempel av elastisk fåren som använder SD-kort:
http://elasticsheep.com/2010/04/teensy2-USB-Mass-Storage-with-an-SD-Card/
MEN VÄNTA DET FINNS MER! Jag har modifierat arkivera från länken ovan att arbeta med Teensy ++ och uppdaterat den till att använda LUFA version 101122. Se bifogade exempel paketet. Som vanligt enkelt kompilera och ladda upp koden. Inuti förpackningen har jag också tagit en hel beskrivning av USB-enheten dumpad från en USB-traffic analyzer. Om detta fungerade, då du har effektivt bara byggt en SD-kortläsare ur en Teensy ++, Grattis.
Filer sd_raw.c och .h är det att kommunicera med SD-kort direkt. SDCardManager är det så att SCSI till SD-kortet så att SCSI kan arbeta utan att bry sig vad för slags minne arbetar med (abstraktion, SCSI är högre). MassStorage hanterar de flesta USB massa lagring anordning funktionerna, och använder SCSI enligt kommandon från datorn.