Electronique > Réalisations > Générateur enveloppe 003 - [Pro]

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.

gene_enveloppe_003_graphe_001a gene_enveloppe_002_graphe_001c

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

gene_enveloppe_003

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

vca_008b_proto_001e vca_008b_proto_001i vca_008_proto_001b

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

gene_enveloppe_003_proto_001_graphe_001ab gene_enveloppe_003_proto_001_graphe_001cb

... et temps long (40 ms) de mise en et hors fonction :

gene_enveloppe_003_proto_001_graphe_001bb gene_enveloppe_003_proto_001_graphe_001db

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