A
atferrari
Guest
Deux générateurs sinusoïdale, chacun mis en place avec un PIC 16F84A,
de son propre clavier et de la production par l'intermédiaire PORTB,
passant à un réseau R-2R.A 4 pôles filtre complète le circuit.Tant par une horloge de 4 MHz, et les deux marche EXACTEMENT le même logiciel.
Dans chaque producteur, suivant le principe de de DDS, une valeur, PHASE_INC (3-octets), est ajouté de façon répétitive à un PHASE_ACCUMULATOR (3-octets aussi).Les bits b6: b0 de l'accumulateur
du MSB sont utilisés pour lire un look up table sine avec des valeurs de 1 à 128 et b7 du MSB est de savoir à quel moment de calculer le complément.
Pour changer la fréquence, withs touches "FREQ-UP" et "FREQ_UP", je peux augmenter / diminuer la valeur unitaire PHASE_INC pas (oui, oui, une unité à la fois).
Tout fonctionne comme prévu, sauf une chose: Si je varier PHASE_INC dans l'un d'eux à tout axtent et puis essayer de la mettre à sa fréquence par l'augmentation / la diminution PHASE_INC, il est presque impossible obtenir la valeur originale, quoique très proche .
Juste au cas où,
s'il vous plaît noter:
a - Les deux générateurs, indépendamment vérifié révélée assez stable sur le long terme.Ils commencent par la même PHASE_INC valeur, ce qui leurs fréquences correspondent les uns les autres à 100% et rester comme cela éternellement.C'est la raison pour laquelle la commune d'horloge, et il fonctionne bien.
b - D'après la théorie,
en utilisant UNITAIRE pas, tôt ou tard, je devrais obtenir à nouveau la valeur initiale PHASE_INC où
j'ai commencé à partir, qui est la fréquence initiale (mathcing nouveau générateur de l'autre).Dans le logiciel, je les inclus suffisamment de retard pour rendre le changement unitaire de PHASE_INC lents assurer d'avoir un bon contrôle des changements.La simulation montre que PHASE_INC est augmenté / diminué d'une heure,
à chaque fois.(?)
c -
J'ai une option, via le clavier où l'on peut changer le PHASE_INC pour des valeurs fixes.Faire que les deux générateurs, je reçois à nouveau correspondants (et stable) des fréquences à la sortie.C'est le haut / bas chose qui ruine tout.
S'il vous plaît,
quelqu'un peut me dire si je suis sur quelque chose de trop évident en ce qui concerne la DDS principe,
estimant que le problème apparaît seulement lorsque je change l'un d'eux si le haut ou vers le bas.
Aide vraiment apprécié.(Je voudrais pouvoir l'expliquer dans un texte plus court! - Désolé)
de son propre clavier et de la production par l'intermédiaire PORTB,
passant à un réseau R-2R.A 4 pôles filtre complète le circuit.Tant par une horloge de 4 MHz, et les deux marche EXACTEMENT le même logiciel.
Dans chaque producteur, suivant le principe de de DDS, une valeur, PHASE_INC (3-octets), est ajouté de façon répétitive à un PHASE_ACCUMULATOR (3-octets aussi).Les bits b6: b0 de l'accumulateur
du MSB sont utilisés pour lire un look up table sine avec des valeurs de 1 à 128 et b7 du MSB est de savoir à quel moment de calculer le complément.
Pour changer la fréquence, withs touches "FREQ-UP" et "FREQ_UP", je peux augmenter / diminuer la valeur unitaire PHASE_INC pas (oui, oui, une unité à la fois).
Tout fonctionne comme prévu, sauf une chose: Si je varier PHASE_INC dans l'un d'eux à tout axtent et puis essayer de la mettre à sa fréquence par l'augmentation / la diminution PHASE_INC, il est presque impossible obtenir la valeur originale, quoique très proche .
Juste au cas où,
s'il vous plaît noter:
a - Les deux générateurs, indépendamment vérifié révélée assez stable sur le long terme.Ils commencent par la même PHASE_INC valeur, ce qui leurs fréquences correspondent les uns les autres à 100% et rester comme cela éternellement.C'est la raison pour laquelle la commune d'horloge, et il fonctionne bien.
b - D'après la théorie,
en utilisant UNITAIRE pas, tôt ou tard, je devrais obtenir à nouveau la valeur initiale PHASE_INC où
j'ai commencé à partir, qui est la fréquence initiale (mathcing nouveau générateur de l'autre).Dans le logiciel, je les inclus suffisamment de retard pour rendre le changement unitaire de PHASE_INC lents assurer d'avoir un bon contrôle des changements.La simulation montre que PHASE_INC est augmenté / diminué d'une heure,
à chaque fois.(?)
c -
J'ai une option, via le clavier où l'on peut changer le PHASE_INC pour des valeurs fixes.Faire que les deux générateurs, je reçois à nouveau correspondants (et stable) des fréquences à la sortie.C'est le haut / bas chose qui ruine tout.
S'il vous plaît,
quelqu'un peut me dire si je suis sur quelque chose de trop évident en ce qui concerne la DDS principe,
estimant que le problème apparaît seulement lorsque je change l'un d'eux si le haut ou vers le bas.
Aide vraiment apprécié.(Je voudrais pouvoir l'expliquer dans un texte plus court! - Désolé)