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

PIC 16f628, et oscillateur externe à Quartz...



  1. #1
    suzuka

    PIC 16f628, et oscillateur externe à Quartz...


    ------

    Bonjour à tous,

    Voila, je suis en train d'essayer de faire un programme pour une PIC 16F628, avec un oscillateur externe.
    Mais je n'arrive pas à le faire osciller... c'est ballot

    En fait, j'ai bien configuré le "configuration bits" en mode Oscillator HS (pour High Speed) mais ça me donne un oscillateur HS (Hors Service)...

    Y a t il d'autres registres à configurer que le "configuration bits" ?

    Merci d'avance

    -----

  2. Publicité
  3. #2
    suzuka

    Re : PIC 16f628, et oscillateur externe à Quartz...

    Pour info, j'ai un quartz à 10MHz, associé à 2 capa de 22pF.

    Et le code est le suivant :
    ;***************************** ****************************** ***********
    ; Programme d'initiation aux PIC 16F628
    ;***************************** ****************************** ***********
    ; *
    ;***************************** ****************************** ***********
    ; *
    ; Fichier requis: P16F628.inc *
    ; *
    ;***************************** ****************************** ***********



    LIST p=16f628 ; Définition de processeur
    #include <p16F628.inc> ; Définitions de variables


    ; __config H'3F2A' ; cf configuration bit

    ; configuration permettant notemment de commander la fréquence d'horloge
    ; en externe sur RA6/RA7


    ;***************************** ****************************** **********
    ; DEFINE *
    ;***************************** ****************************** **********
    ; on définit
    #DEFINE LED1 PORTA,1 ; Pin 18
    #DEFINE LED2 PORTA,0 ; Pin 17
    #DEFINE LED3 PORTB,5 ; Pin 11
    #DEFINE LED4 PORTB,4 ; Pin 10

    #DEFINE DELAI H'03'

    ;***************************** ****************************** **********
    ; DECLARATIONS DE VARIABLES *
    ;***************************** ****************************** **********
    CBLOCK 0x20 ; début de la zone variables
    cmpt1 : 1 ; compteur de boucles 1
    cmpt2 : 1 ; compteur de boucles 2
    ENDC ; Fin de la zone




    ;***************************** ****************************** ***********
    ; DEMARRAGE SUR RESET *
    ;***************************** ****************************** ***********

    org H'0000' ; Adresse de départ après reset (ou 0x000)
    goto init ; Adresse 0: initialiser

    ;***************************** ****************************** **********
    ; INITIALISATIONS *
    ;***************************** ****************************** **********

    org H'0020'
    init

    bcf STATUS,RP1
    bcf STATUS,RP0 ;bank 0

    clrf PORTA ; Sorties portA à 0
    clrf PORTB ; sorties portB à 0

    movlw B'00000111'
    movwf CMCON ; comparateurs off


    bcf STATUS,RP1
    bsf STATUS,RP0 ; sélectionner banque 1

    clrf EEADR ; permet de diminuer la consommation

    movlw B'01001110' ; charger masque (INTEDG=1)
    movwf OPTION_REG ; initialiser registre option avec 0048=interruption "rising"


    movlw B'001000000'
    movwf TRISA ; on met le port A comme sortie


    movlw B'00000000'
    movwf TRISB ; on met le port B en sortie

    movlw B'00000000'
    movwf VRCON ; on désactive la référence de tension

    ;bcf PCON,3 ;37kHz à20%
    ;bsf PCON,3 ;4MHz à 2.5%

    bcf STATUS,RP1
    bcf STATUS,RP0 ;repasser bank 0

    ; Effacer RAM
    ; ------------
    movlw 0x0c ; initialisation pointeur
    movwf FSR ; pointeur d'adressage indirec

    ;initialisation des feux
    bsf LED1



    goto start ; sauter au programme principal

    ;***************************** ****************************** **********
    ; SOUS-ROUTINE DE TEMPORISATION *
    ;***************************** ****************************** **********
    ;---------------------------------------------------------------------
    ; Cette sous-routine introduit un retard de 256*3*(2+1)us=1s
    ; Elle ne reçoit aucun paramètre et n'en retourne aucun
    ;---------------------------------------------------------------------
    tempo
    movlw DELAI
    movwf cmpt2 ; initialiser compteur3
    boucle2
    clrf cmpt1 ; effacer compteur1
    boucle1
    decfsz cmpt1,f ; décrémenter compteur1 ;1 cycle
    goto boucle1 ; si pas 0, boucler ;2 cycles
    decfsz cmpt2,f ; si 0, décrémenter compteur 2
    goto boucle2 ; si cmpt2 pas 0, recommencer boucle1
    return ; retour de la sous-routine


    ;***************************** ****************************** **********
    ; PROGRAMME PRINCIPAL *
    ;***************************** ****************************** **********

    task
    ; allumage total
    bsf LED2

    return



    start
    call task ; tâche principale
    goto start ; boucler




    END ; directive fin de programme

  4. #3
    Franck-026

    Re : PIC 16f628, et oscillateur externe à Quartz...

    deja, si tu as activé le MCLR en ON, il faut une resistance de tirage au +5V, ensuite ton PIC devrait tourner. Habitue toi deja a faire clignoter une LED... c'est un bon exercice

    Ne pas oublier de passer les ports analogiques en digital, entree ou sortie selon le besoin, car si on oublie, ils sont en analogique par defaut...

  5. #4
    suzuka

    Re : PIC 16f628, et oscillateur externe à Quartz...

    En fait, j'ai connecté la patte 4 (MCLR barre) à 5V et sans résistance (sans trop savoir pour quoi en fait, mais ça marchait avec un autre programme).
    Et dans mes "configurations bits", j'ai du "0" sur le bit n°5.

    Que dois je remettre en cause exactement ?

  6. A voir en vidéo sur Futura
  7. #5
    Franck-026

    Re : PIC 16f628, et oscillateur externe à Quartz...

    je te conseille de telecharger la maquette du PIC tres bien documentee sur le site de Mr bigonoff, et de jouer a faire clignoter la LED...

  8. #6
    Franck-026

    Re : PIC 16f628, et oscillateur externe à Quartz...

    regarde ici je te joins la maquette:

    tout est bien expliqué...
    Fichiers attachés Fichiers attachés

  9. Publicité
  10. #7
    Antoane
    Responsable technique

    Re : PIC 16f628, et oscillateur externe à Quartz...

    Bonjour,
    c'est que ton pic est limité à 4MHz ?

    " Il ne faut jamais désespérer d'un imbécile : avec un peu d'entraînement, on peut toujours en faire un militaire"
    Pierre Desproges
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  11. #8
    marvinl

    Re : PIC 16f628, et oscillateur externe à Quartz...

    Bonjour,

    Dans cette partie de code:

    movlw B'001000000'
    movwf TRISA ; on met le port A comme sortie

    tu as 9 bits, déja mettre ça en ordre...

  12. #9
    Franck-026

    Re : PIC 16f628, et oscillateur externe à Quartz...

    de toutes facons, c'est pas parceque le pic semble inactif qu'il n'oscille pas. A revoir serieusement toutes les configs des E/S et aussi essayer de faire clignoter une simple LED. Avec ca, on sait que le PIC oscille. Ne pas courir avant de savoir marcher.

  13. #10
    suzuka

    Re : PIC 16f628, et oscillateur externe à Quartz...

    Citation Envoyé par Franck-026 Voir le message
    de toutes facons, c'est pas parceque le pic semble inactif qu'il n'oscille pas. A revoir serieusement toutes les configs des E/S et aussi essayer de faire clignoter une simple LED. Avec ca, on sait que le PIC oscille. Ne pas courir avant de savoir marcher.
    En l'occurrence, j'ai déjà essayé.
    Et pour continuer à comprendre ce PIC, j'aimerais faire clignoter une LED, en utilisant un Quartz Externe.

  14. #11
    marvinl

    Re : PIC 16f628, et oscillateur externe à Quartz...

    Il y a une autre erreur dans ton code, tu as placé ta config en commentaire.
    ; __config H'3F2A' ; cf configuration bit
    Corrige ça et corrige aussi ta config du porta.

  15. #12
    marvinl

    Re : PIC 16f628, et oscillateur externe à Quartz...

    Pour info, j'ai corrigé le code, compilé et chargé dans le pic et ça fonctionne... Enfin 2 leds s'allument.

  16. Publicité
  17. #13
    Franck-026

    Re : PIC 16f628, et oscillateur externe à Quartz...

    Noemal, quand on programme sans essayer de se relire... Je t'ai deja dit d'utiliser la maquette du 16F628 que je t'ai posté, et tu pourras comprendre toutes les configs qui sont docuimentees dans la maquette... Apres si utiliser des changements de bits non documentés et ne pas arriver a te relire, ca avancera pas...

    Le but de faire clignoter une LED, c'est de tester si en effet le PIC arrive a faire tourner son programme... Pour cela, il faut une maquette avec le boute de programme de clignotement. Et configurer les ports entrees/sorties et de passer les ports analogiques en digital. Tout est marqué dans la maquette. Rien de plus a dire, il n'y a plus qu'a...

  18. #14
    marvinl

    Re : PIC 16f628, et oscillateur externe à Quartz...

    Frank je crois que tu te trompes de destinataire lol, l'auteur du message est suzuka. Par contre, je suis d'accord avec toi. Les maquettes de Bigonoff sont de très bons points de départ ainsi que ses cours.

  19. #15
    Franck-026

    Re : PIC 16f628, et oscillateur externe à Quartz...

    pardon oui je crois que j'ai mairdé là... excuse moi hihi

Discussions similaires

  1. oscillateur quartz
    Par cimbomlu dans le forum Électronique
    Réponses: 2
    Dernier message: 17/05/2009, 20h35
  2. Oscillateur à Quartz
    Par Musti95 dans le forum Électronique
    Réponses: 12
    Dernier message: 07/05/2009, 20h25
  3. Oscillateur quartz
    Par Vaspe dans le forum Électronique
    Réponses: 3
    Dernier message: 06/04/2009, 19h45
  4. oscillateur à quartz
    Par Martin00 dans le forum Électronique
    Réponses: 12
    Dernier message: 24/05/2007, 14h47
  5. quartz ou oscillateur?
    Par menui dans le forum Électronique
    Réponses: 6
    Dernier message: 29/06/2006, 12h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.