Dernière mise à jour :
24/04/2016
Présentation
Le montage présenté ici est un système on/off
audio progressif pour deux sources stéréo, avec temps de montée et de descente
ajustable, selon une courbe lin ou log. Je l'ai appelé générateur
d'enveloppe car il peut aussi servir à délivrer un signal audio selon
une courbe précise.
Tout comme mon
générateur d'enveloppe 002,
celui qui est décrit ici fait usage de
potentiomètres numériques. En plus des courbes de descente et de
montée
préprogrammées et non modifiables par l'utilisateur, il est possible de
programmer des courbes "utilisateur" quelconques de descente et de
montée. Les potentiomètres
numériques mis à contribution sont des DS1802, eux-mêmes pilotés par un PIC
18F45K22.
Le
déclenchement des mises en/hors service des signaux audio est assuré
par deux broches de commande séparées. La durée des temps de montée et
de descente ou des
enveloppes est ajustable de 2 ms à 40
ms par le biais de potentiomètres. Le principe de fonctionnement de cet
appareil est simple : on dispose de deux entrées/sorties audio stéréo
et de deux entrées logiques de commande. Le signal audio stéréo n°1 est
activé quand le signal de commande n°1 est à l'état haut, et est
désactivé quand ce même signal de commande n°1 est à l'état bas. Il en
va de même pour le signal audio stéréo n°2 qui est commandé par le
signal logique n°2. Les deux commandes peuvent être totalement séparées
dans le temps, ou se chevaucher pour créer des fondus enchaînés.
Schéma
Trois circuits intégrés composent le coeur du montage et assurent
l'ensemble des fonctions (partie supérieure du schéma), deux autres
permettent de s'adapter au monde merveilleux de l'audio
alimenté sous une source de tension unique (partie inférieure du
schéma).
Principe général
Chaque signal audio stéréo que l'on doit
activer ou désactiver (ou "envelopper") passe dans un
potentiomètre numérique qui lui-même est commandé par le PIC. La
forme
de
l'enveloppe de fade in ou de fade out (lin ou log) est définie par une
table de valeur stockée
dans la mémoire du PIC. Comme on peut choisir une courbe log ou lin
pour la montée et une courbe lin ou log pour la descente, il y a quatre
tables
en tout. Quand le signal logique de commande (TTL) lié à la source
audio change d'état, le PIC envoie une succession de commandes de
changement de
volume au potentiomètre numérique via une liaison SPI, ces commandes
correspondent aux valeurs stockées dans les tables. Dans le principe
cela est simple... tout du moins pour piloter un seul potentiomètre à
la fois. Dans la pratique et pour permettre des fondus enchaînés
(commande simultanée de deux potentiomètres stéréo) sur des périodes aussi
courtes que 2 ms, il a fallu peaufiner le logiciel.
Envoi des commandes au potentiomètre numérique
Etant donnée la durée minimale désirée de la courbe d'enveloppe (2 ms)
et le nombre de pas à transmettre (64), le rythme d'envoi des données
sur le bus SPI doit être très élevé. D'un point de vue purement
théorique, l'envoi de chaque commande de volume ne devrait pas prendre
plus de 31 us (2 ms / 64). C'est chose faite ici puisque la durée
transmission des deux octets de
chaque commande est de 8 us environ (2,3 us par octet + temps requis
pour inversion des bits LSB/MSB avant transmission sur bus SPI), pour une
fréquence d'horloge du bus de donnée de 4 MHz (période 250 ns). Le
DS1802 accepte de travailler avec une vitesse d'horloge de 10 MHz mais
je n'ai pas cherché à atteindre cette vitesse. La régularité de temps
entre chaque commande envoyée aux potentiomètres numériques est assurée
par l'emploi d'un timer cadencé à 30 us. Lors de fondus enchaînés, il
faut pouvoir envoyer quatres octets sur le bus SPI dans un temps
inférieur à 30 us. Je peux maintenant dire que c'est faisable, mais je
me suis tout de même bien amusé pour y parvenir, sachant que le PIC est
cadencé à 64 MHz !
Types d'enveloppe
Trois
courbes sont préprogrammées pour la montée (activation du signal audio,
mise à ON) et la descente (coupure du signal audio, mise à OFF). Chacune opère sur
64 points.
- Courbe Lin
- Courbe Log
- Courbe Exp
Les courbes sont "identiques" pour la montée et la
descente, hormis bien sûr leur sens d'évolution.
Interface d'entrée/sortie analogique
Le potentiomètre numérique
DS1802 s'alimente sous une tension simple de +5 V et s'accomode
mal de signaux analogiques qui comporte des alternances négatives.
C'est pourquoi un circuit d'offset (partie inférieure du schéma) est ajouté aussi bien à
l'entrée qu'à la sortie. Cet étage est composé de résistances montées
en classiques ponts diviseurs pour obtenir une référence de tension
fixe de +2,5 V à partir de la tension d'alim +5 V, on peut parler de "masse virtuelle". Les signaux audio
évoluent ainsi autour d'une tension continue fixe de +2,5 V et non plus
autour du 0 V de référence de la masse. Pour le coup, on est obligé
d'ajouter des condensateurs de liaison pour stopper ces tensions
continues non nécessaires aux équipements qui précèdent et qui suivent. Les
deux AOP doubles U4 et U5 (MAX4167EPA qu'on peut remplacer par des
MCP602) offrent une sortie basse impédance et "isolent" les DS1802 du
monde extérieur. J'ai adopté ce même type de montage dans mon
VCA 008
où j'ai utilisé un AOP double de type MCP602. Si les signaux analogique
appliqués au DS1802 comportent déjà une composante continue et que les
crêtes min et max (autour de cette composante continue) ne dépassent
jamais les bornes d'alimentation (0 V et +5 V), et que l'impédance
d'entrée de l'appareil qui fait suite est d'au moins 47 kO, alors
cet étage peut éventuellement être supprimé. Je conseille
toutefois de conserver l'étage d'adaptation pour un usage "universel et
sans risque".
Prototype
Réalisé sur plaque sans soudure et
platine EasyPic 7. Les
essais ont porté sur des potentiomètres numériques DS1802 et MAX5410,
tous deux possèdent une fonction Mute
et une fonction de détection de passage par zéro du signal audio pour
éviter les clics
lors des changements de niveau. Avec ces deux circuits le
fonctionnement est excellent, on arrive bien aux 80-90 dB d'atténuation
(selon soin apporté au câblage) en réglage de volume minimal (Mute actif).
Mais le MAX5410 existe uniquement en CMS tout riquiki, ce qui ne
simplifie pas sa mise en oeuvre par le débutant.
Le DS1802 me donne également entière satisfaction, je l'ai utilisé pour la première fois dans mon
VCA
008.
J'ai finalement retenu le DS1802 (plus cher) pour sa plus grande
facilité de mise en oeuvre
ainsi que pour son nombre plus élevé de pas de réglage (63 contre 31
pour le
MAX5410). Mais le projet a tout de même été développé pour pouvoir
piloter les deux références de potentiomètre (DS1802 et MAX5410).
Les
graphes suivants montrent le prototype en action, source audio de
test 3 kHz, avec temps court (2 ms) de mise en et hors fonction...
... et temps long (40 ms) de mise en et hors fonction :
Pas mal de bruit sur la ligne, ce qui est normal vu qu'avec mon prototype le +5 V de
la section numérique servait aussi de référence de point milieu pour la
partie analogique. A ne pas faire sur circuit final, bien évidement !
Logiciel du PIC
Demande pro, logiciel non disponible en libre accès.
Circuit imprimé
Non réalisé.
Historique
24/04/2016
- Première mise à disposition