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.

vca_007_pcb_3d_a

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...

vca_007

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 !

vca_007_proto_001a vca_007_proto_001b

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)

vca_007_proto_001c vca_007_proto_001d vca_007_proto_001e

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.