Il était une fois...
Je découvre la conversion analogique-numérique. Mon but est de faire un suivi de la décharge d'une batterie à l'aide d'une tension proportionnelle à celle de la batterie en question appliquée à la patte AN4 du PIC (qu'on nommera Ubatt) et d'afficher un % restant à l'utilisateur.
Le système est basique mais devrait être suffisant.
Je déclenche et j'arrête l'échantillonnage manuellement (bit SAMP) (durée d'échantillonnage environ 1 seconde) et j'ai réglé la vitesse d'échantillonnage au plus lent (Tad=Tcy*256). Vu qu'il s'agit d'un phénomène très lent ça doit être laaaargement suffisant.
J'utilise les interruptions et j'ai bien une interruption qui se produit suite à cette séquence.
Dans la routine d'INT, après avoir aussi contrôlé le bit DONE, je récupère le contenu de ADC1BUFx (explications sur le 'x' plus bas).
Quelques détails supplémentaires (voir captures jointes) :
Ref positive = AVdd (3.3V)
Ref négative = AVss (GND)
Ubatt max = environ 1.5V (d'après notre électronicien)
Conversion sur 10 bits
Encore des précisions :
Code : Tout sélectionner
// Qu'est-ce qu'on veut convertir (registre AD1CHS) ?
// C'est SAMPLE 'A' qu'on va exploiter, pour AN4 :
AD1CHSbits.CH0NA = 0b000; // AVss est la ref négative (la même que celle indiquée dans AD1CON2[13](NVCFG0 qui est sur AVss par défaut))
AD1CHSbits.CH0SA = 0b00100; // pour AN4
// rien à faire pour SAMPLE B car pour en tenir compte il faudrait mettre AD1CON2[0](ALTS) à 1, ce qui n'est pas le cas.
puis :
Code : Tout sélectionner
AD1CON2bits.BUFREGEN = 1; // Pour dire qu'on veut ANx dans ADC1BUFx :
Pour ce dernier point j'ai essayé en laissant BUFREGEN à 0 pour lire la conversion dans ADC1BUF0, mais le résultat est le même.
1.5 étant à peu près 45% de 3.3, je m'attendais à 45% de 0b1111111111(1023), soit environ 460.
Dans les faits, la valeur renvoyée par le module A/D est invariable pendant toute la durée de la décharge : 70. D'une part 70 ne correspond à aucune réalité, d'autre part, elle devrait varier pendant la décharge. Je pense qu'il y a quelque-chose que je n'ai pas compris dans le fonctionnement de ce module.
Les captures jointes
Génération de Ubatt:
Branchement de AVdd/AVss :
Branchement de Ubatt sur le AN4 du PIC :
Merci d'avance de votre avis.
