Counter/Timer

cancel
Showing results for 
Search instead for 
Did you mean: 

Comment générer un signal carré de rapport cyclique très faible?

Bonjour,
je voudrais générer un signal carré dont la période est d'environ 5 secondes. Mais le rapport cyclique que je désire est de l'ordre de 0,7E-6 !!! Le problème est que si petites valeurs de rapport cyclique ne peuvent être réalisées avec les fonctions "Easy I/O for Data Acquisition" de CVI. Comment faire ?
0 Kudos
Message 1 of 6
(4,183 Views)
Bonjour,

Au vu de ce que vous me dites, votre carte d'acquisition semble être une carte de la série E, ou du moins vous utilisez un compteur 24 bits.
Or pour faire une période de 5s avec un rapport cyclique de 0,7E-6, vous devez utiliser une base de temps de 20MHz (disponible sur votre compteur 100KHz ou 20MHz). 5 secondes avec une base de temps de 20MHz correspondent à 100000000 counts, or votre compteur 24 bits, ne peut compter que jusqu'à 2E24, soit 16777216.
Donc vous avez deux solutions, soit acheter une carte avec un compteur 32 bits (type PCI-6602, ou série M), méthode la plus simple, ou utiliser deux compteurs de votre carte. Dans ce dernier cas de figure, il vous faut générer un train d'impulsions de période 5s et rapport cyclique 0,5, et de se servir du front montant pour déclencher une impulsion simple "re-triggerable" sur le deuxième compteur. Voir la fonction "DelayedPulseGenConfig".

Gianni Martinico
NI France.
Cordialement,

Gianni Martinico
NI France
0 Kudos
Message 2 of 6
(4,172 Views)
Bonjour,
merci beaucoup pour votre réponse (même si, pour la technique des 2 compteurs, j'y ai pensé après avoir posé la question).
Encore merci.
Julien
0 Kudos
Message 3 of 6
(4,166 Views)
Bonjour,
j'ai essayé de générer un signal tel que décrit dans mon premier mail (période : environ 5 sec, rapport cyclique : environ 0.7 E-6). J'ai voulu faire cela avec un seul compteur (carte pci-6602, c'est donc largement possible puisque la base de temps est de 80 MHz, et les compteurs sont des 32 bits), en utilisant la fonction 'ContinuousGenPulseConfig'. Mais la valeur très petite du rapport cyclique n'est pas acceptée en argument de la fonction (cela m'est précisé au moment de la compilation). Quelle fonction dois-je utiliser, puisque la configuration matérielle de la carte n'est pas un obstacle ?
0 Kudos
Message 4 of 6
(4,162 Views)
Bonjour,

Avec les fonctions easy I/O, vous ne pouvez pas utiliser les compteurs de la cartes 6602, car ils sont du type NI-TIO et non pas DAQ-STC ou Am9513. Les Easy I/O ne sont pas compatibles avec (Voir en bleu dans le Function Panel).

Jetez un oeil dans l'exemple de CVI : CVI71\samples\daq\Ctr\TIOgenSquareWave.prj.

Certes, c'esu un peu plus complexe que les easy I/O, mail il faut en passer par là.
Courage.

PS: voici un lien expliquant mon post précédent :
http://digital.ni.com/public.nsf/websearch/7EA37237DDFB5F2486256A990065F86D?OpenDocument
Cordialement,

Gianni Martinico
NI France
0 Kudos
Message 5 of 6
(4,157 Views)
Bonjour,
merci beaucoup pour votre aide. Je me permet de préciser que je pensais aussi ne pas pouvoir utiliser les fonctions easy I/O pour faire fonctionner les compteurs NI-TIO de la carte. Pourtant, malgré la précision en bleu du Function Panel, je vous jure que j'ai pu générer des signaux avec ces fonctions !!!! Je vous avoue que je n'ai pas trop compris pourquoi cela marchait, mais cela marche très bien (excepté la fonction CounterControl je crois).
Encore merci, bonne continuation à vous aussi.
Julien.
0 Kudos
Message 6 of 6
(4,150 Views)