24c16 , pic 16F84
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

24c16 , pic 16F84



  1. #1
    invitea0a062f4

    24c16 , pic 16F84


    ------

    bonjour,

    Pour commencer , je me suis procuré une 24c16 , cette EEprom utilise le protocole I²C , ok mon petit problème c'est mon programme , j'ai beau chercher ou se trouve l erreur , rien .

    voila je suis la pour vous demander de l aide . Merci d'avance


    ----------------------------------------------------------


    list p = 16f84
    #include <p16f84.inc>

    __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC

    CBLOCK 0x0c
    var1:1
    var2: 1
    endc
    ;************* MACRO ***************************

    bank0 macro
    bcf STATUS,RP0
    endm
    bank1 macro
    bsf STATUS,RP1
    endm
    ;************* CONSTANTES **********************



    DebutRAM equ 00Ch
    BOOLEEN equ (DebutRAM+1)
    I2C_ACK equ 0
    SD equ 4
    SC equ 3
    ;************* RESET ***************************

    org 0x0000
    goto init

    ;************* INITIALISATION ******************
    init

    bank1
    movlw b'00000000'
    movwf TRISA ; RA3=SC , RA4=SD
    movlw b'01111111'
    movwf OPTION_REG ; résistance pull-up
    bank0
    bsf PORTA,SD
    bsf PORTA,SC


    goto start


    ;************ TEMPORISATION *********************

    tempo nop ; call(2µs)+nop(1µs)+return(2µs) = 5µs
    return
    ;*********** SOUS-ROUTINE ***********************
    M_START bsf PORTA,SC ; Envoi un ordre de debut
    bsf PORTA,SD
    call tempo
    bcf PORTA,SD
    call tempo
    bcf PORTA,SC
    call tempo
    bsf PORTA,SD
    return

    M_STOP bcf PORTA,SC
    bcf PORTA,SD
    call tempo
    bsf PORTA,SC
    call tempo
    bsf PORTA,SD
    call tempo
    return

    ENVOI movwf var1
    movlw 8
    movwf var2

    second_bit

    bcf PORTA,SC
    btfss var1,7
    bcf PORTA,SD
    btfsc var1,7
    bsf PORTA,SD
    call tempo
    bsf PORTA,SC
    call tempo
    bcf PORTA,SC
    rlf var1,f
    decfsz var2,f
    goto second_bit
    bsf PORTA,SD
    return


    ;*********** PROGRAMME **************************


    start
    call M_START
    movlw b'10100000'
    call ENVOI
    call M_ACK
    movlw 0002h
    call ENVOI
    call M_ACK
    movlw 5Ah
    call ENVOI
    call M_ACK
    call M_STOP

    goto start



    end

    -----

  2. #2
    invite7a49d0d5

    Cool Re : 24c16 , pic 16F84

    Salut,

    tu as bien des résistances de "pull-up" (4.7K)
    externes sur les ports SD et SC (RA3 et RA4)?

    vede
    ;O]
    _____________
    ...

  3. #3
    invitea0a062f4

    Re : 24c16 , pic 16F84

    bonjour,

    oui mais c'est des résistance 10k, est ce qu'il faut impérativement des 4k7 ?

    Merci.

  4. #4
    gedonet

    Re : 24c16 , pic 16F84

    Bonjour
    Comment sais tu que ton programme ne fonctionne pas. Ensuite ton programme ecrit la valeur H'5A' à la troisieme adresse de ton EEprom, est ce vraiment ce que tu veux faire? Il faut faire attention avec la 24C16 qui est differente des autres EEprom I2C au niveau de la procedure.
    Je ne sais pas si tes routines I2C son correctes, si cela t'interresse sur mon site il y a une routine I2C soft que j'ai testée et que j'utilise regulierement ( oscillateur 4 MHz): http://gedonet.free.fr/aide_pic/aide_pic.htm
    Verifies aussi si tes façon d'ecrire les nombres en Hexa sont compatible avec ton compilateur, Avec MPLAB on utilise en general les formats H'5A' ou 0x5A, ou on choisit Hexa comme format par defaut.
    Gilles

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

    Cool Re : 24c16 , pic 16F84

    Salut,

    bon chez moi "ça passe" avec des 10K...
    je viens de tester... mais bon... je te suggére
    de diminuer la valeur comme spécifié dans la datasheet...

    et une suggestion : rajoute 1 nop ou 2 ou 3 dans ton tempo... pour test...

    et une question : où est M_ACK ?

    ayant déjà écris ce genre de routine (soft iic),
    allumes une led si ACK reçu dans ta routine M_ACK ...
    déjà pour "voir" si ta mémoire "répond" bien...
    delà...

    vede
    ;O]
    ____________
    ...

  7. #6
    invitea0a062f4

    Re : 24c16 , pic 16F84

    bonjour ,


    gedonet ,

    Merci pour ton liens sa bien aider à avancer , voila pour les formats je vais tester avec h'5A' , j'ai aussi constater que mes routines marchent en les testant a part .

    vede,

    Pour la routine M_ACK existe dans mon programme g du l effacer en voulant mettre une copie sur le forum.
    Pour les résistance de rappel , j'ai tester 470 ohm , sa marche elle donne 4,35v en niveau haut donc c acceptable par l eeprom .

    Merci.

  8. #7
    invitea0a062f4

    Re : 24c16 , pic 16F84

    bonsoir,


    Voila je vous remercie de m 'avoir aider , j'ai pus résoudre mon problème.

    Merci.

Discussions similaires

  1. Pic 16f84
    Par invite53f01fe4 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 27/04/2010, 15h08
  2. Pic 16f84
    Par invite2dffe7ca dans le forum Électronique
    Réponses: 4
    Dernier message: 07/07/2007, 15h21
  3. pic 16F84
    Par invite894c2685 dans le forum Électronique
    Réponses: 0
    Dernier message: 21/09/2006, 14h47
  4. Pic 16F84
    Par invite10bd8950 dans le forum Électronique
    Réponses: 10
    Dernier message: 14/05/2006, 11h21
  5. Pic 16f84
    Par Nico G. dans le forum Électronique
    Réponses: 2
    Dernier message: 11/12/2005, 18h28
Découvrez nos comparatifs produits sur l'informatique et les technologies.