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.
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 :
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 :
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
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