Go Down

Topic: Re-Initialisation Carte SD (Read 207 times) previous topic - next topic

youssefelmzaiti

Bonjour tous le monde,

   J'ai développé une plateforme de logue pour mesurer ( température / humidité / Pression ) par des capteurs ,je logue sur une carte SD ,j'utilise comme microcontrôleur Arduino Feather M0 Adaloger ,la plateforme fonctionne à merveille ,j'arrive à lire la carte SD sur mon Ordi ,interpréter les mesures sur excel ... , le soucis c'est que lorsque j'éjecte la carte SD et l'insérer de nouveau sur mon µC, je suis obliger de faire une remise à zéro du µC, si non ce dernier ne pourrait pas loguer,
 
J'ai remarqué que la carte SD ne s'initialise pas de nouveau sauf si je fait un RAZ et c'est très embêtant puisque si je fais une tache en parallèle ( un calcul , une transmission I2C , com BLE ... ) je vais perdre le tout  >:(  >:(  >:(

Y'a pas un moyen de réinitialisé une carte SD genre une API ....

Merci pour votre aide,

Youssef

jfs

#1
Apr 25, 2018, 06:16 pm Last Edit: Apr 25, 2018, 06:16 pm by jfs
J'avais eu un problème qui ressemblait à ce que tu décris.

Cherche dans ce sujet... vers la fin il me semble :

https://forum.arduino.cc/index.php?topic=75761.0

Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

cbrandt

Bonjour,

J'avais travaillé là dessus il y a quelque temps, mais je n'ai pas mes sources avec moi actuellement...

En gros il faut créer une méthode end () dans la bibliothèque SD qui fait plus ou moins le contraire du begin (): ça dépend bien sûr de la bibliothèque exacte que tu utilises (SD ou SdFat), mais ça consiste à faire un close () sur tous les objets qui ont eu un open () dans le begin () - de mémoire il y a un "volume" et un "root". Car si la carte est retirée sans précaution, tu risques gros...

Ensuite après avoir réinséré la carte, il faut appeler à nouveau begin ().

Ça implique aussi que tu as un moyen pour l'utilisateur d'indiquer qu'il veut retirer la carte (bouton poussoir par exemple) et moyen de lui indiquer, une fois que le end () a été appelé, qu'il peut le faire (LED ou message etc).

De même il faudra un moyen de détecter l'insertion d'une carte - au moyen de la pin Card Detect (pas toujours présente) ou via un bouton poussoir ou via un appel régulier à begin () jusqu'à ce qu'il ne retourne pas d'erreur.



Go Up