jeudi 25 décembre 2014

PIC10F322 + CLC = triangulaire

J'aime beaucoup le PIC10F322 car je ne connais aucun autre MCU de cette catégorie qui possède autant de fonctionnalités. Voici un exemple des possibilités offertes par ce MCU . Dans ce démo je fais varié l'intensité d'une LED sans utiliser le moindre cycle CPU en utilisant la richesse des périphériques du PIC10F322. En l'occurrence les périphériques suivants sont utilisés.

  1. TIMER2
  2. PWM1
  3. NCO (Numerically Controlled Oscillator)
  4. CLC (Configurable Logic Cell)

Dans ce vidéo on voie la LED pulsée ainsi qu'a l'oscilloscpoe l'onde en sortie PWM1 (tracé bleu) ainsi que l'onde rectangulaire qui alimente la LED (Tracé en jaune).

On voie que le rapport cyclique du signal varie de façon continu selon une fonction triangulaire et pourtant si vous examiner le code source vous ne verrez aucune instruction pour modifier le rapport cyclique du PWM, on voie d'ailleurs à l'oscilloscope qu'il est fixe. En fait une fois les périphériques configurés le programme entre dans une boucle infinie vide.

Code source

programme prnicipal
code généré par CLC designer

Comment ça fonctionne

Ceci est possible grâce à la Cellule Logique Configurable (CLC). Cette cellule est simplement configurée comme un OU exclusif (XOR gate) qui reçoit en entrés 2 ondes carrées avec un rapport cyclique de 50% à une fréquence d'environ 3200 hertz. L'une de ces ondes est générée par PWM1 et l'autre par le NCO. à l'incrément du NCO est ajouté une valeur appelée NCO_OFFSET de sorte que la fréquence de celui-ci est légèrement différente de celle générée par PWM1. Puisque les fréquences sont différentes la phase des signaux glisse l'un par rapport à l'autre. La fonction XOR fait en sorte que la sortie n'est à 1 que lorsque les 2 signaux sont en opposition de phase.

En fait l'intensité de la LED est directement proportionnelle à la différence de phase entre les 2 signaux.

Elle est où l'onde triangulaire?

Pour ceux qui se demandent quel est le rapport avec une onde triangulaire voici une photo prise à l'oscilloscope en remplaçant la LED par ce filtre passe-basse:

On observe ceci à la sortie du filtre:
Mesuré avec les curseurs la fréquence de l'onde triangulaire est de 0,78 hertz. Pour voir plusieurs cycles de l'onde triangulaire J'ai du changer l'échelle de temps sur l'oscilloscope de sorte que les cycles du signal PWM (en bleu) sont confondus.

Conclusion

Il y a ce qu'il faut dans ce MCU pour fabriquer une circuit à verrouillage de phase (PLL). Voici un schéma simplifié d'un tel circuit.

Le VCO est un oscillateur dont la fréquence est contrôlée par un voltage (indiqué Vcont. sur le dessin). Ce type de circuit peut-être utilisé entre autre comme démodulateur FM ou encore pour générer une fréquence arbitraire à partir d'un fréquence de référence. Plusieurs MCU utilisent un PLL pour générer la fréquence qui contrôle le CPU. Dans ce type d'application il faut insérer un diviseur de fréquence entre la sortie du VCO et l'entrée du XOR. de sorte que le VCO fonctionne à une fréquence multiple de la référence.

Aucun commentaire:

Publier un commentaire

Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.