Bonjour,
Je me suis lancé dans un projet d'écriture sur une carte SD avec un PIC(18F4550) et je voudrais commencer par le beaba en écrivant un fichier .TXT de quelques octets (toute l'alphabet par exemple) en FAT32 et qui puisse ensuite être lu sur un PC. La SD Card que j'utilise est une mini-SD de 512 Mo.
J'ai déjà bien avancé je pense, j'ai tout programmé en C (mplab C18) pour pouvoir accéder aux différents secteurs de la SD Card (Master Boot Record, Boot Sector, FAT (il y en a 2), Root Directory, Data Section).
J'ai commencé par chercher le premier cluster libre dans la FAT (première entrée qui a la valeur 00 00 00 00 h) et j'y ai mis 0F FF FF FFh pour le réserver. J'ai copié cette nouvelle entrée dans la deuxième FAT.
Ensuite, j'ai écrit dans la Root Directory pour mettre l'entrée de mon fichier de 32 octets. Cette entrée est en format 8.3 (Shortfilename). J'y met le nom du fichier, son extension, son attribut (Archive à 1 seulement), le numéro du premier cluster trouvé précédemment, sa taille, et puis j'ai rajouté des dates et des heures (de création, modification) bidons trouvées sur d'autres fichiers.
J'ai ensuite écrit mon fichier dans le cluster correspondant.
Le problème c'est que lorsque je lie la SD Card sur un PC je trouve bien mon fichier en format TXT (avec l'icône du bloc note) et la taille indiquée est la bonne, mais quand j'essaie de l'ouvrir il m'envoie un message d'erreur me disant qu'il n'arrive pas à le trouver.
Je ne comprends pas, j'ai comparé avec des fichiers txt que j'ai écris sur la même SD Card à partir du PC et je ne voie pas de différence dans la démarche (FAT écrite de la même facon, Root Directory cohérent avec ce que je m'attendais et contenu du fichier au bon endroit). Il doit y avoir quelque chose qui m'échappe mais je ne vois vraiment pas quoi.
Si quelqu'un a une idée...
Merci.
-----