Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?



  1. #1
    invite48613fdf

    Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?


    ------

    Bonjour!

    Je tente d'écrire et lire dans la EEPROM d'un PIC18F4685. (MPASM)

    J'écris de façon interne mes données, donc:

    DE "Blabla"

    Je ne vous exposerai pas tout mon code puisque ma question est technique: Je n'arrive à écrire puis lire qu'un octet sur deux!

    Donc, si j'écris "teste, un deux trois quatre", j'ai quelque chose comme "tse n ddu ri qar", autant dans le DUMP mémoire de mon logiciel pour programmer que dans le pic lui même lorsque je le branche et vérifie avec des LEDs. Donc:
    1. J'écris bien ma commande DE "Test de données"
    2. Quand le fichier .HEX est fait, il n'y a déjà apparemment plus que la moitié de ce que j'ai écrit.
    3. Et effectivement, au gravage non plus.

    Quelqu'un reconnaîtrait-il ce symptôme? J'utilise MPASM pour créer mon fichier .HEX, et PICPgm pour le graver avec un programmeur JDM.

    Je pense qu'il y a une incompatibilité entre PICPgm et le 18F4586, qui a beaucoup de mémoire EEPROM à adresser... Mais si quelqu'un a une autre idée?

    Merci!

    -----

  2. #2
    invite48613fdf

    Re : Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?

    En fait, j'utilise "MPLAB", pas "MPASM" pour la création du fichier .HEX.

    Puis si je lis à l'adresse 0x00, j'obtiens le premier octet.
    À l'adresse 0x01, j'ai le troisième. À 0x02, le cinquième. Etc...

    Mon autre hypothèse est que je place une valeur 16 bits que je lis sur un port 8 bits. Mais j'ai fait une rotation de bits pour voir si une valeur n'était pas cachée un peu plus loin dans mon registre W copié dans une VARIABLE, mais sans succès. D'ailleurs, y a-t-il avec les PIC18F des operands qui considèrent le fait que les ports sont 8 bits et les valeurs, 16 bits? J'ai trouvé 0 réponse en googlant...

    Merci!

  3. #3
    RicounetZap

    Re : Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?

    Bonjour,
    Vérifie d'abord ton code de lecture en préprogrammant ton EEProm avec les données connues. Si ta lecture est correcte, c'est que ta fonction d'écriture ne fonctionne pas correctement.

    Attention quand même, les EEProms sont en 8 bits (du moins sur les PICs que j'utilise). On ne peut donc pas écrire directement des mots de 16 bits.
    A+

  4. #4
    sdec25

    Re : Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?

    Bonjour,
    Citation Envoyé par Ley111 Voir le message
    Je ne vous exposerai pas tout mon code puisque ma question est technique: Je n'arrive à écrire puis lire qu'un octet sur deux!
    Et si c'était un problème dans le programme ?
    Poste ton code : fonctions d'écriture et de lecture, ainsi que l'appel de ces fonctions.

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

    Re : Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?

    Citation Envoyé par RicounetZap Voir le message
    Bonjour,
    Vérifie d'abord ton code de lecture en préprogrammant ton EEProm avec les données connues. Si ta lecture est correcte, c'est que ta fonction d'écriture ne fonctionne pas correctement.

    Attention quand même, les EEProms sont en 8 bits (du moins sur les PICs que j'utilise). On ne peut donc pas écrire directement des mots de 16 bits.
    A+
    Pour me reprendre, pour écrire un mot de 16 bits dans l'EEProm, il faut écrire un mot de 8 bits à la première adresse, incrémenter l'adresse et écrire ensuite le deuxième mot de 8 bits.

    A+

  7. #6
    RISC

    Re : Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?

    Salut,

    As-tu jetté un oeil dans les cours de Bigonoff ?
    Je pense qu'il traite de cela en détails.

    As-tu suivi les exemples 7-1 et 7-2 de la datasheet qui montrent comment lire et écrire l'E2PROM ?

    a+

  8. #7
    invite48613fdf

    Re : Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?

    Allo,

    Oui, j'ai suivi les deux exemples 7-1 et 7-2, et pour l'instant, je n'ai pas encore réussi à modifier la mémoire, alors ça regarde mal.

    Je mets 0x74 comme valeur:

    MOVLW 0x00 ;
    MOVWF EEADRH ; Upper bits of Data Memory Address to write
    MOVLW 0x00 ;
    MOVWF EEADR ; Lower bits of Data Memory Address to write
    MOVLW 0x74 ;
    MOVWF EEDATA ; Data Memory Value to write
    BCF EECON1, EEPGD ; Point to DATA memory
    BCF EECON1, CFGS ; Access EEPROM
    BSF EECON1, WREN ; Enable writes
    BCF INTCON, GIE ; Disable Interrupts
    MOVLW 55h ;
    MOVWF EECON2 ; Write 55h
    MOVLW 0AAh ;
    MOVWF EECON2 ; Write 0AAh
    BSF EECON1, WR ; Set WR bit to begin write
    BSF INTCON, GIE ; Enable Interrupts
    BCF EECON1, WREN ; Disable writes on write complete (EEIF set)


    Je relis et veux placer dans la variable SDT:

    clrf SDT
    MOVLW 0x00 ;
    MOVWF EEADRH ; Upper bits of Data Memory Address to read
    MOVLW 0x00 ;
    MOVWF EEADR ; Lower bits of Data Memory Address to read
    BCF EECON1, EEPGD ; Point to DATA memory
    BCF EECON1, CFGS ; Access EEPROM
    BSF EECON1, RD ; EEPROM Read
    MOVF EEDATA, SDT ; W = EEDATA


    Je le place sur le PORTD:

    movff SDT, PORTD

    Et... Je vais revérifier une dernière fois...

  9. #8
    xastin

    Re : Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?

    bonjour à tous c'est vraiment sympas ce que les uns font pour les autre et vice versa.Moi mon probleme c'est que je n'arrive pas à ecrire dans la EEPROM de mon PIC16F877A.je veux passer par IC-prog pour y écrire directement.
    Merci car je ne sais pas si je dois agir au niveau des fusible (WDT PWRT BODEN LVP CPD CP ...) merci davance

  10. #9
    RISC

    Re : Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?

    Salut,

    Si tu écris en assembleur, ce sujet (programmation de l'E2PROM) est traité avec force détails dans l'excellent cours de cours de Bigonoff.

    a+

  11. #10
    schmo

    Re : Écriture de l'EEPROM interne avec PIC18F: Un octet sur deux de perdu?

    salut,

    il y a des petites choses qui me chiffone dans tes routines d'écriture/lecture.

    écriture:
    tu n'attends pas la fin de l'écriture avant de dévalider le bit WREN?
    je m'attendais plus à avoir un truc du genre:
    mise à 1 du bit WR de EECON1 pour lancer l'écriture
    attendre que ce bit repasse à 0...
    mise à 0 du bit WEN de EECON1 pour dévalider l'écriture.


    Lecture:
    Dans cette routine, c'est la dernière ligne:
    un MOVFF EEDATA,SDT conviendrait mieux....

    A+

Discussions similaires

  1. Ecriture fichier TXT sur SD Card en FAT32 avec un PIC.
    Par invite14d9a42f dans le forum Électronique
    Réponses: 17
    Dernier message: 08/06/2011, 08h51
  2. Problem avec les valeurs de l'EEPROM de mon PIC
    Par schneiderj dans le forum Électronique
    Réponses: 2
    Dernier message: 31/03/2009, 17h17
  3. pic16f84 j'ai un probleme pour ecrire dans l'eeprom interne
    Par LABTOOL48 dans le forum Électronique
    Réponses: 26
    Dernier message: 02/12/2008, 20h45
  4. Réponses: 0
    Dernier message: 21/11/2008, 06h20
  5. ecriture dans l'EEPROM?? comprend pas
    Par invite9b9d0eb8 dans le forum Électronique
    Réponses: 0
    Dernier message: 27/01/2007, 14h34
Découvrez nos comparatifs produits sur l'informatique et les technologies.