Bonjour,
J'utilise le PIC24EP512GU810 et j'ai besoin d'utiliser l'ADC interne : ADC1, 1 voie, 10-bit, 1 Mech/s, sans DMA.
J'ai quelques soucis de compréhension de la datasheet et du Family Reference Manual, qui semblent comporter des erreurs et contradictoires sur certains points.
Je me trouve dans le cas où :
- ADC 10 bit, résultat entier non signé, conversion automatique (horloge système) :
AD12B=0 (10-bit)
FORM=0b00 (entier non signé)
SSRC=0b111, SSRCG=0 : conversion automatique
ASAM=1 : conversion automatique
AD1CON1 = 0xA0E4.
- Mesure entre Vref+ et AVss, seulement CH0, interruption tous les 16 échantillons :
VCFG=0b001 : Vref+/AVss
CSCNA=1 : Scan CH0+
CHPS=0b00 : Conversion de CH0 seulement
SMPI=0b01111 : Interruption tous les 16 échantillons (ADDMAEN=0)
BUFM=0 : Conversion depuis BUF-0 à BUF-F
ALTS=0 : Aucune idée de ce que sont Sample A et B...
AD1CON2 = 0x283C.
- Conversion périodique à une fréquence connue, dérivée de l'horloge système (Fp) 70MHz soit division par 70 pour obtenir 1MHz :
ADRC=0 : Horloge dérivée de l'horloge système
SAMC=0b00000 : SSRC et SSRCG (AD1CON1) ne remplissent pas la condition
ADCS=70 : Valeur du diviseur pour obtenir 1MHz
AD1CON3 = 0x0046.
- je n'utilise pas la DMA, c'est à dire :
AD1CON4 = 0x0000 (donc ADDMAEN=0).
Je sais que le plus sensé serait d'utiliser la DMA, mais je ne l'ai encore jamais fait, et par faute de temps je ne veux pas m'y aventurer maintenant. Donc pour ne pas saturer le processeur avec les requêtes d'interruptions, il me semble possible d'utiliser l'interruption seulement tous les 16 échantillons, afin de remplir les 16 buffers de stockage (BUF-0 à BUF-F).
Seulement il y a une incohérence entre la datasheet (SMPI p.421) et le reference manual (SMPI p.10).
De plus je ne comprends ni à quoi correspondent Sample A et Sample B (AD1CON2 bit 0 - ALTS p.420) ni la phrase "ADC is currently filling one half of the buffer, user application should access the other half of the buffer" (AD1CON2 Bit 7 - BUFS p.419).
Si quelqu'un pouvait m'éclairer sur ces quelques points ce serait vraiment génial!
-----