Electronique
> Réalisations
>
Amplificateur commandé en tension (VCA) 008b
Dernière mise à jour :
05/04/2015
Présentation
Le VCA proposé ici est dérivé de mon
VCA 008 à base de DS1802. Il fait appel à un
potentiomètre numérique MAX4510
de type log (courbe de variation adaptée à l'audio) et à un PIC
12F675 qui traduit une tension continue en une commande d'atténuation interprêtée
par le
potentiomètre.
La variation de la tension de commande comprise entre 0 V et +5 V
se
traduit par
une variation du taux d'atténuation du signal audio sur une plage de 0
dB à -62 dB,
avec un Mute "automatique" de -86 dB quand la tension de commande est
égale ou très proche de 0 V. Les changements de niveau se font sans
bruit (aucun clic) grâce au système de détection de passage par zéro
intégré au potentiomètre. Je n'ai pas mesuré la bande passante du
circuit mais selon le fabricant Maxim elle est censée couvrir la
plage 0 à 70 kHz. L'alimentation du montage
s'effectue sous une tension simple de +5 V. Pour un système alimenté
sous 3,3 V, il faut remplacer le MAX5410 par un MAX5408 (même
brochage, amusez-vous bien).
Schéma
Schéma plus simple que celui équipé du DS1802. Mais avec
de la bonne volonté, on peut le compliquer un peu. Au niveau du câblage
par exemple.
La section alimentation n'est pas représentée, mais je pense que vous savez où chercher ;-)
Fonctionnement général
Le
PIC "transforme" la tension de commande (0 V à +5 V) en commandes
logicielles qu'il envoie au potentiomètre numérique pour lui indiquer
quelle valeur d'atténuation il
doit
appliquer. Le MAX5410/MAX5408 est un potentiomètre "stéréo" doté de deux organes
de réglage indépendants avec un curseur (wiper), et il se contente de
deux octets (un octet
pour chacun
des deux curseurs). Comme la commande du potentiomètre se fait sur 5
bits et que l'acquisition de la tension de commande fait appel à un CAN
10 bits, on obtient une valeur "trop précise" dont on tronque les
cinq bits de poids faible, cette troncation s'effectue en
divisant par 32 la valeur lue en entrée du CAN. Ensuite, simple
transposition de la valeur tronquée en valeur d'atténuation, selon la
formule suivante
(valeur CAN comprise entre 0 et 1023) :
Valeur atténuation MAX5410 = 31 - (CAN / 32)
Quelques exemples :
- Si valeur CAN = 0 (tension de commande de 0 V), alors Att = 31 - (0 /
32) = -62 dB
- Si valeur CAN = 200 (tension de commande de +0,9 V), alors Att = 31 -
(200 / 32) = -48 dB
- Si valeur CAN = 840 (tension de commande de +4,1 V), alors Att = 31 -
(840 / 32) = -12 dB
- Si valeur CAN = 1023 (tension de commande de +5 V), alors Att = 31 -
(1023 / 32) = 0 dB
(à noter que 1023 / 32 = 31.9, je tronque et ne garde que la partie
entière)
Décryptage : la plage de la tension de commande qui est comprise entre
0 V et +5 V est divisée en 32 tranches (codage sur 5 bits, valeurs 0 à 31). L'écart
entre deux pas d'atténuation est de 2 dB et correspond donc à un écart de
tension de 156 mV (5 V / 32).
Tension
de commande
|
Valeur
CAN
|
Valeur MAX5410
|
Atténuation
|
+5,00 V
|
1023
|
0
|
0 dB
|
+4,84 V
|
990
|
1
|
-2 dB
|
+4,67 V
|
959
|
2
|
-4 dB
|
...
|
...
|
...
|
...
|
+0,32 V
|
95
|
30
|
-60 dB
|
+0,15 V
|
33
|
31
|
-62 dB
|
On remarque tout de suite que plus la tension de commande est
élevée et
plus le taux d'atténuation est
faible. En d'autres termes, l'amplitude du signal audio en sortie du
potentiomètre est plus élevée (moins atténuée devrait-on dire) si la
tension de commande est plus élevée. Obtenir l'effet inverse est
également possible. Le mute est enclenché par une commande à part, on
ne peut pas se contenter d'envoyer la valeur 32 au MAX5410. Cela
demande un peu plus de lecture dans le datasheet mais ce n'est pas
insurmontable, la preuve j'y arrive. A noter que les valeurs données
ci-avant sont valables pour un MAX5410 alimenté sous 5 V. Si vous
souhaitez utiliser un MAX5408 alimenté sous 3,3 V, pensez que la
tension de commande ne doit pas excéder 3,3 V (valeur pour
une atténuation nulle et niveau de sortie audio maximal).
Côté potentiomètre numérique
Contrairement au DS1802 qui offre un pas de variation de 1 dB, le
MAX5408 offre un pas de 2 dB. Pour un réglage de volume cela suffit,
même si à priori ce nombre de pas semble bien faible. Pour mon
générateur d'enveloppe programmable élaboré en parallèle, j'ai toutefois préféré utiliser le
DS1802 d'une part pour le pas de réglage plus précis, mais aussi à
cause du type de boîtier (je suis toujours plus à l'aise avec les
composants traversants).
Côté logiciel PIC
Au démarage, le logiciel effectue une
transition douce (soft start) entre le max d'atténuation (-62 dB) et la
valeur d'atténuation qui correspond à la tension de commande (-30 dB
avec tension de commande de 2,5 V, par exemple). Le logiciel effectue
ensuite une acquisition de la
tension de commande à un rythme de 10 fois par seconde. Si celle-ci a
changée par rapport à la valeur lue précédement, la valeur
d'atténuation du potentiomètre numérique est mise à jour. Le
temps mis pour transmettre les données au potentiomètre est de 180 us
et
la fréquence d'horloge du bus de données est de 100 kHz environ. Aucun
intérêt ici à accélerer ce rythme, qu'on pourrait multiplier par 10 si
on le souhaitait.
Alimentation
Pour mes tests, j'ai utilisé une alim 5 V commune
à
l'ensemble des circuits intégrés. Comme pour le VCA 008, j'ai été
confronté à niveau de bruit assez élevé en sortie du montage (1 à
2 mVcac, soit -60 dB par rapport à mon signal utile de 1 Vcac),
mais rien de surprenant ni d'alarmant vu le câblage du prototype.
Prototype
Réalisé
sur plaque sans soudure reliée à ma platine EasyPic7 avec cinq fils
volants (alim et commande trois fils). Pour les tests, j'ai
alimenté tous les circuits intégrés sous une unique tension d'alim de
+5 V. La
distribution de masse n'est pas des plus soignées mais le montage
fonctionne, malgré le surplus de bruit ramené par ce câblage de
fortune. Le rapport S/B (signal/bruit) peut être amélioré d'au moins 20
dB avec un câblage soigné et une alim propre, vous n'aurez pas de mal à
faire mieux que ce que j'ai fait là.
Pour ma maquette, la difficulté principale a été de "grossir" le
plan de câblage du
circuit intégré MAX5410, qui n'est pas des plus facile à
manipuler. Pour cela j'ai utilisé un
morceau de plaque d'expérimentation pré-percée au pas de 2,54 mm, et me
suis servi des petits brins d'un fil de cuivre souple pour assurer
les liaisons entre le composant CMS et les broches d'une barette
sécable (elles aussi espacées de 2,54 mm, ça simplifie les choses).
Pour faciliter la tâche de soudage des bouts de fil sur les broches
très rapprochées du potentiomètre numérique, j'ai tordu vers le haut
une broche sur deux. J'avais un peu peur de les casser mais au final
tout s'est bien passé. Il m'a tout de même fallu une bonne demi-heure
pour souder les 16 brins de cuivre et me forcer à me détendre. Pour les
tests, j'ai opéré de la même façon qu'avec mon
VCA 008 à base de DS1802 : un générateur BF (signal rectangulaire de 1 Vcac avec offset de 1 Vdc), un oscilloscope et quelques relevés.
Résultats conformes à ceux attendus. Mêmes relevés qu'avec le VCA 008,
la seule différence est le pas de réglage qui passe de 1 dB à 2 dB. Là
encore, à cause du bruit de fond, difficile de faire la différence
entre atténuation de -62 dB et mute à -86 dB.
Logiciel du PIC
Le logiciel compilé (*.hex) est disponible
dans l'archive suivante.
VCA
008b - PIC 12F675 - 05/04/2015
Si
vous souhaitez recevoir par la poste un PIC préprogrammé
et prêt à utiliser, merci de consulter la page
PIC - Sources.
Circuit imprimé
Non réalisé, vue 3D pour aperçu général.
Historique
05/04/2015
- Première mise à disposition.