Bonjour à tous,
Je me débat depuis plusieurs semaines avec une mémoire Flash série M25P16. Je ne suis pas bilingue mais je crois connaître assez l'anglais pour m'en sortir avec les datasheets...
Je voulais implanter la mémoire en question dans un projet de thermo_horaire (thermomètre qui relève la température au cours du temps) mais étant donné que je ne l'avais encore jamais utilisée (la mémoire), j'ai décidé à procédé à une série de test en créant un petit circuit avec un uC, la mémoire et tout le nécessaire pour tester tout ça.
Malheureusement, certain de mes tests ne sont pas concluants et il m'est impossible d'écrire dans la mémoire ! Celà fait plusieurs semaines que j'essaie de trouver le problème
Voici quelques infos sur mon problème :
- Alimentation de la mémoire en 3.3V
- Les pattes /HOLD et /W sont toutes 2 à l'état 1 (donc disable)
- Les bits de protection contre l'écriture sont disable (c'est à dire que SRWD, PB2, PB1 et PB0 du "status register" sont à l'état 0).
- La patte "/S" est bien mise à 0 au début de l'instruction et remise à l'état 2 à la fin.
- J'ai fait un "Write Enable" avant le "Page Programme" et j'ai vérifié, graçe à un "Read Status Register", que le "WEL" (bit 1 du "Status Register") étant bien à l'état 1.
- J'envoie bien le byte d'instruction, les 3 bytes d'adresse et exactement un certain nombre de bytes (sauf erreur 14) avec le bon nombre de bit (ni plus ni moins que 14*8).
- bref : Mon chronogramme (ce que je vois sur mon oscilloscope numérique) correspond exactement à ce qui est indiqué dans le datasheet.
- Juste après la fin de l'instruction "Page Program", je refais un "Read Status Register" et je remarque que le "WEL" est repassé à 0... est-ce normal ? c'est d'ailleurs aussi le cas lorsque j'utilise la fonction "Write Status Register" qui sert à programmer les bits de protections contre l'écriture
- De plus, le "WIP" n'est pas activé !
- Après tout ça, je fais un "Read Data Bytes" avec la même adresse que celle du "Page Program" et la mémoire ne me renvoie que des 0... (alors qu'avec un "Bulk Erase" que j'ai fais précédemment) je ne devrait avoir que des 1 ? ...)
Avez-vous déjà eu à faire à ce type de mémoire ? et si avez-vous eu des problèmes ?
Merci d'avance de votre réponse
-----