Problema lettura MicroSD con PIC!!!

Salve a tutti, sto interfacciando una MicroSD ad un PIC per poter leggere i file contenuti nella memoria. La comunicazione tra MicroSD e PIC funziona correttamente, cos=EC come l'inizializzazione e la risposa ai comandi; Ho verificato il tutto con un oscilloscopio digitale, campionando i byte che vengono scambiati. Ora il mio problema =E8 questo: Leggendo il primo settore(da 512byte) della MicroSD con il PIC, e leggendo il primo settore della stessa MicroSD con il PC, tramite un editor esadecimale in grado di leggere tutti i settori(Hexplorer v2.6), i dati non sono gli stessi. Con l'editor, nel primo settore visualizzo correttamente il BOOT sector, mentre con il PIC visualizzo dei dati con i quali non trovo corrispondenza. I dati letti dal PIC nel primo settore sono sempre quelli, non cambiano. Ho letto vari datasheet di SD ma non riesco proprio a capire! Sperando in una risposta che risolva il problema, vi mando i miei saluti. Grazie.

Reply to
Volts
Loading thread data ...

Volts ha scritto:

Hai provato ad usare questa libreria?

formatting link

Reply to
SilverLeo

.html

Bella! Grazie del link. Il mio problema per=F2 non =E8 nella gestione della FAT, =E8 che non riesco a capire perch=E8 con il PIC il settore 0x00 non =E8 il BOOT.

Reply to
BonassiA

Un bel giorno Volts digitò:

Forse nel caso del PC leggi il boot sector (che è il primo settore della partizione, non del disco), mentre nel caso della SD leggi il master boot record. Ad esempio Hex Workshop fa così: se apri i dischi "logici" (C: D: ecc...) ti fa vedere il boot sector, se apri i dischi "fisici" ti fa vedere il MBR.

--
emboliaschizoide.splinder.com
Reply to
dalai lamah

"BonassiA" .

Il mio problema però non è nella gestione della FAT, è che non riesco a capire perchè con il PIC il settore 0x00 non è il BOOT.

......

il pic ti fa vedere il suo codice!? che di fat(pc) non capisce niente!;) che pic usi, e come la vedi...? Complimenti cmq!!

Reply to
rawmode

Quando avvio la procedura di lettura(cio=E8 invio il CMD17, ottengo risposta positiva, e ottengo il byte di start 0xFE) copio tutti i byte che ottengo in un buffer da 512byte. Utilizzando poi la funzione di debug del PICkit2, finita la lettura, vedo tutti i byte letti.

Di FAT ci capisco io :-), =E8 questo che importa, perch=E8 una volta che riesco a leggere correttamente i settori, elaboro io i dati letti in modo da trovare i file che mi servono.

Per prova sto usando un PIC18F2550

Grazie! Non nego per=F2 che riuscire solo a superare la fase di inizializzazione della SD mi =E8 costata molta fatica, Ciao.

Reply to
BonassiA

Opss. BonassiA e Volts sono la stessa persona. Problema risolto! Il buffer che ho creato nel linker del programma, non so per quale motivo viene sovrascritto da non so chi, anche se =E8 dichiarato protect. Bo, comunque volevo ringraziare dalai lama perch=E8 senza quella dritta sarei ancora qui a cercare il BOOT SECTOR della MicroSD. Ciao a tutti.

Reply to
BonassiA

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.