Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

Accès en lecture EEPROM



  1. #1
    Toufinet

    Accès en lecture EEPROM


    ------

    Bonjour à tous.

    Voilà, j'ai un petit problème quant à la lecture de la mémoire EEPROM du pic 16F877.

    Voici mon programme ( du moins la partie concernant la lecture de l'EEPROM )

    Code PHP:
    ReadMem macro
        bank2
        MOVF    ADDR
    ,0
        MOVWF    EEADR
        bank3
        BCF    EECON1
    EEPGD
        BSF EECON1
    RD
        bank2
        MOVF    EEDATA
    ,0
        bank0
        ENDM
    ...
    ...
    ...
        
    MOVLW    0x00
        MOVWF    ADDR
        ReadMem
        MOVWF    LCD
        CALL    LCD_SDAT 
    Lorsque je programme mon PIC via IC-Prog, et met à l'adresse 0x0000, la valeur hexadécimale 41, qui correspond à un "A" pour un afficheur LCD.

    Hors, lorsque mon programme arrive à l'affichage de la valeur lue dans l'EEPROM, j'obtient un carré noir, soit la valeur FF au lieu du 41 que j'ai mis.

    Ensuite j'ai effectué une lecture du PIC avec IC-Prog, et j'ai bien la valeur 41 à l'adresse 0000 de l'EEPROM ...

    D'où peut venir le pb ?
    Qu'es-ce que je fais qui ne va pas ?

    Merci

    -----

  2. Publicité
  3. #2
    Toufinet

    Re : Accès en lecture EEPROM

    C'est encore moi ...

    Pour tester, j'ai mis la valeur 41 sur TOUTES les adresses de la mémoire EEPROM.
    Cette fois, j'ai bien le "A" qui s'affiche.

    J'en conclue que le problème vient de l'adresse.
    Mais je ne comprend pas, car je met la valeur 0x00 dans "ADDR", donc il devrait pourtant bien lire à l'adresse 0x00, ce qui ne semble pas être le cas ...

  4. #3
    Seb.26

    Re : Accès en lecture EEPROM

    Desolé, je ne parle pas l'ASM ... à titre indicatif, voici la routine que j'utilise ( en C )
    EEADR=adr; // pour toi, adr=0x00

    EECON1bits.EEPGD=0;
    EECON1bits.CFGS=0;
    EECON1bits.RD=1;

    return(EEDATA);
    dans ton code, il ne manque pas un :
    BCF EECON1, CFGS
    ici :
    BCF EECON1, EEPGD
    << ici >>
    BSF EECON1, RD
    Je sais pas si cela va t'aider, mais je peux pas faire mieux ...

    [edit] tu utilise un 16fxxxx ... desolé, j'avais pas fait gaffe ... j'utilise un 18F4550, le bit CFGS n'est donc sans doute pas utilisé pour ton PIC ...

  5. #4
    Seb.26

    Re : Accès en lecture EEPROM

    Pourtant, ton code ressemble fortement à celui de la datasheet du PIC :
    BSF STATUS, RP1 ;
    BCF STATUS, RP0 ;Bank 2
    MOVF ADDR, W ;Write address
    MOVWF EEADR ;to read from
    BSF STATUS, RP0 ;Bank 3
    BCF EECON1, EEPGD ;Point to Data memory
    BSF EECON1, RD ;Start read operation
    BCF STATUS, RP0 ;Bank 2
    MOVF EEDATA, W ;W = EEDATA
    Une piste en rouge, non ?!

  6. A voir en vidéo sur Futura
  7. #5
    Toufinet

    Re : Accès en lecture EEPROM

    En effet, débutant dans la lecture / écriture EEPROM, j'ai piqué le code de Microchip

    Sinon, non, mon code est le même.
    MOVF bidule, W est équivalent à MOVF bidule,0

    Bref, je viens de faire un big test pour détecter l'adresse qu'il lit, et il s'avère qu'il lit la toute dernière adresse, soit 0xFF, sans AUCUN rapport avec l'adresse que je lui demande de lire ...

    Quelqu'un a une réponse svp ?

    Merci

  8. #6
    Seb.26

    Re : Accès en lecture EEPROM

    Dezolé alors ...

    Bon courage !

  9. Publicité
  10. #7
    Toufinet

    Re : Accès en lecture EEPROM

    Merci de ta réponse en tout cas

    Mais bon, là ça saoule, il ne me reste plus qu'à lire et écrire dans l'EEPROM pour clore mon projet ...

  11. #8
    Toufinet

    Re : Accès en lecture EEPROM

    Bon, j'ai tenté une écriture, pour voir.

    Résultat : ça écrit, en effet, sauf que ça n'écrit pas à la bonne adresse, et ça n'écrit pas la bonne valeur ...

    EEPROM HS, c'est possible ?

  12. #9
    Toufinet

    Re : Accès en lecture EEPROM

    Personne ?

  13. #10
    Gérard

    Re : Accès en lecture EEPROM

    Pour tester l'EEPROM, tu peux y écrire par programmation.
    En relisant le PIC, tu verras si ce que tu as voulu écrire est effectivement écrit.
    Gérard.

  14. #11
    Toufinet

    Re : Accès en lecture EEPROM

    ok, donc je dois en conclure que la mémoire EEPROM de mon PIC est HS ?

    ça me parait bizard ça quand même ...

  15. #12
    Seb.26

    Re : Accès en lecture EEPROM

    Citation Envoyé par Toufinet Voir le message
    ok, donc je dois en conclure que la mémoire EEPROM de mon PIC est HS ?

    ça me parait bizard ça quand même ...
    Ton PIC est (quasi) neuf ?
    as tu une idée du nombre de cycles d'ecriture que tu as déjà fait ?

    Ton problème est identique sur toutes les addresses ?!

    Avec un autre soft (en C par exemple), ça marche ?!

    Essaye aussi de desactiver les interuptions durant l'ecriture ...
    ( restaurent elle correctement le contexte ? )

  16. Publicité
  17. #13
    Toufinet

    Re : Accès en lecture EEPROM

    Salut.

    PIC quasi neuf.
    Un idée du nombre de cycles déjà fait ? oui, environ 0

    J'ai désactivé toutes les interruptions ...
    Je suis maudit

  18. #14
    Gérard

    Re : Accès en lecture EEPROM

    Citation Envoyé par Toufinet Voir le message
    ok, donc je dois en conclure que la mémoire EEPROM de mon PIC est HS ?

    ça me parait bizard ça quand même ...
    As-tu essayé ce que je t'ai proposé au post 10 ?
    C'est peut-être ton prog qui n'écrit pas dans l'EEPROM.
    Gérard.

  19. #15
    Gérard

    Re : Accès en lecture EEPROM

    Citation Envoyé par Toufinet Voir le message

    ...
    Je suis maudit
    Peut-être, on n'en est pas encore sûr.....
    Gérard.

  20. #16
    Epsylon3

    Re : Accès en lecture EEPROM

    Certains PIC (vu sur 18F4620) nécessitent un NOP lors de la lecture de l'eeprom pour que le registre soit bien affecté, c pt le cas pour le tien...

    c expliqué dans la doc microchip du pic en question, ya aussi une instruction d'autorisation d'accés il me semble

  21. #17
    Toufinet

    Re : Accès en lecture EEPROM

    J'ai essayé, toujours rien ..

    De plus, Microchip dit que c'est immédiat.
    Le PIC lit s'entête à lire l'adresse 0xFF de la mémoire EEPROM

    J'ai vraiment pas envie d'en racheter un, il coute minimum 10€ en magasin

Discussions similaires

  1. probleme lecture mémoire EEPROM M952256
    Par smartise73 dans le forum Électronique
    Réponses: 1
    Dernier message: 23/07/2007, 16h17
  2. ecriture et lecture eeprom
    Par traxxa dans le forum Électronique
    Réponses: 2
    Dernier message: 21/03/2007, 11h22
  3. Lecture et ecriture dans eeprom 24c02
    Par joss dans le forum Électronique
    Réponses: 2
    Dernier message: 29/06/2006, 20h32
  4. PROGRAMMATION DES PICs: ACCES EEPROM
    Par bison dans le forum Électronique
    Réponses: 1
    Dernier message: 11/06/2003, 08h56
Découvrez nos comparatifs produits sur l'informatique et les technologies.