16/12/2011
last rev 12/10/2014

Periodemetres:


version 1112: 18F252 en MPLAB C18
version 1201: 16F877 MikroC limited
version 1309: 18F26K22 Usage CCP1 MPLAB C18
version 1412 : 18F26K22 Usage CCP1 Timer1 + debordements (MikroC Registered)

Mesure de Periode signal niveau TTL avec PIC16F877
Testé avec version MikroC limitée
Hardware: Platine nokia 16F877 avec Q=10Mhz
Liaison RS232 vers terminal PC pour resultats
Boite à Quartz : Petit generateur de signaux calibres à Quartz , utilise comme source de mesure.

Gene_Quartz_4040a.jpg ../OLDIES/images/Generateur-Quartz_4040_2011.jpg


Le signal à mesurer est appliqué sur RC2 du 16F877, entree du CCP1
Le Timer1 est associé à la capture
Le prediviseur Timer1 permet un rapport de 1/1 à 1/8 sur la frequence Horloge , ici 10MHz/4.

Resultats
avec choix de diviseur 1/1 et 1/8 :

images/PeriodeMesure.jpg

Tres bonne precision de mesure ! Moyenne sur 10 mesures
limit demo MikroC atteinte !
Source MikroC : 16F877_CCP_Periodemetre_120128_MikroC.c
Chargeur Hex : 16F877_Platine_Nokia_Duree_ccp1.hex

Nota: La vraie réolution n'a pas étét testée ici ..car il faudrait utiliser un generateur pouvant descendre en dessous de l'unité 1HZ!
A suvre..

Periodemeter : Version PIC18F252 en C18

Hardware : Pic sur "planche à pain" (traduction chinoise RPC de platine de test sans soudures) !
source C: 18F_period_via_CCP1.c
Chargeur :18F_period_via_CCP1.hex



Mesure de Frequence via Periode signal niveau TTL
avec PIC18F26K22


Hardware : Pic sur "planche à pain"
Montage proto 18F26K22 avec OSC interne 16MHz
Liaison TTL<-> RS232 vers terminal PC pour resultats

Tests avec mon generateur DDS .
Mode capture CCP1 lié au Timer1 16 bits
Le signal entre sur RC2
Config capture sur 4 fronts montants
Minima possible : 250Hz
Maxima > 4000 Hz
Acquisition de 100 mesures elementaires pour en faire la moyenne
pour en recalculer la Frequence et le nombre de Tr/Mn (Rpm) connaissant le nombre de dents.
nota: Overflow timer1 NON GERES.. ce qui limite la gamme de mesure


Application compte tour Moteur :

images/CCP1_Freq_Rpm.jpg

source C: 18F26k22_CCP1_duree_130923.c
Chargeur :18F26K22_tests_CCP1.hex

Results:





Mesure de Frequence niveau TTL avec une tres grande Résolution
PIC18F26K22, CCP1,Timer1
12/10/2014
Un inter placé sur RB1 permet le choix entre le mode Periodmeter ou Frequencemeter
Partie Periodmeter:
Le but est de mesurer indirectement un domaine restreint de frequence, par une mesure de periode
avec la plus grande résolution possible.
Recherche du 1/1000em de HZ .
Pour cela il faut compter un tres nombre d'impulsions contenues dans la periode du signal à mesurer.
Choix de FOSC =20Mhz => cycle de 0,05µS.
Le module CCP capture donc les fronts montants du signal à mesurer et copie en meme temps le contenu du Timer1
dans ses propres registres, il est synchrone avec ce signal!
La difficulté reside dans le fait que le Timer1 peut deborder entre les 2 fronts montants,il faut donc comptabiliser
le plus precisement (temporellement) ces debordements, afin d'en ajouter 65536 fois , à la valeur du CCP1 en fin de capture.
En jouant sur les parametre, Prescaler Timer1, source FOSC du timer1, Nombre de (edges) fronts montant pour la capture
On arrive à avoir une sacrée résolution en terme de counts elementaires.
puisque l'element final de comptage count= 0,05 / 16 represente 0.0031 µS
Nota: La mesure resulte de la moyenne de 16 periodes (because mode 16 edges) ! ce qui necessite
16 secondes pour 1Hz

Amelioration possible:
rajouter un selecteur sur 2 entrees dispo
pour avoir le choix de mesure entre 1,4,ou 16 (edges) fronts .


Tests réalises avec
le gene DDS TBF consigne de frequence à +-0.05Hz
et la
Boite à quartz: generateur de 10 valeurs de frequences, issues d'un Quartz 400Khz +-20ppm suivi d'un diviseur 4040..
Edition de 10 valeurs consecutives et comptages intermediares pour evaluer la stabilité de mesure, via UART => terminal RS232

Schema de principe:



Resultats :

affichage sur terminal Vbray



images/R1.jpg

En résumé:
Excellente resolution en mode 16 edges..entre 0,05Hz et 2500hz.. .au dela la resolution decroit rapidement
L'erreur de mesure est calculée en supposant la reference de frequenxe exacte en valeur absolue..
ce qui ne doit pas etre le cas à +-0,001Hz, à moins d'un miracle.

Resultat feuille xls:
18F26k22_Timer1_CCP_periodmeter.xls
source MilroC Pro 6.40 :
18F26K22_Periodemeter_Freqmeter_CCP_Timer1_141010.c
Chargeur : 18F26K22_PeriodeMeter_Freqmeter_141012.hex

La Suite :... Mode Frequencemetre pour F > 2000Hz .

voir aussi , liens vers Frequencemetres !
16F84 .en asm..
18F.. en C18

 

 


paulfjujo@free.fr