améliorer la précision de conversion ADC pour PIC18
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

améliorer la précision de conversion ADC pour PIC18



  1. #1
    invite51e48a05

    améliorer la précision de conversion ADC pour PIC18


    ------

    Hello,

    Petite question pour les AS du PIC :
    j'effectue actuellement des tests de lecture d'un capteur de température analogique via une entrée ADC de PIC18.

    Mon pic est alimenté par pile (2XAA) + boost + stabilisation pour fournir une tension de 3.3V,
    Mes piles délivrent un courant instable (+- 30mV) car sollicitées par d'autres composants, mais la présence de capas céramiques 22µF avant et après le circuit de boost + 100nF à l'entrée du PIC permettent de délivrer le 3.3 avec une variation maximale de 5mV.

    C'est bien, mais pas suffisant, car le capteur de température délivre son information avec un granularité de 11mV/°C et que la formule permettant le rapport tension/température rend le problème exponentiel. Bref, cela peut aboutir à des erreurs de mesures allant jusque 3°C (je suis pas content , 0.5°C me semblerait être un seuil d'erreur plus acceptable)

    Le souci n'est pas au niveau du capteur, bien qu'il soit alimenté par la même source de courant, celui-ci délivre une tension parfaitement stable. C'est bien le PIC, et pour cause il est programmé pour utiliser Vdd et Vss comme référence pour son ADC!

    Comment feriez-vous?
    - Travailler sur les capas afin de stabiliser d'avantage (si possible?) le circuit d'alimentation?
    - Ajouter un LDO à la sortie du boost (pas envie, car il va consommer mes piles, ce saligaud)
    - Utiliser une autre référence plus fiable pour l'ADC (laquelle?)
    - Utiliser des fonctions (que je connais pas) du PIC18 pour programmer l'attente de la stabilisation de Vdd avant l'échantillonnage?
    ...

    Merci pour vos avis et portez vous bien!

    -----

  2. #2
    mag1

    Re : améliorer la précision de conversion ADC pour PIC18

    Bonjour,

    Je ne connais rien aux PICs, mais je sais que les ADC des picaxes peuvent être calibrés par une référence interne par ex 1,024 volt

    Ce qui est possible sur une daube de picaxe ne devrait pas poser de problème sur un PIC et les cadors des PIC vont régler ce problème en deux coups de cuillère à pot.

    Une résolution de 0,1 °C avec un µP est possible.

    MM

  3. #3
    RISC

    Re : améliorer la précision de conversion ADC pour PIC18

    Salut,

    Quel capteur de température utilises-tu ?
    Si ta tension n'est pas clean, j'utiliserai un capteur qui se connecte en I2C et qui donne directement la température comme le MCP9808.

    a+

  4. #4
    invite51e48a05

    Re : améliorer la précision de conversion ADC pour PIC18

    Bonjour Risc, Ravi de te lire à nouveau!

    J'utilise ici un TMP20 de Texas instruments, mais cela pourrait être autre chose... ta proposition I2C est certainement la solution la plus claire et immédiate mais je souhaiterais tenter d'achever mes essais en analogique.

    Penses-tu qu'il faille absolument travailler sur la stabilisation de l'alimentation ou bien existe t'il d'autres moyens du coté du PIC? (à mon avis si il y en avait, tu me l'aurais déjà dit )

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

    Re : améliorer la précision de conversion ADC pour PIC18

    si tu rajoutes encore une capa de 1mF et une de 100nF pour stabiliser, ca donne quelque chose de positif ?

  7. #6
    RISC

    Re : améliorer la précision de conversion ADC pour PIC18

    Salut,
    Citation Envoyé par Eki27 Voir le message
    Penses-tu qu'il faille absolument travailler sur la stabilisation de l'alimentation ou bien existe t'il d'autres moyens du coté du PIC? (à mon avis si il y en avait, tu me l'aurais déjà dit )
    Quel PIC18 utilises-tu ?
    Certains PIC16 et PIC18 récents possèdent une référence de tension interne ( FVR = Fixed Voltage Reference ). Cette référence interne permet effectivement d'avoir une tension stable quelque soit la varaition sur Vdd

    a+

  8. #7
    invite51e48a05

    Re : améliorer la précision de conversion ADC pour PIC18

    Citation Envoyé par terriblement Voir le message
    si tu rajoutes encore une capa de 1mF et une de 100nF pour stabiliser, ca donne quelque chose de positif ?
    pas certain que cela apporte quelque chose, en attachement le circuit shématique de l'alimentation du pic, si vous avez des idées pour l'améliorer la stabilité de V2 je suis preneur!


    Citation Envoyé par RISC Voir le message
    Quel PIC18 utilises-tu ?
    Certains PIC16 et PIC18 récents possèdent une référence de tension interne ( FVR = Fixed Voltage Reference ). Cette référence interne permet effectivement d'avoir une tension stable quelque soit la varaition sur Vdd
    le PIC est le 18LF26K22, je vois effectivement les possibilités dans le SFR VREFCON0 mais il ne propose que 3 possibilités : 1.024 / 2.048 / 4.096. Donc je pourrai malheureusement pas exploiter cette fonction
    Images attachées Images attachées  

  9. #8
    RISC

    Re : améliorer la précision de conversion ADC pour PIC18

    Salut,

    2 possibilités pour améliorer tes conversions :

    1/ Solution logicielle
    Si ton système ne nécessite pas un taux d'échantillonnage trop élevé, essayes de faire du filtrage (sur 8 ou sur 16 échantillons)

    2/ Solution matérielle
    Pour éviter le bruit sur l'alimentation numérique, il est possible de fournir une tension de référence Vref+ différente de Vdd.
    Si tu as assez de broches, tu filtres Vdd et tu entres la tension filtrée sur Vref+ pour le convertisseur A/N

    a+

  10. #9
    invite51e48a05

    Re : améliorer la précision de conversion ADC pour PIC18

    Merci Risc pour ces nouvelles idées!

    Cependant, je me questionne maintenant un peu différement face à mes soucis...
    Je constate que le capteur produit une tension de lecture stable et de valeur correcte en rapport avec la température.
    j'ai d'autres entrées connectées sur d'autres broches qui mesurent une valeur résistive qui est parfaitement évaluée par l'ADC (et configuré de la même manière)
    Je pense donc que:
    - soit j'ai du bruit sur le signal du capteur (que j'ai tenté de filtrer en Rc sans voir d'amélioration significative)
    - soit le capteur ne produit pas suffisement d'énergie pour charger l'ADC correctement (plus probable)

    j'ai 2 choix :
    - hardware, ajouter un AOP en suiveur pour permettre à l'ADC de charger toute l'énergie qu'il désire...
    - software, modifier la config de l'ADC lorsqu'il échantillone les entrées dédiées au capteur de température (préféré)

    voilà la config de mon ADC actuel :

    ADCON1bits.NVCFG = 0; // negative reference voltage is Vss
    ADCON1bits.PVCFG = 0; // positive reference voltage is Vdd
    ADCON2bits.ADFM = 1; // conversion result right justified
    ADCON2bits.ACQT = 4; // no acquisition time fixed (using GO/DONE to detect the conversion progress)
    ADCON2bits.ADCS = 2; // acquisition time use Fosc/32
    ANSELAbits.ANSA1 = 1; // digital input buffer of RA1/AN1/input 1 is disabled
    ANSELBbits.ANSB0 = 1; // digital input buffer of RB0/AN11/internalTemp is disabled
    CM1CON0 = 0b00000000;
    CM2CON0 = 0x00000000;

    et la fonction pour lire :

    int ADCRead(unsigned char inputChannel)
    {
    int adc_result;
    ADCON0bits.CHS = inputChannel;
    ADCON0bits.ADON = 1;
    ADCON0bits.GO = 1; // start conversion
    while (ADCON0bits.GO == 1); // wait for it to complete
    adc_result = (((unsigned int)ADRESH<<8)|ADRESL)<<4; // 14 bit result
    ADCON0bits.ADON = 0;
    return(adc_result);
    }

    Penses-tu que l'on puisse travailler sur la config de l'ADC pour s'adapter à la (probable) situation de faible source d'énergie?
    N'hésite pas à me frapper si tu penses que je délire!

    a+

  11. #10
    RISC

    Re : améliorer la précision de conversion ADC pour PIC18

    Salut,

    Les capteurs de température ne posent généralement aucun PB. JE ne pense pas que tu puisse faire quoi que ce soit, si ce n'est de séparer ton Vdd digital (sortie du boost) du Vdd analogique.
    Je reste persuadé que ton alimentation génère le bruit.
    Peux-tu faire voir le schéma de la partie analogique de ton système ?

    a+

  12. #11
    invite51e48a05

    Re : améliorer la précision de conversion ADC pour PIC18

    La partie analogique tu as pu la voir dans le premier schéma de ce post, bien tendu il manque uniquement le capteur qui est alimenté par la même source (sortie du boost) et sa sortie qui va directement à une des broches analogiques du pic.

    Je ne dispose pas d'oscillo pour constater le bruit sur l'alim mais je vais suivre ton sentiment et remplacer mon circuit boost par un MAX1795 qui devrait avoir un rendement nettement supérieur... je te tiens informé ...

    Merci encore!

Discussions similaires

  1. [C/PIC18] - Warning [2054] suspicious pointer conversion
    Par invite3c35244f dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 17/05/2011, 16h45
  2. constantes fondamentales : améliorer la précision ?
    Par xxxxxxxx dans le forum Physique
    Réponses: 55
    Dernier message: 13/06/2010, 18h26
  3. pic18f2320 :conversion adc incomplete
    Par invitee1bdeaaa dans le forum Électronique
    Réponses: 0
    Dernier message: 16/02/2010, 22h51
  4. Compilateurs C++ pour PIC12/16 et PIC18
    Par RISC dans le forum Électronique
    Réponses: 3
    Dernier message: 07/02/2010, 22h48
  5. PINGUINO pour PIC18 USB ?
    Par RISC dans le forum Électronique
    Réponses: 0
    Dernier message: 17/10/2009, 22h03
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...