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 ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Fréquencemètre divers technique
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#1 Message par Temps-x » sam. 30 oct. 2021 22:05

Bonjour tout le forum,

J'ouvre un sujet dessus le fréquencemètre, pour ceux qui voudrais en construire un, avec les anciens Pic et nouveau Pic.

En premier lieu je vous conseille d'équipé votre pic d'un quartz, sinon les mesures seront imprécises, de plus si vous faite des essais ne dépasser pas 5 volts en entrée de fréquence, si votre pic est alimenté en 5 volts.

Voila un montage avec un Pic16F628A qui fonction très bien, limité à 65,535 Mhz, c'est un grand maximum pour ce pic.
D'après Microchip l'entrée de la pin accepterais 50 Mhz au grand maximum, si vous voulez vous lancer dans les essais :sifflotte: (on compte sur Pikachu pour les essais)

Freq-16F628A.jpg


Ici, fréquence prise sur son propre quartz, qui est de 4Mhz, je n'ai pas cherché l'affinement car on peut le faire, l'entrée de la fréquence à mesurer se fait sur la patte RB6 du Pic16F628A

Fichier code : Freq-16F628A(Code).zip
Fichier à mettre dans le Pic : Freq-16F628A(Hex).zip

Maintenant nous allons utiliser la même technique, mais avec le Pic18F27K42.

Freq-18F27K42.jpg


Fréquence de pris sur la broche du quartz du Pic16F628A, ce n'ai pas très précis, car j'utilise pas de quartz pour le Pic18F47K42
juste la fréquence de l'horloge de ce pic qui est de 64 Mhz via activation de la PLL, une instruction dure 62,5 ns oops

