Questions sur le 16F88 pour vede et les autres !
Répondre à la discussion
Affichage des résultats 1 à 23 sur 23

Questions sur le 16F88 pour vede et les autres !



  1. #1
    Gérard

    Questions sur le 16F88 pour vede et les autres !


    ------

    Bonjour tout le monde.

    Vede, tu parles souvent du 16F88 et j'aurais quelques questions :
    je souhaite utiliser l'horloge interne à 4MHz, comment faut-il configurer OSCCON ?
    %0110????
    si les oscillateurs primaire et secondaire ne sont pas utiliser, comment placer OSTS?
    quelle est l'utilité de IOFS et des 2 bit SCS ?

    Quel est le rôle de OSCTUNE, comment vérifier la fréquence?

    Merci à tous pour vos réponses.

    Bon WE.

    -----

  2. #2
    invite092cb13c

    Re : Questions sur le 16F88 pour vede et les autres !

    Bonjour
    Pour comprendre comment utiliser l'oscillateur interne du 16F88, tu peux charger le fichier maquette que j'ai ecrit pour ce pic, tu le trouves sur le site de Bigonoff ou sur mon site: http://gedonet.free.fr/aide_pic/aide_pic.htm .

    Pour 4MHz, il faut choisir, dans la config1, soit _INTRC_CLKOUT, soit _INTRC_IO selon que tu as besoin ou non de RA6 comme I/O.

    Ensuite dans le programme, les bits 6-4 de OSCCON (IRCF<2:0>) doivent valoir 110 et les bits 1-0 de OSCCON (SCS<1:0>) doivent être à 10.

    Pour OSCTUNE, c'est un registre qui permet de corriger (+/-12.5%) la frequence de l'oscillateur interne qui est un RC donc pas tres precis. Par defaut il n'y a pas de correction, OSCTUNE= B'00000000' tu peux accelerer l'oscillateur en modifiant OSCTUNE de 00000001 à 00011111 ou le ralentir en modifiant OSCTUNE de 00111111 à 0100000.

    OSTS ne peut pas être modifier il est "read only" il te sert à savoir sur quel oscillateur tu es, soit primaire externe (HS,XT et LP), soit sur l'oscillateur interne ou l'oscillateur externe secondaire de T1OSC. En effet ce pic peux en cours de programme passer d'un oscillateur à l'autre et même changer la vitesse de l'oscillateur interne en cours de programme. Ces modifications prennent un certain nombre de cycle aussi il y a un flag qui indique que la vitesse est stabilisée, c'est IOFS, mais il faut valider _FCMEN_ON et _IESO_ON de _CONFIG2 pour utiliser c'est possibilité.
    Tu vois pourquoi Vede recommande souvent le PIC16F88, il est plein de ressouce que l'on est pas obligé d'utiliser en permanence.
    Gilles

  3. #3
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    Salut Gerard,

    une description complète ici, avec experimentations autour d'OSCTUNE :

    http://pagesperso-orange.fr/fabrice....ne%2016F88.htm

    et moi j'init. comme ça :

    OSCCON=%01100000 ' choix oscillateur interne, à 4Mhz
    while testbit(OSCCON,IOFS)=0 wend ' attente stabilisation oscillateur

    attente que IOFS passe à 1, cad que l'oscillateur soit (re-)stabilisé...

    et pour mesurer la fréquence, il faut un fréquencemétre ou un oscillo...

    bon'dimanche,
    vede
    ;O]

  4. #4
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    ps : et avec les fusibles :

    _IESO_OFF // Désactive la possibilité de changer d'oscillateur depuis le programme

    et

    _FCMEN_ON // Active le flag de stabilité

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

    Re : Questions sur le 16F88 pour vede et les autres !

    Merci pour ces précisions, ma lanterne est éclairée.

  7. #6
    Gérard

    Re : Questions sur le 16F88 pour vede et les autres !

    J'ai encore une question .

    Avec le registre CVRCON, peut-on programmer RA2 en sortie ana ?
    Je voudrais utiliser Vref- dans une application et pour éviter l'utilisation d'une référence de tension (TL431), j'ai pensé à cette façon de faire.

    Est-ce possible de faire cela ? Faut-il mettre les bit <CME:CM0> de CMCON à 010 ?

    Merci pour vos tuyaux.

  8. #7
    invite092cb13c

    Re : Questions sur le 16F88 pour vede et les autres !

    Citation Envoyé par Gérard Voir le message
    J'ai encore une question .

    Avec le registre CVRCON, peut-on programmer RA2 en sortie ana ?
    Bonjour
    Oui, c'est le bit CVROE qui definit si on trouve Vref sur RA2
    Je voudrais utiliser Vref- dans une application et pour éviter l'utilisation d'une référence de tension (TL431), j'ai pensé à cette façon de faire.

    Est-ce possible de faire cela ? Faut-il mettre les bit <CME:CM0> de CMCON à 010 ?
    Ton idée me semble impossible car Vref sort sur RA2/AN2/Vref- tu ne peux pas, à mon avis, avoir cette pin à la fois en sortie (Vref) et en entrée (Vref-). Tu peux toujours essayer ( tiens nous au courant du resultat)
    Un autre detail, si tu as fait les calculs avec la(les) formule(s), tu constates que la plage de tension est tres reduite et que toutes les tensions sont fonctions de la tension d'alim, ce n'est pas le cas avec une zener programmable comme la TL431.
    Pour la sortie Vref je ne pense pas que CMCON entre en jeu, le datasheet cite le cas de <CME:CM0>=010 pour l'utilisation avec les comparateurs.
    Je m'excuse pour le manque de precision sur le module Vref, je l'ai un peut etudié pour ecrire les fichiers maquettes des 16F628, 88 mais je ne l'ai pas utilisé d'ou mon manque d'experience.
    Gilles

  9. #8
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    Bonsoir,

    j'ai jamais essayé, mais dans ce document (page 31)
    http://daniel.menesplier.free.fr/Doc/PIC%2016F88.pdf
    il est expliqué que c'est possible d'utiliser RA2 en sortie
    analogique, avec explications et exemples de tensions...
    après l'utiliser simultanément en Vref- c'est pas évident
    que ça fonctionne... à tester...

    vede
    ;O]

  10. #9
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    Bonjour,

    quand j'ai écris :
    après l'utiliser simultanément en Vref- c'est pas évident
    que ça fonctionne... à tester...

    je "parlais" de la Vref- de l'ADC...

    sinon

    je l'utilise jamais, mais peut-être, utiliser le "module" comparateur
    au lieu de l'ADC pourrait être une solution...
    (comparateurs détaillés avant la page 31 du doc pré-cité)

    bonn'journée à tous,
    vede
    ;O]

    ps : complément d'info : l'ADC du 16F88
    http://pagesperso-orange.fr/fabrice..../ADC_16F88.htm

  11. #10
    Gérard

    Re : Questions sur le 16F88 pour vede et les autres !

    Merci à vous 2 pour vos réflexions.

    Comme sur la figure 14-1 page 128 de la datasheet la sortie va à RA2 (si CVROE = 1) et sur la figure 12-1 page 116 Vref- est aussi relié à RA2, je me suis dit que je pourrais faire d'une pierre 2 coups et éviter l'utilisation d'un TL431 pour avoir une tension Vref-.

  12. #11
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    Bonsoir,

    oui, d'après les 2 diagrammes VRef- et CVRef sont bien inter-connectés sur RA2...
    donc ça devrait fonctionner... si le "module comparateur référence de tension"
    reste opérationnel avec RA2 configuré en entrée analogique... à tester...

    vede
    ;O]

  13. #12
    invite092cb13c

    Re : Questions sur le 16F88 pour vede et les autres !

    Bonjour vede
    En lisant le document que tu passes dans le message #8, je lis:
    Code:
    Bit 0 et 1 : SCS0 et SCS1 = Oscillator Mode.
    Ces 2 bits doivent être à "0" pour que le mode oscillateur soit définit
     par les 3 bits du mot de configuration
    J'ai constaté que tu utilisais, pour l'oscillateur interne, la même methode ecrire 00 pour les bits 0-1 de OSCCON, peux tu me confirmer que cela fonctionne car ce n'est pas ce qui est prevu par le datasheet, il est ecrit:
    00 = Oscillator mode defined by FOSC<2:0>
    et quand on regarde sur la figure 4-6 page 42 on voit sur le MUX à droite piloté par SCS 0-1 il y a 3 possibilitées, la premiere "LP, XT, HS, RC, EC" (pas INTRC), la seconde pour l'oscillateur secondaire sur T1OSCO et la troisieme "Internal Oscillator" qui pour moi est selectionnée par 10 dans SCS 0-1, le datasheet donne "10 = Internal RC is used for system clock".
    Gilles

  14. #13
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    Bonjour Gedonet,

    oui ça fonctionne... dans MikroBasic...
    avec le fusible oscillateur positionné sur _INTRC_IO...
    cad le mode est définit dans FOSC<2:0>...
    mais moi aussi il faut que je me re-penche sur la datasheet à ce niveau...
    parce que ça fonctionne sans que je comprenne tout...

    sinon, je viens de tester l'idée de Gerard (cad utiliser
    la CVRef comme VRef- de l'ADC) et ça paraît fonctionner...

    mon code de test,
    qui allume une led quand la tension sur RA0 dépasse 1,4V :
    Code:
    program CVR_000
    
    main:
    OSCCON = %1100000                 ' choix oscillateur interne, à 4Mhz
    while testbit(OSCCON,IOFS)=0 wend ' attente stabilisation oscillateur
    
    ANSEL  = %00000101                ' ports A0 et A2 analogiques
    ADCON0 = %00000001                ' active ADC sur A0
    ADCON1 = %00010000                ' VRef- sur RA2, VRef+ = VDD
    TrisA  = %00000101                ' ports A0 et A2 entrées
    TrisB  = %00000000                ' met tous les ports B en sorties
    PortA  = %00000000                ' met tous les ports A à 0
    PortB  = %00000000                ' met tous les ports B à 0
    CVRCON = %11000000                ' active CVRef = 1,25V sur RA2
    
    while true
        ADCON0.GO=1                   ' adc conversion
        delay_ms(100)
        PortB.3=0
        if ADRESH>1 then PortB.3=1 end if ' allume led si ADC > 1,4V
        delay_ms(100)
    wend
    
    end.
    vede
    ;O]

  15. #14
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    ps : en fait... avec le temps... j'ai quand même fini par
    trouver un seul gros défaut au 16F88... c'est son simple
    SSP... au lieu d'un MSSP... ce qui limite son utilisation en Maître I2C...
    c'est déjà un vieux pic ;O]

  16. #15
    invite3a1051d7

    Re : Questions sur le 16F88 pour vede et les autres !

    bonjour,
    je cite
    16F88 ..SSP... au lieu d'un MSSP... ce qui limite son utilisation en Maître I2C...
    Vede connais tu run pic 16Fxxx qui possede les fonctions du 16F88 et ajoute cette fonction (MSSP)
    cordialement
    Alain

  17. #16
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    Bonjour Alain,

    dans la série 16Fxxxx 18 broches,
    je ne vois que les "nouveaux" 16F1826 à 16F1829,
    ces 16F182x intégrent:
    jusqu'à 2 MSSP,
    un oscillateur interne 32Mhz ,
    des modules CCP ET ECCP,
    plus de 3 Timers,
    12 ADC,
    etc... etc...
    et peuvent s'alimenter en 2VDC...
    ;O]

    vede
    ;O]

  18. #17
    invite092cb13c

    Re : Questions sur le 16F88 pour vede et les autres !

    Bonjour
    On peut se passer de MSSP, en utilisant une routine I2C maitre soft, il y en a une sur mon site ( http://gedonet.free.fr/aide_pic/aide_pic.htm ), je l'ai utilisé pour remplir une 24LC512 sur un data logger avec un 16F676, je l'ai adapté à partir d'une routine originale de Pierre COL, on peut même gerer du multi maitre.
    Pour l'oscillateur, il faudrait regarder si l'ide de MikroBasic ne rectifie pas automatiquement la valeur de OSCCON en regardant la valeur dans le fichier *.asm.
    Pour le CVRef et le VRef- c'est bon à savoir, je ferrai des tests, mais la semaine prochaine, j'ai, pour le momment, un avion en chantier (un drone Predator) sur ma table de travail.
    Gilles

  19. #18
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    Bonsoir,

    pour I2C Soft, j'en ai fait une aussi ;O]
    http://vede.free.fr/electronique/16f88/vedeplayer/
    (là utilisée pour lire dans une 24LC256,
    mais aussi ensuite utilisée pour communiquer avec une DS1307...)...

    je vais regarder en détails pour OSCON, je vous tiens au jus,
    bon'avion,
    vede
    ;O]

  20. #19
    Gérard

    Re : Questions sur le 16F88 pour vede et les autres !

    Citation Envoyé par gedonet Voir le message
    Bonjour vede
    En lisant le document que tu passes dans le message #8, je lis:
    Code:
    Bit 0 et 1 : SCS0 et SCS1 = Oscillator Mode.
    Ces 2 bits doivent être à "0" pour que le mode oscillateur soit définit
     par les 3 bits du mot de configuration
    J'ai constaté que tu utilisais, pour l'oscillateur interne, la même methode ecrire 00 pour les bits 0-1 de OSCCON, peux tu me confirmer que cela fonctionne car ce n'est pas ce qui est prevu par le datasheet, il est ecrit:
    00 = Oscillator mode defined by FOSC<2:0>
    et quand on regarde sur la figure 4-6 page 42 on voit sur le MUX à droite piloté par SCS 0-1 il y a 3 possibilitées, la premiere "LP, XT, HS, RC, EC" (pas INTRC), la seconde pour l'oscillateur secondaire sur T1OSCO et la troisieme "Internal Oscillator" qui pour moi est selectionnée par 10 dans SCS 0-1, le datasheet donne "10 = Internal RC is used for system clock".
    Gilles

    Je pense que tu as raison, les bit SCS<1:0> doivent être à 10 pour Internal RC. Je ne l'ai pas testé mais la doc est assez claire.

  21. #20
    Gérard

    Re : Questions sur le 16F88 pour vede et les autres !

    Citation Envoyé par vede Voir le message
    Bonjour Gedonet,

    oui ça fonctionne... dans MikroBasic...
    avec le fusible oscillateur positionné sur _INTRC_IO...
    cad le mode est définit dans FOSC<2:0>...
    mais moi aussi il faut que je me re-penche sur la datasheet à ce niveau...
    parce que ça fonctionne sans que je comprenne tout...

    sinon, je viens de tester l'idée de Gerard (cad utiliser
    la CVRef comme VRef- de l'ADC) et ça paraît fonctionner...

    mon code de test,
    qui allume une led quand la tension sur RA0 dépasse 1,4V :
    Code:
    program CVR_000
    
    main:
    OSCCON = %1100000                 ' choix oscillateur interne, à 4Mhz
    while testbit(OSCCON,IOFS)=0 wend ' attente stabilisation oscillateur
    
    ANSEL  = %00000101                ' ports A0 et A2 analogiques
    ADCON0 = %00000001                ' active ADC sur A0
    ADCON1 = %00010000                ' VRef- sur RA2, VRef+ = VDD
    TrisA  = %00000101                ' ports A0 et A2 entrées
    TrisB  = %00000000                ' met tous les ports B en sorties
    PortA  = %00000000                ' met tous les ports A à 0
    PortB  = %00000000                ' met tous les ports B à 0
    CVRCON = %11000000                ' active CVRef = 1,25V sur RA2
    
    while true
        ADCON0.GO=1                   ' adc conversion
        delay_ms(100)
        PortB.3=0
        if ADRESH>1 then PortB.3=1 end if ' allume led si ADC > 1,4V
        delay_ms(100)
    wend
    
    end.
    vede
    ;O]
    C'est cool si ça marche. Je le testerai.
    L'idée est d'avoir une référence sans circuit supplémentaire.
    La conversion se fera entre VRef- et VDD. Les valeurs exactes seront mesurées au multimètre et entrées comme constantes dans le programme.

    Encore merci à tous pour vos idées et réflexions sur ce problème.

  22. #21
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    Bonsoir à tous,

    bon, pour info, chez moi ça fonctionne depuis toujours
    avec SCS<1:0> = 00, cad choix osc. configuré dans FOSC<2:0>...
    (xxxxx100 pour _INTRC_IO, chapitre 15-1 (Spécial Features > Configuration bits)...

    >L'idée est d'avoir une référence sans circuit supplémentaire.
    j'avais compris ;O] et ça paraît fonctionner...

    vede
    ;O]

  23. #22
    invite7a49d0d5

    Re : Questions sur le 16F88 pour vede et les autres !

    ps :

    ça donne

    CONFIGURATION WORD 1 REGISTER (ADDRESS 2007h)
    =
    0b0011111100011000

    puis au début du programme

    OSCON= 0b01100000

  24. #23
    invite7a49d0d5

    Cool Re : Questions sur le 16F88 pour vede et les autres !

    correction, merci d'avance les modos de fusionner

    (xxxxx100 pour _INTRC_IO, chapitre 15-1 (Spécial Features > Configuration bits)...

    plutôt

    0bxxxxxxxxxxx1xx00 pour _INTRC_IO

Discussions similaires

  1. Réponses: 14
    Dernier message: 24/04/2009, 18h23
  2. Sondage sur le maquillage bio réservée au filles...(désolée pour les autres!)
    Par invite259210d1 dans le forum TPE / TIPE et autres travaux
    Réponses: 11
    Dernier message: 12/02/2008, 18h39
  3. Autres questions sur le double vitrage.
    Par invitea548bc17 dans le forum Physique
    Réponses: 8
    Dernier message: 21/09/2007, 13h06
  4. questions sur les intoxications (et autres joyeusetés)
    Par invitecafb1ba9 dans le forum Chimie
    Réponses: 2
    Dernier message: 01/05/2006, 21h18
  5. Les questions posées a l'EFREI ( ou les autres écoles d'ingénieur )
    Par inviteeb5baf1d dans le forum Orientation après le BAC
    Réponses: 4
    Dernier message: 15/02/2006, 22h20
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...