Avant
propos :
Le
NE555 ayant fait ses preuves depuis
presque 40 ans, on lui trouve depuis
quelques années des oscillateurs
d'un nouveau genre très économiques
et bien plus performants. On les nomme "Silicon
oscillators"
et sont disponibles entre autres chez
Linear
Technology. Disponibles
essentiellement dans des boitiers
minuscules
tels que le boitier MSOP
à
8 broches (MS8),
leur fonctionnement repose essentiellement
sur un
oscillateur de type RC
couplé le plus souvent à
une PLL
(Phase Locked Loop).
Boitier
MSOP type MS8.
Cette
spécificité permet si
certaines conditions sont respectées
(bon découplage
de leurs broches d'alimentation) d'obtenir un signal
rectangulaire en
sortie dont la précision
en fréquence est légèrement
inférieure à 1%.
Autant dire que ces petites merveilles
peuvent aisément remplacer
les
oscillateurs
à quartz ou
à résonateurs
piézoélectriques
traditionnels et permettent même
d'envisager d'overclocker certains modèles
de microcontrôleur.
Ces
oscillateurs sont déclinés
différents modèles,
tels que ceux à fréquence
fixe,
ceux dont la fréquence
est ajustable via
une simple résistance
externe
ou en jouant sur un diviseur
programmable à trois niveaux.
Il existe également des modèles
à modulation
de largeur d'impulsion
(PWM) et bien d'autres encore.
Document
tiré de la notice "Silicon
Oscillators" de Linear Technology
Dans
cette
grande famille d'oscillateurs,
nous nous sommes
intéressés aux modèles
dont on peut contrôler la fréquence
du signal en sortie grâce
à un bus
de données de
type SPI
(Serial
Peripheral Interface) ou
I²C
(Inter
Integrated Circuit). Les
deux candidats retenus répondant
à nos attentes sont le LTC6903
(bus SPI) et le LTC6904
(bus (I²C) du fondeur de silicium
Linear
Technology.
Lot
de
LTABN
=
LTC6903
piloté en SPI.
Ces
oscillateurs à
fréquence variable
trouvent leurs applications dans différents
domaines
de l'électronique, comme par
exemple lors de tests sur l'accord
d'une antenne DCF à 77.5kHz,
pour générer une horloge
bien spécifique destinée
à des convertisseurs analogiques-numériques (sampling), lors de
test sur de circuits résonnants,
etc...
Bref,
la
platine que nous vous proposons permet
de gérer l'oscillateur sans avoir
recours à un ordinateur en totale
autonomie comme
nous allons le voir ci-après...
SPI
contre I²C :
Dans
ce projet, nous avons testé seulement
le modèle fonctionnant via un
bus de communication
I²C
de façon totalement arbitraire.
De
ce fait, notre modèle soudé méticuleusement
sur le côté cuivre
de notre platine est le LTC6904
qui porte la référence LTAES
sur son
boitier
comme sur la photo suivante :
Gros
plan sur le LTAES
= LTC6904
fonctionnant par
bus I²C soudé
sur le côté cuivre étamé
de notre platine.
Caractéristiques
de la platine oscillateur :
Alimentation de la platine comprise
entre +8V
et
+20V
DC.
Plage de fréquence de l'oscillateur
: de 1039Hz (minimum) à 68,03MHz (maximum).
Contrôle de la fréquence voulue
par un bouton poussoir au moyen de 5 gammes de fréquence :
-
Gamme 1k : de 1,039kHz à
9,9kHz -
Gamme 10k : de 10,0kHz à 99,9kHz
-
Gamme 100k : de 100kHz à 999kHz
-
Gamme 1MHz : de 1,0MHz à 9,9MHz
-
Gamme 10MHz : de 10MHz à 68MHz
Sélection de la fréquence
souhaitée par 4 boutons poussoirs : -
Incrémentation de la fréquence
pour un réglage rapide (F+R) - Décrémentation
de la fréquence pour un réglage
rapide (F-R) -
Incrémentation de la fréquence
pour un réglage lent (F+L) -
Décrémentation de la fréquence
pour un réglage lent (F-L)
Signal de sortie CLK ou (déphasé
de 180°) sélectionnable par
le poussoir référencé CNF.
Aspect
général de la platine oscillateur :
Encadré en rouge :
|
connecteur de sortie pour signal
rectangulaire CLK et .
|
Encadré en bleu :
|
6 poussoirs pour contrôle
du calibre, sorties actives
et fréquence. |
Encadré en vert :
|
buzzer piézo émettant un bip lors d'un
changement de calibre, etc.... |
Encadré en violet :
|
microcontrôleur de gestion
18F252 et son résonateur. |
Encadré en orange : |
alimentation classique délivrant
le 5V régulé. |
Encadré en gris : |
ajustable de réglage
du contraste de l'afficheur
LCD. |
Principe
de gestion du circuit LTC6904 :
Brochage
du LTC6904 :
Le
brochage du LTC6904
n'a rien de bien compliqué. Néanmoins,
il faudra veiller à relier l'entrée
OE
(Output Enable) au +5V
afin d'activer
les deux sorties CLK et .
La
broche SDA
et SCK
sont respectivement la broche DATA
et d'horloge
du bus de communication
I²C.
Deux
résistances de rappel au pull-up
seront nécessaires pour chacune
de ces broches, comme pour tout périphérique
répondant à la norme I²C.
La
broche ADR
(adressage) permet de placer sur
un même bus I²C
deux
exemplaires du LTC6904
sans que ceux-ci n'interfèrent
l'un sur l'autre. Dans le cadre de ce
projet et de façon purement arbitraire,
le logiciel a été écrit
en considérant la
broche ADR
comme reliée à la masse.
Les
broches VCC
et GND
sont respectivement l'alimentation en
+5V
et la masse.
Le constructeur recommande un découplage
de l'alimentation au
plus près du circuit intégré
avec l'aide de deux
condensateurs,
l'un de 10nF
et l'autre chimique de 1µF.
De la
stabilité de l'alimentation
dépendra la stabilité
en fréquence du signal rectangulaire
généré
en broche CLK et .
Un
soupçon d'équations :
Le
LTC6904
comme son homologue LTC6903 nécessitent
pour leur gestion de déterminer trois paramètres
: OCT,
DAC
et CNF.
Le
paramètre OCT
peut être déterminé
aussi bien par l'équation
donnée par le constructeur, ou
bien à partir de valeurs pré-calculées
en fonction de la plage de fréquence
considérée.
F
représente bien entendu la fréquence
du signal rectangulaire
souhaitée en sorties CLK
ou
pour déterminer le paramètre
OCT.
Tableau
des valeurs de
OCT en
fonction de la plage
de fréquence
considérée.
Dans
la cadre de notre projet, l'auteur du
programme a choisi la simplicité pour
ne pas avoir à calculer le logarithme décimal d'une
valeur au sein d'un microcontrôleur
PIC. De ce fait, le programme du 18F252 utilise le tableau ci-dessus afin
de déterminer la valeur de OCT en fonction de la fréquence souhaitée.
Le
paramètre DAC
quant à lui ne peut être
déterminé que par l'équation
donnée par le constructeur, tel
que :
Ici
ce fut légèrement plus
compliqué car nous avons été
obligés de travailler avec des valeurs sur 32 bits afin
d'effectuer le calcul de la puissance de 2, puis réaliser
le produit au sein de l'équation.
Bref, rien d'insurmontable pour
un ordinateur, mais beaucoup plus
délicat à mettre en oeuvre
dans un microcontrôleur.
Le
paramètre CNF
quant à lui, permet de choisir les broches de sorties
CLK ou
qui doivent délivrer le signal
rectangulaire.
Sachez
qu'il est préférable de
désactiver
la sortie
inutilisée
afin d'améliorer
la précision de l'oscillateur.
C'est la raison pour laquelle la configuration
CLK = ON et
= OFF est définie
par défaut dans
le programme
du microcontrôleur lors
de la mise sous tension de la platine.
Mise
en forme des valeurs de OCT, DAC et
CNF:
Lorsque
l'ensemble des valeurs de OCT, DAC et CNF sont déterminées,
il ne reste plus qu'à positionner
les valeurs selon les recommandations
du constructeur. Nous avons donc créé
deux octets de D0 à D7 puis de D8 à D15 comme sur le tableau suivant
:
Il
suffit enfin d'envoyer vers le LTC6904
les deux octets précédemment
mis en forme, via le bus I²C pour que les modifications
soient prises en compte par le circuit
de chez Linear Technology.
|