De plus la mesure de la fréquence n'arrête pas de bouger, chose que je n'avais pas avec le Pic16F628A la mesure de la fréquence rester stable, la stabilité et du à son quartz (comme quoi il est nécessaire d'en mettre un), l'entrée de la fréquence à mesurer se fait sur la patte RC0 du Pic18F27K42

Fichier code : Freq-18F27K42(Code).zip
Fichier à mettre dans le Pic : Freq-18F27K42(Hex).zip

Le Pic18F27K42 possède une autre technique, car il y à 4 compteurs de 24 bits oops qui sont utilisable pour divers application.
Ce qui nous intéresse c'est notre fréquencemètre, si j'ai le temps je vous parlerez du reste (enfin ce que je comprends, comme la documentation est toute en anglais :furieux: il faut que j'arrive à deviner ce qu'il dise)

L'avantage d'avoir un compteur de 24 bits, c'est que vous avez généralement 2 bases de temps à gérer, voir 1 pour les plus modeste.

En 24 bits, avec une seule base de temps de 1 secondes précise, on peut aller jusqu'à 16777215 Hz (16,777215 Mhz) :-)

Si l'on veut aller plus loin, il faut un diviseur de fréquence, j'ai opté pour un MB506 voici sont datasheet ICI

Le MB506 fonctionne de 4,5 volts à 5.5 volts, il est limité à 2.4GHz au maximum, sa sortie est de 1,6 V crête à crête.
Ce diviseur de fréquence à 3 divisions de fréquence qui sont : 64, 128, 256 (faite votre choix) :-D

Suite à l'explication de paulfjujo qui m'a montré comment il fallait procéder pour mettre en oeuvre cette nouvelle technique STM1 en langage :sifflotte: C,
j'ai décidé de le refaire en ASM (qui est beaucoup plus rapide) :langue:

J'ai à peu près refait la même chose en modifiant quelque paramètre, je vous rappelle que les essais son fait sans quartz, donc il est normal qu'il y est une imprécision, l'entrée de la fréquence à mesurer se fait sur la patte RC1 du Pic18F27K42

Freq-18F27K42-SMT1.jpg


Fichier code : Freq-18F27K42-SMT1(Code).zip
Fichier à mettre dans le Pic : Freq-18F27K42-SMT1(Hex).zip


Maintenant, il faudrait prévoir une sécurité si les registres 24 bits déborde, je vais regarder cela.



Suite en fonction de l'avancement des recherches, :roll: ou de l'aide apporté .... :wink:

==> A+oilà
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le ven. 5 nov. 2021 01:14, modifié 16 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Fréquencemètre divers technique
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#2 Message par F6FCO » dim. 31 oct. 2021 19:56

Merci Temps-X,
Je me réfèrerai à ton sujet quand ce sera le moment de mon projet fréquencemètre. Je n'ai pas regardé le code mais je suppose que tu utilises le principe habituel de créer un créneau précis (1s, 1ms ou 1µs) et que tu comptes les impulsions en entrée sur une pin pendant la durée de ce créneau ?

Limité à 65Mhz c'est déjà très bien et suffisant pour la plupart des applications.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Fréquencemètre divers technique
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#3 Message par Temps-x » dim. 31 oct. 2021 21:18

Bonsoir F6FCO, et tout le forum,

F6FCO a écrit :Source du message tu utilises le principe habituel de créer un créneau précis (1s, 1ms ou 1µs)

Exacte, les base de temps sont de : 1 seconde, 100 millisecondes, 10 millisecondes, 1 milliseconde.

F6FCO a écrit :Source du messageque tu comptes les impulsions en entrée sur une pin pendant la durée de ce créneau ?

C'est à peut près ça, mais j'ai pas à le faire car tout est automatique :-D

F6FCO a écrit :Source du message Limité à 65Mhz c'est déjà très bien et suffisant pour la plupart des applications.

Même si le pic est capable de compter aussi haut, l'entrée ne suivra pas ( je dirais plutôt 50 Mhz)

J'attaque la version 3 avec le Pic18F27K42, avec le compteur 24 bits, on n'est pas obligé de prendre un quartz de 64 Mhz, tu peux très bien prendre un quartz de 20 Mhz, ça fonctionnera aussi bien, il faudra juste revoir la base de temps si changement de quartz.

Pour les fréquences très haut je vais utiliser un circuit spécialisé, je vais en parlé dans le post #1 :sifflotte: un peut plus tart

On va essayer de faire quelle chose de sympa.... j'ai inclus dans le code le mode NCO, quand il faudra je l'activerai.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Fréquencemètre divers technique
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#4 Message par paulfjujo » mar. 2 nov. 2021 10:40

bonjour,

Test comparatif
- mon vieux frequencemetre 1Hz 999Mhz à base de 16F84 q=4Mhz
- test frequencemetre 18F27K42 avec Fosc interne!
- mon generateur à quarz .. sortie 25000Hz (maxi) -> sur les 2 frequencemetre ( niveau TTL)


Test_freq_18F27K42-16F84_2021-1102.jpg


:!!: 18F27K42, sans quartz c'est imbitable ..
Tamb=19,8°C
consigne = 25000
mesure 18F27K42 .. 24594 à 24610
mesure 16F84 ... 24997 24998

à 390Hz de consigne
mesure 18F27K42 .. 384 ...385
mesure 16F84 ... 390

j'avais en son temps, testé la mesure VHF avec un emetteur 433MHz ..O K
entrée spécifique 50 ohms pour le MB256!
je vais essayer de mesurer la sortie d' un GT38 , en definissant plusieurs frequence via le choix du cannal ..

Test sur GT38 .. negatif , car celui ci n' émet que pendant quelques millisecondes .. et pas 1sec le temps d'integration actuel
de ce fait je ne mesure que quelques dizaines de megahertz..
il faudrait que je modifie mon programme et rajoute une option avec fenetre temporelle de 100mS ,quitte à perdre de la resolution..

Autre essai,cette fois sur un mini emetteur 433MHz ..qui emet sa porteuse en permance..
couplage avec l'entree MB256 via une boucle de Hz
je mesure 433.8916 à 433.9067 suivant la distance de couplage ..

Test_freq_16F84_emetteur_433MHz_2021-1102.jpg



je vais faire un autre test à faire (en C)
usage 1Hz RTC => interrput sur front RB0 ,
18F27K42 sans quartz, usage du compteur SMT1 24 bits ( ce n'est pas le NCO !)
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Fréquencemètre divers technique
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#5 Message par Temps-x » mer. 3 nov. 2021 01:12

Bonsoir paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message - test frequencemetre 18F27K42 avec Fosc interne!

On est d'accord :-D sans quartz, c'est pas la peine de faire quelque chose, après reste à régler la base de temps précisément, avec timer ou tempo.....

j'ai vu sur ton site tout les essais que tu as fait, oops tu ne perds pas de temps.

paulfjujo a écrit :Source du message entrée spécifique 50 ohms pour le MB256!

:sifflotte: Je dirais MB506 avec division de 256 :-D , j'ai également vu ça sur ton site

paulfjujo a écrit :Source du message 18F27K42 sans quartz

Pour les essais seulement, car je compte en rajouter un par la suite.

Il y a deux questions que je me pose

Quelle sont les registres 24 bits utilisé pour le mode compteur ?


SMT1TMRL
SMT1TMRH
SMT1TMRU


SMT1CPRL
SMT1CPRH
SMT1CPRU


SMT1CPWL
SMT1CPWH
SMT1CPWU


SMT1PRL
SMT1PRH
SMT1PRU


Comment définir la patte d'entrée pour le comptage ?

J'ai cherché, et j'ai pas trouvé, je pense à un des 2 registres SMT1WIN ou SMT1SIG

paulfjujo a écrit :Source du message ( ce n'est pas le NCO !)

:lol: je sais .... Paul, on ne pourras pas faire de la musique.... :roll: quoique .

Je continus mes essais....

A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Fréquencemètre divers technique
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#6 Message par paulfjujo » mer. 3 nov. 2021 10:54

bonjour à tous ,

Temps-x a écrit :Il y a deux questions que je me pose
Quelle sont les registres 24 bits utilisé pour le mode compteur ?
Comment définir la patte d'entrée pour le comptage ?


SMT1TMRL
SMT1TMRH
SMT1TMRU


SMT1CPRL
SMT1CPRH
SMT1CPRU


SMT1CPWL
SMT1CPWH
SMT1CPWU


SMT1PRL
SMT1PRH
SMT1PRU




Commentdéfinir la patte d'entrée pour le comptage ?
vue via MPLAB Pins configurator ..

exemple mesure de durée ( test sur Delay_ms(10mS))

Code : Tout sélectionner


CPrint
(" Test compteur 24 bits SMT1 sur FOSC=64MHz \r\n");
CPrint(" Resolution compteur +- 16 nanoSec (maxima= 262mS)\r\n");
ST=&SMT1_Measure; // pointeur Byte sur debut entier long 32 bits
CPrint(" Start SMT1 for test delay 10mS\r\n");
SMT1_Measure=0;
SMT1STATbits.RST=1;
SMT1CON1bits.SMT1GO=1;  // START MESURE
__delay_ms(10);
SMT1CON1bits.SMT1GO=0// STOP Mesure
txt=&TEXTE[0];
*(
ST)=SMT1TMRL;
*(
ST+1)=SMT1TMRH;
*(
ST+2)=SMT1TMRU;
*(
ST+3)=0;
CPrint( " Stop. SMT1 tics avec ultoa -> ");
ultoa(txt,SMT1_Measure,10);
Print(
txt);
sprintf(txt," , et (via sprintf) -> %lu uS ",SMT1_Measure>>6);
Print(
txt); CRLF1();
 


Pin RC1 affectable à SMT1
(mais, je n'ai pas encore testé !)

à voir aussi via le CLC combinaison logique ...
on en a pas fini avec ce 18F27K42 et toutes ses possibilités en devenir .. à comprendre et tester.

.. à Suivre
Aide toi, le ciel ou FantasPic t'aidera

Fréquencemètre divers technique
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#7 Message par Temps-x » jeu. 4 nov. 2021 01:59

Bonsoir paulfjujo, et tout le forum,

Merci ! Voila ça fonctionne (voir post #1, ou j'ai rajouté le fichier Code + fichier Hex), vraiment pratique comme fonction.

Reste à voir le débordement du compteur 24 bits (quelque chose qui nous préviendrait)

paulfjujo a écrit :Source du message on en a pas fini avec ce 18F27K42 et toutes ses possibilités en devenir .. à comprendre et tester.

:roll: Avec ses 900 pages à lire il y a de quoi s'occuper tout l'hiver,

Bon maintenant j'aimerai bien savoir si RC1 n'est pas redirigeable.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Fréquencemètre divers technique
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#8 Message par paulfjujo » lun. 8 nov. 2021 16:38

bonjour,


usage du compteur 24bits SMT1 , sans quartz sur le PIC !
mais avec le 1hz RTC DS3231 comme base de temps
Test SMT1 en mode 10 : mode 1010 windowed counter
SMT1WIN=0; //00000 = SMTxWINPPS <----- fenetre temporelle de 1 sec
SMT1SIG=0; // SMTxSIGPPS <- signal à mesurer



resultat:
test boite Generateur àQuartz pour 25000 et 2500Hz
$* Freq= 24999, Hz, Duty= 50.00%
$* Freq= 25000, Hz, Duty= 50.00%
$* Freq= 25000, Hz, Duty= 50.00%
$* Freq= 2500, Hz, Duty= 50.00%
$* Freq= 2500, Hz, Duty= 50.00%

signal de sortie 32K de la RTC
$* Freq= 32711, Hz, Duty= 50.00%
$* Freq= 32711, Hz, Duty= 50.00%
$* Freq= 32710, Hz, Duty= 50.00%
$* Freq= 32711, Hz, Duty= 50.00%
$* Freq= 32711, Hz, Duty= 50.00%

SMT1_WINDOWED_COUNTER_MODE_SINGLE_ACQUISITION TIMING.jpg


Remarque : les Datagrammes des autres modes Windowed ne sont pas evidents à comprendre ,
vu qu'on ne voit plus d'entrée Signal ,mais uniquement le clock
à moins de mesurer la duree d'une periode si le signal à mesurer est sur l'entree Window RC0
..à suivre


détail sur le soft dispo sur ma page ..
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Fréquencemètre divers technique
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#9 Message par Temps-x » mar. 9 nov. 2021 01:33

Bonsoir paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message usage du compteur 24bits SMT1 , sans quartz sur le PIC !
mais avec le 1hz RTC DS3231 comme base de temps

:eek: ouah... base de temps extérieur, très précis à ce que je vois....

paulfjujo a écrit :Source du message Remarque : les Datagrammes des autres modes Windowed ne sont pas evidents à comprendre ,

Ouais, il parle beaucoup en diagramme, chaque mode est défini par un diagramme, avec peu d'explication, quelle dommage pour un telle Pic :sad:

Honnêtement, je n'ai pas compris grand chose dans leurs diagrammes, de plus avec la langue anglo-saxonne ça ne m'aide pas :furieux:

J'ai traduit pas mal de page, mais je n'ai pas trouvé comment prévenir si il y a un débordement du compteur 24 Bits sur SMT1TMx

C'est important quand on veut passer d'une fréquence à une autre automatiquement, et sélectionner une autre base de temps ou diviseur.

:roll: Je vais devoir trouver une astuce.

Comme tu dis ... A suivre.... Merci ! pour tes recherches.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Fréquencemètre divers technique
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#10 Message par paulfjujo » mar. 9 nov. 2021 15:18

bonjour à tous,

pour temps-X

modif pin entree signal compteur SMT1 -> SMT1SIGN
DS40001919F-page 279
cette pin peut etre associée à n'importe quelle pin PORTC ou PORT B
par defaut sur RC1

apres modif : RB1 = entree SMT1SIG
testé OK ..

TABLE 17-1: PPS INPUT REGISTER DETAILS

Code : Tout sélectionner


 PORTC
=0;
  
TRISC 0b10110011;
  
ANSELC=;
  
Unlock_IOLOCK();
  
RC6PPS 0x13;   //RC6->UART1:TX1;
  
U1RXPPS 0x17;   //RC7->UART1:RX1;
  
U1CTSPPS=0x15// RC5
  //TABLE 17-1: PPS INPUT REGISTER DETAILS
  
SMT1WINPPS=0x10;  // RC0    PORTC =0x010      Pin 0= 0x000
//  SMT1SIGPPS=0x11;  //RC1    PORTC =0x010     Pin 1= 0x001
  // modif input signal (qui est RC1 par default)
  
RC1PPS=0;  // deconnecter la pin => RC1 = pin Normale Entree.
  
SMT1SIGPPS0x09// RB1  17.8  PPS Input Selection  PortB= 001  Pin 1= 001
  
Lock_IOLOCK(); 
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 22 invités