Bonjour,
j'essaie d'écrire et de lire une carte SD avec un 18f4550.
J'ai fait l'init; je pense que c'est ok puisque la carte m'a bien renvoyé les reponses que j'attendait.
J'en suis a l'ecriture.
La commande passe bien.
ensuite j'envoie 0xFE.
puis les 512 char
puis deux fois 0xFF
Puis je ne reçoit jamais l'octet finissant par 5.
En fait je reçoit FF a l'infini
Voila mon code d'ecriture.
void EcritureSDCARD(void)
{
int iii;
cmd_ecriture_recu=0;
reponse=0;
if (Command(0x58,0x0,0x0,0x04,0x0 ,0xFF)==0x00)//commande ecriture CMD24
{cmd_ecriture_recu=1;
SPI(0xFE); //octet a transmettre avant les 512 octets de donnée
for (iii=0;iii<512;iii++)
{
reponse=SPI(iii%64); // données a ecrire
}
while (reponse==0xff)
{
reponse=SPI(0xFF);}
if (reponse&0x0F==0x05) {cmd_ecriture_recu=3;}
if (reponse&0x0F==0x0b) {cmd_ecriture_recu=4;}
}
}
qu'en pensez-vous?
-----