pb CAN du PIC16f876
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

pb CAN du PIC16f876



  1. #1
    invite0b61f2e8

    pb CAN du PIC16f876


    ------

    bonjour tt le monde,

    voila,j'ai fait un pti programme pour étudier le CAN du pic16f876. un potar
    est connecté sur AN0 et la valeur numérique(10 bits) est affichée sur le port B et C. je déclenche la conversion grâce a l'interruption du timer0.
    Le problème c'est que la valeur affichée sur les PORT de sortie n'est pas fixe,
    ca baguotte un peu. voici le code. Qu'aie-je oublie de paramètrer pour que ce phénomène se produise?

    ;***************************** ****************************** ******************
    ; essai du C.A.N du pic16f876 *
    ; entrée analogique (0-5V) sur AN0 et sortie 10 bits PORTC(rc0 a rc7),PORTB(rb6,rb7) *
    ; echantillonage ous les 2048us *
    ; *
    ;***************************** ****************************** ******************


    LIST p=16F876 ; Définition de processeur
    #include <p16F876.inc> ; fichier include

    __CONFIG _CP_OFF & _DEBUG_OFF & _WRT_ENABLE_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC



    BANK0 macro
    bcf STATUS,RP0
    bcf STATUS,RP1
    endm

    BANK1 macro
    bsf STATUS,RP0
    bcf STATUS,RP1
    endm

    BANK2 macro
    bcf STATUS,RP0
    bsf STATUS,RP1
    endm

    BANK3 macro
    bsf STATUS,RP0
    bsf STATUS,RP1
    endm


    org 0x00
    call init
    loop goto loop

    ;/////////////////////////////Routine d'interruption///////////////////////////

    org 0x04
    bcf INTCON,2 ;remise a 0 flag IRQ tmr0
    BANK0
    bsf ADCON0,2 ;déclenche conversion
    attente btfsc ADCON0,2
    goto attente ;test fin de conversion A/D
    movf ADRESH,0
    movwf PORTC
    BANK1
    movf ADRESL,0
    BANK0
    movwf PORTB
    retfie

    ;/////////////////////////Routine d'initialisation////////////////////////////////////

    init BANK1
    movlw 0x82
    movwf OPTION_REG ;pull ups PORTB désactivé + timer0 prescaler 1/8--> tmr0 > tmr0 + 1 tous les 8us
    clrf TRISC ;portc en sortie
    clrf TRISB ;portb en sortie
    bsf TRISA,0 ;porta en entrée/AN0 ENTREE ANALOGIQUE
    clrf ADCON1 ;left justified + vref(0-5v)
    BANK0
    movlw 0x41
    movwf ADCON0 ;activation CAN + 8tosc-->Tacq
    movlw 0xA0
    movwf INTCON ;activation IRQ timer0
    clrf PORTA
    clrf PORTB
    clrf PORTC
    return


    end

    -----

  2. #2
    RISC

    Re : pb CAN du PIC16f876

    Salut,

    "Qu'aie-je oublie de paramètrer pour que ce phénomène se produise?"

    Un conseil qui te fera gagner des heures de recherche :
    l'excellent cours en français de Bigonoff pour les PICs :
    www.bigonoff.org ;=)

    a+

  3. #3
    invite0b61f2e8

    Re : pb CAN du PIC16f876

    j'ai lu ses cours mais ca n'apporte pas la réponse à mon problème , i doit y avoir
    un truc que j'ai oublié. et puis je préfère faire mes sources moi même de A à Z
    plutôt que de copier les entêtes .ASM de bigonoff.j'espere que je vais trouver ,ca m'énerve ce bug
    merci.

  4. #4
    invitef86a6203

    Re : pb CAN du PIC16f876

    ajoute des capas , sur le potard 100nf , sur l'alime 100nf et 330µf

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

    Re : pb CAN du PIC16f876

    ok, jvais essayer de mettre des capas pourtant au scope la tension d'entrée n'est pas bruitée, c'est pour ça je pensé plus à un pb de soft qu'autrechose.

    merci tt le monde.a+

  7. #6
    invite0b61f2e8

    Re : pb CAN du PIC16f876

    bonjour ,mon pb n'est toujours pas réglé.
    j'ai fait différement pour ma conversion et fait un nouveau code.
    En fait je convertie et affiche la valeur numérique dès l'appui sur un bouton poussoir(RB0 en interruption).cela marche , mais ce qui est bizarre c'est que lorsque je laisse le potar (sur AN0) dans la meme position, et que je lance plusieurs conversion en appuyant sur le BP , la valeur affiché n'est pas toujours la meme alors que la tension sur an0 ne change pas.
    j'ai mis une tempo anti rebond, mais ca fait toujours pareil.
    ???

  8. #7
    invitef86a6203

    Re : pb CAN du PIC16f876

    peut être que le potientiomètre crache un peu.
    Et ça varie de combien , si c'est juste 2 ou 3 points sur 10 bits ça parait normal.
    Reste a faire l'essai avec un pont de résistance.

  9. #8
    Gérard

    Re : pb CAN du PIC16f876

    Bonjour,
    Je suppose que tu prends le 5V en VRef+, est-il stable ?
    Et comme dit Pat, si la variation est de 2 ou 3 point, ce n'est pas un drame.

  10. #9
    RISC

    Re : pb CAN du PIC16f876

    Salut,

    Pour ce qui concerne l'analogique, il est également très courant de faire du "moyennage" pour éviter toute valeur en dehors des limites.
    Exemple, si tu utilises un potentiomètre qui crache ou de très faible coût, il se peut que le point milieu soit de temps en temps "en l'air", ce qui donne une conversion fausse...

    C'est plus courant qu'on ne le pense !
    J'ai été victime de cela avec un potentiomètre que j'utilisais pour injecter dans la boucle de retour une fraction de l'erreur dans une régulation de vitesse de moteur brushless sensorless.
    Le potards avec piste en graphite sont connus pour ces problèmes (qui n'a jamais entendu un son qui crache sur un poste radio...)

    a+

  11. #10
    Gérard

    Re : pb CAN du PIC16f876

    Bonjour,
    Excellente idée que celle de RISC, tu acquières 10 valeurs, tu calcules la moyenne et le tour est joué.

    PS : tu veux vraiment continuer en asm ?
    Dernière modification par Gérard ; 11/05/2008 à 18h53. Motif: PS

  12. #11
    invite0b61f2e8

    Re : pb CAN du PIC16f876

    ok ,en gros le CAN du PIC16f876 est un périphérique "gadget" qui est marche pas super bien...

  13. #12
    Gérard

    Re : pb CAN du PIC16f876

    Citation Envoyé par maxisteack1983 Voir le message
    ok ,en gros le CAN du PIC16f876 est un périphérique "gadget" qui est marche pas super bien...
    Bonjour,
    T'es dur avec le 876, le CAN est un 10 bit, sur 5V d'amplitude, le quantum est de moins de 5mV, pas de quoi fouetter un chat.
    Le "crachement" du potentiomètre peut bien occasionner une erreur sensible.

Discussions similaires

  1. Pb Afficheur (2*16) GDM1602A + PIC16f876
    Par invite9f4b8fa4 dans le forum Électronique
    Réponses: 14
    Dernier message: 06/03/2008, 16h23
  2. PIC16F876 en I2C
    Par invite2977d557 dans le forum Électronique
    Réponses: 3
    Dernier message: 16/09/2007, 16h38
  3. montage pic16f876
    Par invite4b9d5cf9 dans le forum Électronique
    Réponses: 1
    Dernier message: 21/04/2007, 11h28
  4. Pic16f876
    Par invite0f39f32f dans le forum Électronique
    Réponses: 1
    Dernier message: 02/05/2006, 18h48
  5. PIC16F876
    Par inviteaaaccd27 dans le forum Électronique
    Réponses: 1
    Dernier message: 04/02/2004, 13h56
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...