J'ai un projet universitaire dans lequel j'utilise un pic ainsi qu'une carte MMC/SD.
Le pic doit communiquer avec la carte MMC/SD. je n'utilise aucun formatage sur la carte MMC/SD, je l'utilise juste comme une eeprom géante.
Après quelque recherche sur le net, j'ai pu voir qu'il y a deux façon de communiquer avec ce genre de carte : le mode SPI; ou une communication propriétaire.
Le SPI étant intégré dans mon µC, j'utiliserais donc ce mode. Mais c'est ici que mon problème se pose. je n'ai aucune idéé des instructions à envoyer à la carte. j'ai lu qu'il fallait l'initialiser: mais comment? je veut ensuite Lire et écrire!!!!
si quelqu'un pouvait me guidé afin que je puisse avancer dans mon projet!
Re : Lire ou écrire sur une carte MMC/SD avec un pic
Bonjour,
Ce type de projet se réalise maintenant très facilement sur les PIC18 (ou les 16 bits avec quleques modifs) car toutes les notes d'application sont disponibles.
Tout est ici : http://www.microchip.com/stellent/id...wwFullSpeedUSB
Voir la note d'application AN1003 : Mass Storage Class Firmware
A partir de cette note d'application j'ai réalisé en 1 WE, une liaison USB PC <--> PIC18 avec lecture/écriture FAT16 sur une carte SD 1Go accrochée au PIC18F4550
* la carte PICTAIL PLUS SD/MMC (ref AC164122) qui se connecte directement sur le connecteur d'extension placé au milieu de la carte PICDEM FS-USB (non montré sur la photo) : http://www.microchip.com/stellent/id...tailDaughtDemo
Ca marche très bien. On peut même streamer un fichier MP3 directement à partir de la carte SD
Maintenant que ton projet est fini, que vas-tu faire ?
a+
26/05/2008 - 19h09
GwadaBoug
Date d'inscription
juillet 2007
Âge
25
Messages
113
Re : Lire ou écrire sur une carte MMC/SD avec un pic
Bonjour RISC,
Merci de ta réponse. Mais le problème que j'ai, c'est que je cherche quel donnée je dois envoyer à la carte SD, pour communiquer avec.
faut je puisse l'initialiser, écrire, et lire à n'importe quel adresse de la carte, comme s'il s'agissait d'une eeprom..
j'ai lu partout que sa se faisait avec le protocole SPI.
26/05/2008 - 20h01
sfaxienskiller
Date d'inscription
mai 2007
Âge
27
Messages
59
Re : Lire ou écrire sur une carte MMC/SD avec un pic
tu peut utiliser le logiciel MiKroC tu va trouver les fonctions(préte a utiliser) de communication avec la MMC.
28/05/2008 - 09h26
GwadaBoug
Date d'inscription
juillet 2007
Âge
25
Messages
113
Re : Lire ou écrire sur une carte MMC/SD avec un pic
salut sfaxienskiller,
j'ai vu durant mes recherche que miKroC donne les instructions toutes prêtes. or le problème est qu'il coute 200 euros. Mon prof m'a dit que ceci sera utilisé en dernier recours.
A l'université, on dispose de c18. mais mon but serais de savoir si quelqu'un connait les protocoles à envoyer à la carte SD. en ce moment j'essaie de décodé le code de mikroC.
si quelqu'un pouvait me donner d'autre renseignement sa serait simpas.
mercie d'avance!!!
22/06/2008 - 16h36
sliders_alpha
Date d'inscription
septembre 2004
Localisation
samois sur seine
Âge
24
Messages
369
Re : Lire ou écrire sur une carte MMC/SD avec un pic
je cherche a faire la meme chose avec le compilateur CCS 4.057.
mon but est de relever une tension a une certaine frequence et de stocker tous ça dans un fichier texte sur une grosse carte SD
Re : Lire ou écrire sur une carte MMC/SD avec un pic
Bonjour,
N'oubliez pas qu'une carte SD/MMC ne se gère pas du tout comme une mémoire standard. Il faut impérativement un gestionnaire de fichiers ET aussi un mécanisme qui est capable de gérer les mauvais blocs...
On peut donc :
1/ soit utiliser quelque chose qui fonctionne et basé sur des librairies connues (FAT16, FAT32,...)
2/ ou créer son propre gestionnaire de fichiers...incompatible avec tout le reste...
L'avantage d'utilise les systèmes FAT c'est qu'on peut relire la carte à partir de tous les lecteurs de carte externe.
Une petit info au passage pour ceux qui ont besoin de la FAT32 (gestion de taille mémoire >= 2Go). Microchip a mis à jour ce mois ci sa note d'application qui gère maintenant la FAT16 ET la FAT32 ;=) : http://www.microchip.com/stellent/id...pnote=en532040 et ça tourne sur les PIC18 et les 16 bits et cela utilise le module SPI ;=)
a+
Dernière modification par RISC ; 22/06/2008 à 19h36.
Motif: addition
23/09/2008 - 21h18
boulit973
Date d'inscription
septembre 2008
Messages
3
Lire ou écrire sur une carte MMC/SD avec un pic
Salut tout le monde, j'aimerais réaliser un lecteur USB de carte SD. La j'en suis à la réalisation de la structure pour l'instant et j'aimerais savoir si on peut utiliser un PIC basse consommation. sa m'évitera d'utiliser les buffers pour passer du 5V au 3,3V.
merci d'avance
24/09/2008 - 11h13
marmotte
Date d'inscription
janvier 2004
Âge
30
Messages
331
Re : Lire ou écrire sur une carte MMC/SD avec un pic
Télécharge n'importe quelle datasheet d une carte SD, dedans tu trouveras toutes les définitions nécessaires pour utiliser le protocole de communication SD (format des trames, type de CMD, initialisations, etc...)
J'ai codé la librairie bas niveau de communications avec une carte SD ou MMC via bus SPI (= Driver SD/MMC), la librairie FAT16 / FAT32 et la librairie de gestions de fichier (Open, read, write, Delete, Close) sur PIC18F et ça marche impec!
A+
Dernière modification par marmotte ; 24/09/2008 à 11h17.
If the world doesn't change today, what would it be tomorrow?
24/09/2008 - 21h23
microchip
Date d'inscription
août 2008
Messages
184
Re : Lire ou écrire sur une carte MMC/SD avec un pic
Bonsoir Boulit,
Relis les posts précents concernant l'USB.
Tu peux utiliser 2 notes d'applications pour t'aider à faire ce que tu veux : AN1045 et AN1003
Re : Lire ou écrire sur une carte MMC/SD avec un pic
merci pour vos idées et vos lien. c'est sympa de votre part
21/10/2008 - 11h41
Titial21
Date d'inscription
avril 2008
Messages
36
Re : Lire ou écrire sur une carte MMC/SD avec un pic
Bonjour,
J'utilise moi-même le pic18F2620 avec une interface carte SD, je m'en sert comme enregistreur de capteurs sur un fichier texte, je ne sais pas si ca peut t'aider, mais, je vais te passer un bout de code que j'utilise et qui marche très bien, peut être que ca pourra t'avancer :
Code:
// Initialize the library
while (!FSInit());
pointer=NULL;
while(pointer==NULL)
{
pointer = FSfopenpgm ("FILE.GYR", "w");
}
OpenADC( ADC_FOSC_32 &
ADC_RIGHT_JUST &
ADC_12_TAD,
ADC_CH0 &
ADC_REF_VDD_VSS &
ADC_INT_OFF, 12 );
ConvertADC(); // Start conversion
while( BusyADC() ); // Wait for completion
Y = ReadADC(); // Read result
while(FSfprintf(pointer,"%d\t%d\t%d\t",X,Y,Z)<3);
while(FSfclose(pointer)!=0);
Bien entendu, avant il faut configurer tous les ports de FSconfig ainsi que les ports de SPI
Voilà, si ca peut t'aider.
Alex.
02/11/2008 - 12h28
Tootoon
Date d'inscription
juin 2007
Âge
25
Messages
11
Re : Lire ou écrire sur une carte MMC/SD avec un pic
Bonjour à tous,
Je suis actuellellement en train d'essayer d'utiliser une carte SD en mode SPI avec un PIC 18F458.
Je suis dans la phase de configuration de la librairie microchip AN1045 seulement il semble qu'elle soit faite pour fonctionner seulement avec oscillateur en mode PLL 40MHz ?
Comme j'utilise actuellement une configuration en 20MHz, est-il possible de le faire fonctionner sans en changer.
Si quelqu'un à déjà réussi peut-il m'aider ?
J'ai déjà essayé la manipulation suivante :
Dans le fichier HardwareConfig.h, modifier
#define GetSystemClock() 40000000
par
#define GetSystemClock() 20000000
Seulement cela me donne l'erreur suivante :
Dans SD-SPI.c :
Error [1105] symbol 'BUS_MODE' has not been defined
Error [1204] too many arguments in function call
Error [1105] symbol 'SMP_PHASE' has not been defined
Error [1204] too many arguments in function call
A noter qu'en laissant 40000000, il n'y a pas d'erreurs
Merci d'avance pour votre aide
Cordialement
22/03/2012 - 14h22
Aurélien
Date d'inscription
janvier 2003
Localisation
Paris
Âge
29
Messages
556
Re : Lire ou écrire sur une carte MMC/SD avec un pic
Envoyé par RISC
N'oubliez pas qu'une carte SD/MMC ne se gère pas du tout comme une mémoire standard. Il faut impérativement un gestionnaire de fichiers ET aussi un mécanisme qui est capable de gérer les mauvais blocs...
Ah bon...c'est nouveau...
Cela ne concerne que les mémoires FLASH traditionnelles. Cette gestion des blocs se fait automatiquement sur carte SD.
On peut l'utiliser comme une simple EEPROM sans probleme.