SD-Kort SQI driver
Re: SD-Kort SQI driver
Verkar tunt med information på nätet kring just detta.
Har hittat något eventuellt i Atmels Software framework.
Får se om det går att tanka hem det, men jag gissar att det är förkompilerade libbar.
Misstänker att jag får göra någon form av break-out kort och koppla på logikanalysatorn och se vad som händer när man skriver resp läser från kortet.
Eller finns det andra ideer och förslag i detta eminenta forum.
Har liksom i nuläget ingen större lust att betala de 20-30k som det kostar att få specifikationen, för nånting som kanske inte blir något.
Har hittat något eventuellt i Atmels Software framework.
Får se om det går att tanka hem det, men jag gissar att det är förkompilerade libbar.
Misstänker att jag får göra någon form av break-out kort och koppla på logikanalysatorn och se vad som händer när man skriver resp läser från kortet.
Eller finns det andra ideer och förslag i detta eminenta forum.
Har liksom i nuläget ingen större lust att betala de 20-30k som det kostar att få specifikationen, för nånting som kanske inte blir något.
Re: SD-Kort SQI driver
Det verkar finnas färdiga kodexempel i MPLAB harmony. Det kanske går att översätta till din applikation om du nu inte redan kör PIC.
Re: SD-Kort SQI driver
Så nu har jag fått fram lite mer.
SQI är 4 st bidirektionella synkrona serielinor (väldigt likt microwire, dvs ej SPI som normalt är duplex).
Man skickar en 4-bits nibble på varje klockpuls (DDR blir det 2 nibbles per klockpuls).
Max klockhastighet verkar vara 52 MHz.
Så långt inga konstigheter, egentligen.
Nu kommer det krångliga:
Man räknar CRC på varje enskild lina, så när överföringen är avslutad så skickar man en CRC per lina.
Så
CRC0 bit 0 och bit 4 osv
CRC1 bit 1 och bit 5 osv
CRC2 bit 2 och bit 6 osv
CRC3 bit 3 och bit 7 osv
Så när alla data skickats, så skickar man CRC0 seriellt på lina 0, CRC1 seriellt på lina 1 osv.
CRC är CRC16 för data och CRC7 för kommandon.
SQI är 4 st bidirektionella synkrona serielinor (väldigt likt microwire, dvs ej SPI som normalt är duplex).
Man skickar en 4-bits nibble på varje klockpuls (DDR blir det 2 nibbles per klockpuls).
Max klockhastighet verkar vara 52 MHz.
Så långt inga konstigheter, egentligen.
Nu kommer det krångliga:
Man räknar CRC på varje enskild lina, så när överföringen är avslutad så skickar man en CRC per lina.
Så
CRC0 bit 0 och bit 4 osv
CRC1 bit 1 och bit 5 osv
CRC2 bit 2 och bit 6 osv
CRC3 bit 3 och bit 7 osv
Så när alla data skickats, så skickar man CRC0 seriellt på lina 0, CRC1 seriellt på lina 1 osv.
CRC är CRC16 för data och CRC7 för kommandon.
Re: SD-Kort SQI driver
Har du hittat något dokument över SQI för sd kort? Skulle du vara intresserad dela med dig av det?
Angånde CRC bör det gå att parallell beräkna 4st crc och 2bitar åt gången så den bör inte bli så "tungt" beräkningskrävande, givet vis mer än hårdvara baserad crc.
Angånde CRC bör det gå att parallell beräkna 4st crc och 2bitar åt gången så den bör inte bli så "tungt" beräkningskrävande, givet vis mer än hårdvara baserad crc.
Re: SD-Kort SQI driver
Inte mer än det som finns officiellt tillgängligt. Dock hade jag stora problem med att tanka hem det från sd.org, då överföringen stoppade efter typ 20% eller så.
Det jag skrev ovan, är väl ungefär det jag kommit fram till.
Det jag skrev ovan, är väl ungefär det jag kommit fram till.
Re: SD-Kort SQI driver
Varför kör du inte 4bit SDIO istället?
Finns en uppsjö processorer med SDIO interface...
Edit: alternativt så kör du en MCU som "glue logic" mellan SQI och SDIO..
Finns en uppsjö processorer med SDIO interface...
Edit: alternativt så kör du en MCU som "glue logic" mellan SQI och SDIO..
Re: SD-Kort SQI driver
Tja, min processor har en SQI-port med DDR möjlighet, därför tänkte jag eventuellt utnyttja SQI-porten för att prata med ett SD-kort.
Om du med SDIO menar SQI på SD-kortet dvs samma sak, annars vad menar du med SDIO
Om du med SDIO menar SQI på SD-kortet dvs samma sak, annars vad menar du med SDIO
Re: SD-Kort SQI driver
Har processorn SDIO interface så följer den standarden som behövs för köra mot SD-kort.
SDIO har stöd för 1 och 4bits mode... SPI till ett SD-kort är inte samma sak som SDIO-1bit
https://www.sdcard.org/developers/overv ... d_Spec.pdf
Edit: Går det att ställa in SQI till SPI länge istället. rätt så mycket enklare, visst inte lika snabbt men kanske inte gör så mycket...
Edit2: Vad är det för processor?
SDIO har stöd för 1 och 4bits mode... SPI till ett SD-kort är inte samma sak som SDIO-1bit
https://www.sdcard.org/developers/overv ... d_Spec.pdf
Edit: Går det att ställa in SQI till SPI länge istället. rätt så mycket enklare, visst inte lika snabbt men kanske inte gör så mycket...
Edit2: Vad är det för processor?
Re: SD-Kort SQI driver
Komp å vad du menade med SDIO, dvs den utökade standarden för att hantera IO-enheter mm i samma formfaktor som ett SD-kort.
Nej, processorn har inget nativt stöd för SDIO eller SD-kort.
Den har däremot en SQI-port med stöd för DDR och ett antal CE-linor kopplade till SQI-porten.
Och nej, jag hade inte tänkt stoppa in någon extra processor, då kan jag lika väl köra med ett CF-kort, vilket är betydligt enklare att hantera programmatiskt.
Dock, man kan iofs skita i checksumman när man läser kortet (vilket är det vanligaste i min applikation) däremot måste man ju generera checksumman för kommandona och om man händelsevis vill skriva till kortet.
Processorn är en PIC32MZ2048 som skall snurra på 200-250MHz, förmodligen blir det enklare att använda ett CF-kort, då jag redan har en 16-bitars bus för display mm.
Nej, processorn har inget nativt stöd för SDIO eller SD-kort.
Den har däremot en SQI-port med stöd för DDR och ett antal CE-linor kopplade till SQI-porten.
Och nej, jag hade inte tänkt stoppa in någon extra processor, då kan jag lika väl köra med ett CF-kort, vilket är betydligt enklare att hantera programmatiskt.
Dock, man kan iofs skita i checksumman när man läser kortet (vilket är det vanligaste i min applikation) däremot måste man ju generera checksumman för kommandona och om man händelsevis vill skriva till kortet.
Processorn är en PIC32MZ2048 som skall snurra på 200-250MHz, förmodligen blir det enklare att använda ett CF-kort, då jag redan har en 16-bitars bus för display mm.
Re: SD-Kort SQI driver
Lättare att få tag i sd-kort förvisso...
Ställ in SQI i SPI läge http://ww1.microchip.com/downloads/en/D ... 01244C.pdf
Bör gå att köra samma sak som SPI om jag inte läser databladet tokigt...
Lib för läsa/skriva sd-kort + fat16/fat32..
http://elm-chan.org/fsw/ff/00index_e.html
Ställ in SQI i SPI läge http://ww1.microchip.com/downloads/en/D ... 01244C.pdf
Bör gå att köra samma sak som SPI om jag inte läser databladet tokigt...
Lib för läsa/skriva sd-kort + fat16/fat32..
http://elm-chan.org/fsw/ff/00index_e.html
Re: SD-Kort SQI driver
Köra spi är rätt ointressant, annars hade jag inte börjat leta efter SQI-information.
Och jo jag har naturligtvis bägge dokumenten.
CF kort kan jag köpa "en masse" ungefär har nog ett 20-tal oanvända industriella CF-kort liggande.
Och jo, SQI-interfacet går att köra som en SPI-port, om man nu av någon outgrundlig anledning vill använda det till SPI i stället.
För att förtydliga, i dag använder jag CF-kort, men en tanke var att gå över till SD då de är lite mindre.
Och jo jag har naturligtvis bägge dokumenten.
CF kort kan jag köpa "en masse" ungefär har nog ett 20-tal oanvända industriella CF-kort liggande.
Och jo, SQI-interfacet går att köra som en SPI-port, om man nu av någon outgrundlig anledning vill använda det till SPI i stället.
För att förtydliga, i dag använder jag CF-kort, men en tanke var att gå över till SD då de är lite mindre.
Re: SD-Kort SQI driver
öh, nej inte den vi använder.
Det finns något hundratal varianter på PIC32MZ2048
Nogare bestämt är det PIC32MZ2048EFH100 jag tänkt använda
Det finns något hundratal varianter på PIC32MZ2048
Nogare bestämt är det PIC32MZ2048EFH100 jag tänkt använda