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
Configuration ADC avec un Vref 2.48 V
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour à tous,
Je n'arrive pas à lire une tension analogique avec une Vref interne de 2.48 V
Je travaille avec un PIC16F1847 ( comme d'hab) ). Tout mon montage est alimenté depuis une batterie.
cela signifie que la tension d'alimentation du PIC va varier au rythme de la batterie !. ( de 3.3V à 4.2V)
Pour lire l'état de ma batterie je dois donc utiliser un ref en dessous de ma tension d'alimentation. j'ai donc choisie 2.048V.
Malheureusement je n'ai que de 1016 en réponse ! je pense que mon ADC est mal initialisé .
Pour alimenter mon pont diviseur de tension je me sers de la pin d'un pIc qui sera égal a la tension de la batterie !
J'ai rajouter un petit potar pour simuler une baisse de tension.
Voici le schéma simplifié
Voici mon initialisation :
et
voici la fonction de lecture très simplifiée. A terme se sera une moyenne sur 8 valeurs mais quand ça fonctionnera !
je vous passe les détails du programme si il vous manque des infos , n’hésitez pas à me demander mais je pense avoir mis l'essentiel .
J'aurais aimé pouvoir réglé le bits du registre ADPREF mais je ne sais pas faire quand il y plusieurs bit pour un registre .
Il faut donc que je configure tout le registre ADCON1 , et la ben , je sais pas trop quoi mettre comme valeur dans les autres!
Avez vous une idée comment configurer mon ADC pour une ref interne de 2.048V.
Je n'arrive pas à lire une tension analogique avec une Vref interne de 2.48 V
Je travaille avec un PIC16F1847 ( comme d'hab) ). Tout mon montage est alimenté depuis une batterie.
cela signifie que la tension d'alimentation du PIC va varier au rythme de la batterie !. ( de 3.3V à 4.2V)
Pour lire l'état de ma batterie je dois donc utiliser un ref en dessous de ma tension d'alimentation. j'ai donc choisie 2.048V.
Malheureusement je n'ai que de 1016 en réponse ! je pense que mon ADC est mal initialisé .
Pour alimenter mon pont diviseur de tension je me sers de la pin d'un pIc qui sera égal a la tension de la batterie !
J'ai rajouter un petit potar pour simuler une baisse de tension.
Voici le schéma simplifié
Voici mon initialisation :
Code : Tout sélectionner
ADC_Init(); // Initialisation de l'ADC
ADC_Init_Advanced(_ADC_EXTERNAL_VREFL |_ADC_INTERNAL_FVRH2);
et
voici la fonction de lecture très simplifiée. A terme se sera une moyenne sur 8 valeurs mais quand ça fonctionnera !
Code : Tout sélectionner
void Lecture_T(){
if (ADC_Read(0)>1000){
Orange = 1;
}
else {Jaune=1;}
delay_ms(1000);
Jaune=Orange=0;
je vous passe les détails du programme si il vous manque des infos , n’hésitez pas à me demander mais je pense avoir mis l'essentiel .
J'aurais aimé pouvoir réglé le bits du registre ADPREF mais je ne sais pas faire quand il y plusieurs bit pour un registre .
Il faut donc que je configure tout le registre ADCON1 , et la ben , je sais pas trop quoi mettre comme valeur dans les autres!
Avez vous une idée comment configurer mon ADC pour une ref interne de 2.048V.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Configuration ADC avec un Vref 2.48 V
Configuration ADC avec un Vref 2.48 V
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Hello Gérard ,
ADC_Read(0) va lire ANA0 qui correspond à la broche RA0.
Le pont est alimenté par un PIN pour avoir la recopie de la tension de la batterie quand j'en ai besoin seulement . Cela évite d'avoir un pont qui consomme en permanence ! j'ai juste a mettre ma broche à 1 pour avoir la tension de la batterie sur mon diviseur
ADC_Read(0) va lire ANA0 qui correspond à la broche RA0.
Le pont est alimenté par un PIN pour avoir la recopie de la tension de la batterie quand j'en ai besoin seulement . Cela évite d'avoir un pont qui consomme en permanence ! j'ai juste a mettre ma broche à 1 pour avoir la tension de la batterie sur mon diviseur
Configuration ADC avec un Vref 2.48 V
Bonjour,
si tu utilises MikroC il faut savoir que leur fonction ne sait pas gérer une mesure avec Vref interne.
Il te faut une fonction dédiée, c'est d'ailleurs une très bonne habitude à prendre, les librairies de MikroC ne sont pas terribles, la preuve en est.
C'est une bonne occasion de te frotter avec la datasheet, tu verras que c'est assez simple d'écrire une telle fonction.
Si tu n'y arrives pas je t'aiderai, mais essaye avant et pose des questions si besoin.
@+
si tu utilises MikroC il faut savoir que leur fonction ne sait pas gérer une mesure avec Vref interne.
Il te faut une fonction dédiée, c'est d'ailleurs une très bonne habitude à prendre, les librairies de MikroC ne sont pas terribles, la preuve en est.
C'est une bonne occasion de te frotter avec la datasheet, tu verras que c'est assez simple d'écrire une telle fonction.
Si tu n'y arrives pas je t'aiderai, mais essaye avant et pose des questions si besoin.
@+
Configuration ADC avec un Vref 2.48 V
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Hello,
effectivement je suis avec mikroC .
Ah !! ben dis donc , c'est nul ca !!
Quand tu dis fonction tu parles de ADC_Read?
Sa risque d'être dur, si le PIC ne sait pas lire une tension par rapport à une tension de ref interne ? non !
En fait je ne vois pas se que je dois faire ? peut etre parle tu de la conversion du chiffre lu en valeur d'une tension ?
effectivement je suis avec mikroC .
si tu utilises MikroC il faut savoir que leur fonction ne sait pas gérer une mesure avec Vref interne.
Ah !! ben dis donc , c'est nul ca !!
Quand tu dis fonction tu parles de ADC_Read?
Sa risque d'être dur, si le PIC ne sait pas lire une tension par rapport à une tension de ref interne ? non !
C'est une bonne occasion de te frotter avec la datasheet, tu verras que c'est assez simple d'écrire une telle fonction.
En fait je ne vois pas se que je dois faire ? peut etre parle tu de la conversion du chiffre lu en valeur d'une tension ?
Configuration ADC avec un Vref 2.48 V
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Lecture de la DS .....
Page 140 :
- Port config : RA0 en entrée analogique et RA1en sortie numérique : Ok
- Channel selection : j'ai choisis le chanel 0 pour la lecture : ok
- ADC voltage reference selection : la ça se complique. d'apres la DS je dois fixé la valeur de ADPREF(A/D positive reference) donc dans mon cas, je dois lui dire VFR en 2.048V . cela se passe dans le registre ADCON1 ; Il faudrait que je mettre ADPREF_bit à la valeur= 11 ; Mais je ne sais pas le mettre car quand on écrit ADPREF_bit, il faut mettre un "1" ou un "0" . comment mettre "11" ? Pour signifié que Vref+ est la VFR de 2.048 ?
Pour le négatif c'est plus facile il n'y a qu'un bit donc ADNREF_bit=0; pour avoir Vref- comme la masse.
Ensuite il faut déterminé le VFR ! (P.135) avec le registre FVRCON, et la ça se complique vraiment !
Je pense qu'il faille mettre FVREN à 1 pour activer le FVR et ADFVR à "10" . je tombe ici sur le même probleme je ne sais pas mettre ADFVR_bit à "10" !
Page 140 :
• Port configuration
• Channel selection
• ADC voltage reference selection
• ADC conversion clock source
• Interrupt control
• Result formatting
- Port config : RA0 en entrée analogique et RA1en sortie numérique : Ok
- Channel selection : j'ai choisis le chanel 0 pour la lecture : ok
- ADC voltage reference selection : la ça se complique. d'apres la DS je dois fixé la valeur de ADPREF(A/D positive reference) donc dans mon cas, je dois lui dire VFR en 2.048V . cela se passe dans le registre ADCON1 ; Il faudrait que je mettre ADPREF_bit à la valeur= 11 ; Mais je ne sais pas le mettre car quand on écrit ADPREF_bit, il faut mettre un "1" ou un "0" . comment mettre "11" ? Pour signifié que Vref+ est la VFR de 2.048 ?
Pour le négatif c'est plus facile il n'y a qu'un bit donc ADNREF_bit=0; pour avoir Vref- comme la masse.
Ensuite il faut déterminé le VFR ! (P.135) avec le registre FVRCON, et la ça se complique vraiment !
Je pense qu'il faille mettre FVREN à 1 pour activer le FVR et ADFVR à "10" . je tombe ici sur le même probleme je ne sais pas mettre ADFVR_bit à "10" !
Configuration ADC avec un Vref 2.48 V
Configuration ADC avec un Vref 2.48 V
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonsoir Paul ,
Ah okkk !!! je me coucherais moins ce soir ! Génial, je vais pouvoir essayer mes combinaisons .
j'en suis rendu a configurer ainsi mais ca ne fonctionne toujours pas !
Ah okkk !!! je me coucherais moins ce soir ! Génial, je vais pouvoir essayer mes combinaisons .
j'en suis rendu a configurer ainsi mais ca ne fonctionne toujours pas !
Code : Tout sélectionner
ADC_Init(); // Initialisation de l'ADC
ADCON1 = 0b10000011;
FVRCON = 0b11100010;
Configuration ADC avec un Vref 2.48 V
Configuration ADC avec un Vref 2.48 V
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 56 invités