Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
échec de lecture d'une entrée analogique PIC MikroC
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
le modele de capteur correspond bien au modele unibody ?
Table 2.Pin descriptions — Unibody package
Symbol Pin Description
VOUT 1 Output voltage
GND 2 Ground
VCC 3 Voltage supply
DNC 4 Do not connect to external circuitry or ground
DNC 5 Do not connect to external circuitry or ground
DNC 6 Do not connect to external circuitry or ground
car l'autre modele a sa sortie sur pin 4
Table 3.Pin descriptions — Small outline package
Symbol Pin Description
DNC 1 Do no connect to external circuitry or ground
VCC 2 Voltage supply
GND 3 Ground
VOUT 4 Output voltage
DNC 5 Do not connect to external circuitry or ground
DNC 6 Do not connect to external circuitry or ground
DNC 7 Do not connect to external circuitry or ground
sinon
faire un essai avec RA0 connectée au +VCC (5V) via
Rx (potar monté en rhéostat) variant de 0 à 50K
et relever les valeurs données par ADC
lorsque la mesure affichée correspond à la moitié ,soit 2,5V
on a alors l'impédance d'entre de l'ADC ( en regime DC)
je pense qu'elle est de l'ordre de 10K, à verifie rpar la manip ci-dessus..
meme si celle-ci trop basse , le capteur devrait pouvoir délivrer une tension ..
essayer avec le nominal 250KPa.
tout à fait d'accord avec Venom .... c'est pourquoi je pratique uniquement dans le monde réel ..
le modele de capteur correspond bien au modele unibody ?
Table 2.Pin descriptions — Unibody package
Symbol Pin Description
VOUT 1 Output voltage
GND 2 Ground
VCC 3 Voltage supply
DNC 4 Do not connect to external circuitry or ground
DNC 5 Do not connect to external circuitry or ground
DNC 6 Do not connect to external circuitry or ground
car l'autre modele a sa sortie sur pin 4
Table 3.Pin descriptions — Small outline package
Symbol Pin Description
DNC 1 Do no connect to external circuitry or ground
VCC 2 Voltage supply
GND 3 Ground
VOUT 4 Output voltage
DNC 5 Do not connect to external circuitry or ground
DNC 6 Do not connect to external circuitry or ground
DNC 7 Do not connect to external circuitry or ground
sinon
faire un essai avec RA0 connectée au +VCC (5V) via
Rx (potar monté en rhéostat) variant de 0 à 50K
et relever les valeurs données par ADC
lorsque la mesure affichée correspond à la moitié ,soit 2,5V
on a alors l'impédance d'entre de l'ADC ( en regime DC)
je pense qu'elle est de l'ordre de 10K, à verifie rpar la manip ci-dessus..
meme si celle-ci trop basse , le capteur devrait pouvoir délivrer une tension ..
essayer avec le nominal 250KPa.
tout à fait d'accord avec Venom .... c'est pourquoi je pratique uniquement dans le monde réel ..
échec de lecture d'une entrée analogique PIC MikroC
échec de lecture d'une entrée analogique PIC MikroC
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
je viens de tester (en reel) l'impedance d'entree ADC RA0 sur un 18F26K22
injection tension issue du curseur potar 4.7K entre +Vcc 5V et Gnd 0V
en direct ... curseur potar -> Entree EA0
minima potar 24 points
Duree Conv. ADC_Read(0) = 68 µS j= 17 EA0= 00024 soit 117.1 mV
maxima potar 1012 points
Duree Conv. ADC_Read(0) = 68 µS j= 226 EA0= 01012 soit 4938.6 mV
avec curseur ......R=100K --- Entree EA0
minima potar 24 points
Duree Conv. ADC_Read(0) = 68 µS j= 17 EA0= 00024 soit 117.1 mV
maxima potar 1011 points
Duree Conv. ADC_Read(0) = 68 µS j= 79 EA0= 01011 soit 4933.7 mV
conclusion :
Impedance entree ADC (en DC) > 100Kohms, dans ces conditions de mesure ( FOSC=16MHz cycle de 0.25µS ,TAD TACQ déja definis dans MikroC ADC lib )
(et au rytme de 1 mesure par seconde)
l'ADC ne devrait pas ecrouler la tension de sortie du capteur .
Nota : Attention à laisser un temps minimum entre 2 mesures ADC successives !
dans cet exemple avec usage lib mikroC , duree acquisition ~68µS !
mais sans l'usage de la lib MikroC... 8µS
avec code ci-dessous
idem avec ou sans R serie de 100K ohms
duree acquisition 8µS
pot au minima :
Duree Conv.simili ASM = 8 µS j= 2 EA0= 00026 soit 126.9 mV
pot au maxima
Duree Conv.simili ASM = 8 µS j= 27 EA0= 01011 soit 4933.7 mV
injection tension issue du curseur potar 4.7K entre +Vcc 5V et Gnd 0V
en direct ... curseur potar -> Entree EA0
minima potar 24 points
Duree Conv. ADC_Read(0) = 68 µS j= 17 EA0= 00024 soit 117.1 mV
maxima potar 1012 points
Duree Conv. ADC_Read(0) = 68 µS j= 226 EA0= 01012 soit 4938.6 mV
avec curseur ......R=100K --- Entree EA0
minima potar 24 points
Duree Conv. ADC_Read(0) = 68 µS j= 17 EA0= 00024 soit 117.1 mV
maxima potar 1011 points
Duree Conv. ADC_Read(0) = 68 µS j= 79 EA0= 01011 soit 4933.7 mV
Code : Tout sélectionner
PORTA = 0;
ANSELA=0;
ANSELA.ANSA0=1;
ADC_Init(); // par defaut gamme 0V ..VCC
// boucle principale
L1=0;L2=0;
Start_Timer3(); // init timer3 clock= 2µS avec FOSC=16MHz
EA0=ADC_Read(0);
TMR3ON_bit=0;
L2= TMR3L;
L1= (long)TMR3H <<8;
L1=L1+L2;
if (TMR3IF_bit==1)L1=L1 +65536L; // si debordement Timer3
L1=L1<<1; // multiplie par 2 , car 1 count timer3 => 2µS
CPrint (" Duree Conv. ADC_Read(0) = ");
LongWordToStr(L1,CRam1);
Print(CRam1);
CPrint( " µS ");
f1=(float)EA0 * 4.88 ; // si usage de +VREF 4,096V => EA0<<2
txt=&TEXTE[0];
sprintf(txt,"j= %5d EA0= %05d soit %5.1f mV ",j,EA0,f1);
Print(txt);
CRLF1();
Delay_ms(1000);
conclusion :
Impedance entree ADC (en DC) > 100Kohms, dans ces conditions de mesure ( FOSC=16MHz cycle de 0.25µS ,TAD TACQ déja definis dans MikroC ADC lib )
(et au rytme de 1 mesure par seconde)
l'ADC ne devrait pas ecrouler la tension de sortie du capteur .
Nota : Attention à laisser un temps minimum entre 2 mesures ADC successives !
dans cet exemple avec usage lib mikroC , duree acquisition ~68µS !
mais sans l'usage de la lib MikroC... 8µS
avec code ci-dessous
Code : Tout sélectionner
void My_Init_ADC()
{
//config lecture ADC 10 bits 18F26K22 DS41412F-page 304
ADCON0=0; // clean register
ADCON0.ADON=1; // ADC enabled
//bit 6-2 CHS<4:0>: Analog Channel Select bits
// select RA0 = analog input
ADCON0.CHS4=0;
ADCON0.CHS3=0;
ADCON0.CHS2=0;
ADCON0.CHS1=0;
ADCON0.CHS0=0; // 0= RA0 selectionné 1 =RA1 selectionné
ADCON1.TRIGSEL=0 ; // trigger from CCP5
ADCON1.PVCFG1=0; // +Vref = +5V AVdd
ADCON1.PVCFG0=0;
// bit 1-0 NVCFG<1:0>: Negative Voltage Reference Configuration bits
ADCON1.NVCFG0=0;
ADCON1.NVCFG1=0; // -Vref = Gnd AVss
// ADCON1.NVCFG0=1; //-Vref = RA2 input
//bit 7 ADFM: A/D Conversion Result Format Select bit
ADCON2.ADFM=1; // right justified
// ADC Clock period (TAD) = 2µS at 16Mhz
//bit 2-0 ADCS<2:0>: A/D Conversion Clock Select bits see 17.3 page 306
// ADCS<2:0> 010=Fosc/32 101=FOSC/16
ADCON2.ADCS1=0;
ADCON2.ADCS2=1;
ADCON2.ADCS0=0;
// bit 5-3 ACQT<2:0>: A/D Acquisition time select bits.
// Acquisition time is the duration that the A/D charge
// holding capacitor remains connected to A/D channel from the instant the GO/DONE bit is set
// until conversions begins.
// TACQT Cycles ACQT<2:0>
// TACQ= 8 xTAD = 16µS at 16Mhz
ADCON2.ACQT2=1;
ADCON2.ACQT1=0;
ADCON2.ACQT0=0; // 8 TAD
}
// ADC_Init();
// EA0=ADC_Read(0);
ADCON0= 0x01;
ADCON0.GO=1;
_asm nop
_asm nop
while( ADCON0.GO==1);
_asm nop;
EA0=ADRESH<<8;
EA0=EA0 + ADRESL;
idem avec ou sans R serie de 100K ohms
duree acquisition 8µS
pot au minima :
Duree Conv.simili ASM = 8 µS j= 2 EA0= 00026 soit 126.9 mV
pot au maxima
Duree Conv.simili ASM = 8 µS j= 27 EA0= 01011 soit 4933.7 mV
échec de lecture d'une entrée analogique PIC MikroC
Merci tout le monde pour vos réponses et merci infiniment Mr Paul pour vos efforts
Je m'excuse pour ma réponse tardive j'ai pas fais attention aux notifications.
Oui le modèle de capteur correspond bien au modele unibody.
Sinon j'ai pas le nécessaire pour pouvoir essayer en réel pour le moment...
C'est noté en tout cas je vais me référer sur vos essais et j'espère que ça donnera du résultat.
Merci encore une fois
Je m'excuse pour ma réponse tardive j'ai pas fais attention aux notifications.
Oui le modèle de capteur correspond bien au modele unibody.
Sinon j'ai pas le nécessaire pour pouvoir essayer en réel pour le moment...
C'est noté en tout cas je vais me référer sur vos essais et j'espère que ça donnera du résultat.
Merci encore une fois
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : Bing [Bot] et 51 invités