Utilité résistance PICDEM2 PLUS et CAN PIC1845K22
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Utilité résistance PICDEM2 PLUS et CAN PIC1845K22



  1. #1
    denver60

    Utilité résistance PICDEM2 PLUS et CAN PIC1845K22


    ------

    Bonjour,

    Pour développer et tester mes programmes, j'utilise une carte PICDEM2 PLUS et un PIC18F45K22. Comme je dois utiliser des entrées analogiques j'ai fait un bout de programmes pour configurer le CAN du PIC etc et testé l'ensemble via ma carte PICDEM2 PLUS. Car en effet, elle dispose d'un potentiomètre de 5k relié à RA0. Jusque là tout va bien, la conversion est vraiment bonne : pas de problèmes de précision etc... Du coup j'ai voulu testé avec une seconde entrée analogique sur RA1. Et là un problème de précision apparait (ce problème apparait sur les deux entrée RA0 et RA1) et je ne comprends pas trop d'où cela peut venir. Sur RA1 j'ai aussi branché un potar pour simuler mon entrée analogique.

    Alors du coup j'ai regardé le plan électrique de la PICDEM2 PLUS et je m'interroge sur une chose. Nom : PIC.jpg
Affichages : 53
Taille : 50,8 Ko

    A quoi sert la résistance R2 de 470 Ohm sur RA0 ?

    Enfin si quelqu'un à une expérience sur le sujet, je serais ravis de comprendre pourquoi une imprécision apparait lorsque une deuxième entrée interagit avec le CAN du PIC.

    Par avance merci de votre aide.

    -----

  2. #2
    paulfjujo

    Re : Utilité résistance PICDEM2 PLUS et CAN PIC1845K22

    bonjour,

    en config entree ana je ne vois aucune utilite de cette R de 470 ohms,
    mais peut etre comme protection si on configure la pin RA0 ou RA1
    en sortie avec le potar regle au maxi,soit au +5V.

    si il y a interaction entre les voies ana
    voir les timings du programme ...
    il ne devrait pas y en avoir !

  3. #3
    denver60

    Re : Utilité résistance PICDEM2 PLUS et CAN PIC1845K22

    Bonjour,

    @paulfjujo : encore merci pour ces nombreuses réponses et l'aide précieuse que tu m'apportes. D'ailleurs j'ai une question en parlant de timing justement. J'ai réglé mon problème d'e2_interface. Ce problème venait d'une fréquence d'horloge trop faible. Pourtant d'après les calculs que j'avais pu faire je devais être pas mal. Un oscilloscope m'a aidé à résoudre ce problème. J'aimerais que tu confirmes, si possible, la configuration de l'oscillateur de mon PIC.

    Pour moi et d'après ce que j'ai pu lire sur le datasheet, je devrais être configuré avec un oscillateur interne de 8Mhz. Voici mon code :

    Code:
    #define USE_OR_MASKS
    #include <p18f45k22.h>
    #include "adc.h" //Bibliothèque de fonctions pour le CAN 10bits
    
    #pragma config WDTEN = OFF // Watch Dog Timer disabled
    #pragma config FOSC = INTIO67 // Internal Oscillator Block, RA6 & RA7 enabled
    #pragma config DEBUG = ON // Background Debug enabled
    #pragma config LVP = OFF // Low Voltage Programming disabled
    #pragma config MCLRE = INTMCLR // RE3 enabled, MCLR disabled
    
    unsigned int ADC_Result = 0 ; //Variable où se trouvera le résultat de la lecture du CAN sur RA0
    unsigned int ADC_Result1 = 0 ; // RA1
    
    /* Déclarations des arguments de configuration du CAN */
    unsigned char config = 0x00, config2 = 0x00, config3 = 0x00 ;
    
    void main()
    {
        /* Initialisation des registres */
        OSCCON = 0x62 ;     //Oscillateur à 4Mhz
        PORTA = 0x00 ;      //Initialisation du Port A
        PORTB = 0x00 ;      //Initialisation du Port B
        TRISA = 0x01 ;      //Positionne la pin 0 du Port A en entrée
        TRISB = 0x00 ;      //Positionne l'ensemble des pins du Port B en sorties
        ANSELA = 0b00000001 ; //Mise en mode ANA de l'entrée du Port A
    
    
        CloseADC();
    
        /* Configuration du CAN */
        config = ADC_FOSC_2 | ADC_RIGHT_JUST | ADC_2_TAD ;
        config2 = ADC_CH0 | ADC_INT_OFF;
        config3 = ADC_REF_VDD_VDD | ADC_REF_VDD_VSS ;
        OpenADC(config, config2, config3) ;
    
        while(1)
        {
            ConvertADC() ;
            while(BusyADC()) ;
            ADC_Result = (unsigned int) ReadADC() ;
    
            /*ADCON0 = 0x05 ;
    
            ConvertADC() ;
            while(BusyADC()) ;
            ADC_Result1 = (unsigned int) ReadADC() ;
    
            ADCON0 =0x01 ;*/
        }
        CloseADC() ;
    }
    Par avance merci pour ton aide.

  4. #4
    denver60

    Re : Utilité résistance PICDEM2 PLUS et CAN PIC1845K22

    Et j'imagine que Tosc et Tad du CAN ne sont pas choisies au "pifomètre". Quelle est la méthode pour choisir les valeurs de ces constantes ?

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

    Re : Utilité résistance PICDEM2 PLUS et CAN PIC1845K22

    je devrais être configuré avec un oscillateur interne de 8Mhz
    Il est vrai qu'on ne puisse pas ressortir la clock sur RA6 dans ce mode pour le verifier à l'oscillo

    mais c'est verifiable en rajoutant dans ton code , une config timer1 par example de 2 secondes
    et faire imprimer la sortie ADC via UART
    avec l'option time stamp de Vbray terminal..
    Tempo de 2 secondes donne delay effectif de ~2 seconde ..donc 8MHz clock OK
    Code:
    resultat terminal :
    15:38:23.072> 
    15:38:23.172> Test ADC0 avec RS232 at 4800 bauds  Fclock=8Mhz
    15:38:23.222> Init Timer1 boucle en 2 secondes
    15:38:23.272> 00727
    15:38:25.275> 00727
    15:38:27.278> 00727
    15:38:29.281> 00673
    15:38:31.284> 00555
    15:38:33.237> 00417
    15:38:35.240> 00270
    15:38:37.243> 00132
    15:38:39.245> 00005
    15:38:41.248> 00000
    15:38:43.251> 00000
    15:38:45.254> 00074
    15:38:47.257> 00231
    15:38:49.260> 00408
    15:38:51.213> 00596
    15:38:53.215> 00821
    15:38:55.218> 01018
    15:38:57.221> 01023
    15:38:59.224> 01023

    ou avoir un petit programme de reference avec oscillateur Quartz externe de 8MHz ( ou autre valeur connue)
    faisant clignoter une led
    et comparer la frequence de cligotement à l'oscillo.

  7. #6
    denver60

    Re : Utilité résistance PICDEM2 PLUS et CAN PIC1845K22

    Mais là, d'après la config utilisée dans mon programme au post #3, si tu avais dû faire fonctionner ton PIC18F46K22 à 8Mhz, tu aurais fait une config différente ou pas ?

    Et y-a-t-il une méthode pour déterminer le TAD et TOSC d'un CAN ?

  8. #7
    paulfjujo

    Re : Utilité résistance PICDEM2 PLUS et CAN PIC1845K22

    C'est ton programme en post #3 qui m'a servit de test (en rajoutant Uart et timer)
    donc ta config de bits...

    Pour le choix de TAD voir le paragraph 17 et la table 17-1, 17-4
    qui permet de choisir l' ADC clock period (TAD) en fonction de FOsc (ici 8Mhz)

    a 4 Mhz choix mini 1µS avec FOsc/4
    donc pour 8 Mhz ce serait FOsc/8 !
    de plus il faudrait rajouter ACQT correspondant l'acquisition : 4 TAD soit 4µS
    sachant qu'il faut 12 TAD pour effectuer une conversion
    ce qui donne 4+12=16µS !

    le choix de la duree d'acquisition n'est pas bien clair , l'exemple donne ACQT=010 =4 cycles TAD ?
    pour moi 010 -> 2 (pas 4 !)
    je pense qu'il est lié à la resistance interne de la source de signal entrant dans l'ADC
    Rs = 10K maxi
    la duree d'acquisition decroit avec la resistance interne de la source, exemple donné
    Tacq=5µs - 13,5pF * (1K + 700 + Rs) + effet de la temperature = 7.45µS

    et aussi, Attendre au moins 2 TAD soit 2µS avant une nouvelle conversion

    C'est du moins ce que j'ai pu en comprendre .. maybe i am wrong.

  9. #8
    denver60

    Re : Utilité résistance PICDEM2 PLUS et CAN PIC1845K22

    Citation Envoyé par paulfjujo Voir le message
    le choix de la duree d'acquisition n'est pas bien clair , l'exemple donne ACQT=010 =4 cycles TAD ?
    pour moi 010 -> 2 (pas 4 !)
    Si 010 -> 4 voir page 306 du datasheet.

    En tout cas merci pour toutes ces précisions qui me sont d'une grande aide encore une fois. Une autre question m'est venue par rapport à tout ça : Lors de la configuration du CAN est-ce qu'il faut prendre en considération le nombre d'entrées analogiques ?

  10. #9
    denver60

    Re : Utilité résistance PICDEM2 PLUS et CAN PIC1845K22

    Autre question concernant le CAN d'un PIC. Si on a des entrées analogiques ayant différentes échelles (0-5V, 0-10V ou autre...). Est-il alors possible d'avoir plusieurs tensions de référence différentes ? Chacune correspondant alors une échelle.

  11. #10
    paulfjujo

    Re : Utilité résistance PICDEM2 PLUS et CAN PIC1845K22

    hello

    On ne peut pas avoir de VREF+ superieure à VDD (alim)
    pour le 0-10V il faut passer par un pont diviseur par 2 .
    et ensuite traiter par soft pour avoir la correspondance en volts.

Discussions similaires

  1. [debutant] utilité résistance,shema programmateur pic sur rs232
    Par invited3a75eab dans le forum Électronique
    Réponses: 10
    Dernier message: 16/03/2013, 14h59
  2. Réponses: 4
    Dernier message: 13/05/2010, 17h43
  3. Pb de PORTB sur PIC18F4520 et PICDEM2 plus
    Par invite3d87268c dans le forum Électronique
    Réponses: 5
    Dernier message: 02/03/2010, 18h03
  4. utilité de resistance de rappel
    Par sebatlante dans le forum Électronique
    Réponses: 13
    Dernier message: 06/01/2010, 11h32
  5. MCC18 + PICDEM2 + XLCD librairie pourquoi????
    Par Olfox dans le forum Électronique
    Réponses: 5
    Dernier message: 15/08/2009, 18h30
Découvrez nos comparatifs produits sur l'informatique et les technologies.