Electronique
> Réalisations
>
Amplificateur commandé en tension (VCA) 007
Dernière mise à jour :
28/09/2014
Présentation
VCA à base de PIC 12F675 et de potentiomètre numérique MCP41010 dont la
position du "curseur" est commandée par une
tension.
Il
s'agit là plus d'un montage d'expérimentation que d'une solution
définitive, mais qui ma foi pourrait trouver refuge dans nombre
d'applications. La
commande en tension est initialement prévue pour couvrir une plage de 0
V (atténuation de -46 dB) à +5 V (gain de 0 dB) mais
cette
plage pourrait éventuellement être modifiée. L'alimentation du montage
s'effectue avec une tension simple de +5 V. Voir aussi mon
VCA 008 à base de PIC 12F675 et potentiomètre numérique DS1802, plus performant et mieux adapté à l'audio.
Schéma
Ce schéma est bien curieux pour un VCA, je le reconnais...
Si
on exclue les composants dédiés à la régulation de l'alimentation, on
ne compte que... deux composants pour le VCA à proprement parler ! Un
PIC 12F675 et un potentiomètre numérique MCP41010, le compte y est !
Fonctionnement général
Le
PIC effectue une simple conversion "tension analogique vers commande
SPI", et le potentiomètre numérique effectue une conversion "commande
SPI vers position curseur". Pas plus compliqué !
Acquisition analogique
Le
PIC effectue à intervales réguliers, un échantillonnage et
une acquisition de la tension présente sur la broche GP0/AN0
(cette tension ne doit surtout pas excéder 5 V ni être négative sous
peine de destruction du PIC - ajouter une résistance et série et une
diode zener de 5V1 en parallèle le cas échéant). La valeur numérisée
est ensuite transmise sous forme de commande SPI sur les broches GP1
(ligne d'horloge CLK ou SCK pourquoi pas) et GP2 (ligne de données
MOSI, Master Out Slave Input). La valeur envoyée est comprise entre 0
($00) et 255 ($FF) et tient donc sur un seul octet.
Modification de l'amplitude
Le
signal BF dont on souhaite ajuster l'amplitude arrive sur la broche PA
(broche "haute") du potentiomètre MCP41010, et ressort plus ou moins
atténué sur la broche PW (curseur). C'est l'usage le plus simple qu'on
peut faire du potentiomètre, une autre méthode consiste à l'inclure
dans un circuit électronique doté d'un AOP (pot dans la boucle de
contre réaction pour ajuster le gain ou l'atténuation de façon
programmable).
Nota
: le potentiomètre numérique MCP41010 est un modèle 10 kO, il existe
ausi en version 50 kO et 100 kO. Sa bande passante est de 1 MHz et le
temps de commutation d'une valeur à une autre est de 2 us. A noter que
contrairement au DS1882 de Maxim, le MCP41010 ne possède pas de circuit
de détection de passage au zéro et qu'on peut donc entendre un petit
bruit lors de la commutation d'un pas à un autre (il faut préciser que
le DS1882 est vraiment prévu pour des applications audio).
Le curseur PW se retrouve en
PB quand la valeur reçue est 0 ($00) et se retrouve en PA
quand la
valeur reçue est 255 ($FF). Entre les deux, on retrouve 254 pas
intermédiaires. Le potentiomètre est de type linéaire, ce qui signifie
qu'avec une valeur envoyée de 127 (curseur PW au centre et
donc
pile entre PA et PB), le signal audio sera atténué de moitié, soit -6
dB en tension. Pour une évolution log, plusieurs solutions :
- soit convertir la tension de commande en une tension log;
- soit utiliser un potentiomètre numérique de type log;
- soit traiter la tension acquise par le PIC et lui faire suivre une
évolution log.
Laquelle préférez-vous ?
Pas d'AOP dans tout ça ?
On
peut bien sûr inclure le potentiomètre numérique dans un montage
amplificateur/atténuateur à base d'AOP, mais ce type de configuration
convient mieux pour un montage de type atténuation 1:10 à gain 10:1
(rapport de 100, soit 40 dB). Je n'ai pas essayé car pas de besoin
précis en ce sens.
Prototype
Réalisé
avec ma platine EasyPic7 et une petite plaque sans soudure. Je précise
que je n'ai pas suivi mon schéma pour la partie alimentation, les deux
circuits intégrés ont été alimentés par un +5 V commun issue de la
platine EasyPic. Chose que vous pouvez faire aussi !
En
appliquant un signal carré 2 kHz d'amplitude 0,6 Vcac à
l'entrée du
potentiomètre numérique, et en appliquant une tension de commande de 0
V à +5 V avec un potentiomètre linéaire (pot de commande),
j'ai
relevé les amplitudes suivantes en sortie du potentiomètre numérique :
- pot de commande à 0% (0 V) : signal de sortie
0,003 Vcac, soit un rapport de 200 (-46 dB)
- pot de commande à 25% (+1,25 V) : signal de sortie 0,15
Vcac, soit un rapport de 4 (-12 dB)
- pot de commande à 50% (+2,5 V) : signal de sortie 0,30
Vcac, soit un rapport de 2,02 (-6 dB)
- pot de commande à 75% (+3,75 V) : signal de sortie 0,44
Vcac, soit un rapport de 1,35 (-2,6 dB)
- pot de commande à 100% (+5,0 V) : signal de sortie 0,59
Vcac, soit un rapport de 1,01 (-0,1 dB)
Il
apparait clairement (et c'est sans surprise) que la plage de réglage
n'est pas très pratique à l'usage. Si maintenant le potentiomètre qui
sert à appliquer la tension de commande est un modèle Log, voici ce
qu'on obtient :
- pot de commande à 0% (0 V) : signal de sortie
0,003 Vcac, soit un rapport de 200 (-46 dB)
- pot de commande à 25% (+1,25 V) : signal de sortie 0,04
Vcac, soit un rapport de 15 (-23 dB)
- pot de commande à 50% (+2,5 V) : signal de sortie 0,09
Vcac, soit un rapport de 6,6 (-16 dB)
- pot de commande à 75% (+3,75 V) : signal de sortie 0,18
Vcac, soit un rapport de 3,3 (-10 dB)
- pot de commande à 100% (+5,0 V) : signal de sortie 0,59
Vcac, soit un rapport de 1,01 (-0,1 dB)
Ah ! le réglage est nettement plus confortable comme ça !
Plage d'atténuation plus grande ?
Les
46 dB de la plage de réglage peuvent se révéler insuffisants dans
certains
cas. Cette "faible" valeur est en partie due au fait que la résistance
minimale du curseur du potentiomètre numérique est comprise entre 50 et
100 ohms (pour la version
10 kO et pour une tension d'alim de 5 V), et que sa liaison n'est donc
pas tout à fait directe avec l'extrémité du réseau de résistances qui
composent le potentiomètre. Une solution pour augmenter cette plage
consiste à utiliser deux potentiomètres numériques câblés en
série/parallèle. Les lignes CLOCK et DATA des deux potentiomètres
seraient alors reliées ensemble et la commande du second potentiomètre
se ferait via
une ligne additionnelle CS qui monopoliserait la broche GP5 du PIC.
Perso, même si cette solution peut fonctionner, je ne la trouve pas
très élégante.
Logiciel du PIC
Le logiciel compilé (*.hex) est disponible
dans l'archive suivante.
VCA
007 - PIC 12F675 - 28/09/2014
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
28/09/2014
- Première mise à disposition.