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

Dernière mise à jour : 24/04/2016

Présentation

Générateur d'enveloppe pour application audio, avec 16 pas de réglage.

gene_enveloppe_002_graphe_001b gene_enveloppe_002_graphe_001a

Ce générateur d'enveloppe se permet de faire un petit mélange d'analogique et de numérique. Il met à contribution un PIC 18F45K22, des multiplexeurs analogiques CD4051 (sélecteur 1 parmi 8) et un potentiomètre numérique MCP41010 (ou autres). Le déclenchement de l'enveloppe est assuré par une impulsion positive (Trigger) et il est possible de mémoriser 16 courbes d'enveloppe différentes. Chaque courbe dispose de 16 pas de réglage, mais entre chaque pas à lieu une interpolation linéaire qui en ajoute 15, ce qui équivaut à une courbe d'enveloppe sur 256 pas. Le passage d'un pas à un autre se fait ainsi en douceur, même si l'écart d'amplitude réglé entre deux pas est élevé.

Schéma

Quatre circuits intégrés et un clavier à 16 touches se partagent la plus grande part du schéma. La zone vide en haut à gauche est bien sûr prévue pour une extension future. Elle peut aussi servir pour apposer une signature (la votre de préférence).

gene_enveloppe_002

Principe général
Le signal audio que l'on doit "envelopper" passe dans un potentiomètre numérique qui est commandé par un PIC. La forme de l'enveloppe est définie par la position de 16 potentiomètres qui délivrent une tension continue proportionnelle à la position de leur curseur. La tension issue des potentiomètres est préalablement lue par le PIC via des multiplexeurs analogiques et l'entrée d'un convertisseur analogique/numérique (ADC en anglais, CAN en français), et les valeurs acquises sont enregistrées dans une des 16 zones mémoire réservées à cet usage dans le PIC. L'appui sur une des 16 touches du clavier provoque la lecture et l'enregistrement en mémoire EPROM des tensions issus des potentiomètres. L'envoi d'une impulsion sur l'entrée Trigger du montage (pression du bouton-poussoir SW17 ou envoi d'une impulsion +5 V) provoque une succession de changements de valeur du potentiomètre numérique et donc de l'amplitude du signal audio qu'on lui applique à cet instant précis. La vitesse de changement des pas, et donc la durée de l'enveloppe, est déterminée par la position du curseur du  potentiomètre RV17.

Utilité d'un PIC 40 broches avec des multiplexeurs analogiques ?
Il faut parfois faire un choix, j'ai fait celui-là. J'ai bien essayé d'utiliser 17 broches configurées en entrées analogiques pour éviter l'emploi des CD4051, mais je me suis heurté à un problème que je n'ai pas encore su résoudre : toutes les entrées lues de façon individuelle fonctionnaient très bien, mais en mode alterné et après un balayage des 16 premières entrées, un blocage survenait sur les entrées du port D (la lecture ADC se faisait bien pour les 13 premières entrées mais plus pour les 3 dernières). Je me suis ainsi résolu à utiliser des multiplexeurs analogiques externes, ce qui présente l'avantage de libérer des broches du PIC. Point non négligeable s'il me passait par la tête l'idée d'ajouter un écran LCD ou d'utiliser un PIC avec moins de broches...

Lecture des tensions issues des potentiomètres
Les 16 tensions qui déterminent la forme de l'enveloppe sont lues les unes après les autres. Les 8 premières tensions sont orientées vers la broche RA0/AN0 du PIC grâce au premier multiplexeur U2, les 8 suivantes sont orientées vers la broche RA1/AN1 du PIC grâce au second multiplexeur U3. La sélection de la tension à lire s'effectue de la même façon pour les deux groupes de 8 tensions, via les broches de commande A, B, C et INH des multiplexeurs CD4051. Notez que les broches de sélection des entrées A à C des deux multiplexeurs sont reliées ensemble, alors que les broches INH (Inhibition, désactivation) restent indépendantes et permettent la "mise en circuit" d'un seul multiplexeur à la fois (on peut dire qu'on utilise ces broches INH comme des broches "CS", Chip Select). Chaque tension acquise est stockée en mémoire dans un tableau d'octets.

Elaboration de l'enveloppe
La construction de l'enveloppe est simple. Elle consiste à reprendre une à une les valeurs de tensions acquises et à les envoyer à la queue-leu-leu au potentiomètre numérique via une liaison SPI. Comme la différence de tension entre deux pas peut être élevée, j'ai ajouté une interpolation qui consiste à rendre plus souple le passage d'un pas à un autre. Ce n'est pas indispensable mais le résultat sonore est moins brutal sur de brusques variations de pas. Au final, on dispose d'une succession de 256 commandes envoyées en série au potentiomètre numérique MCP41010.

Prototype

Essai de plusieurs potentiomètres numériques 10 kO : MCP41010, MCP4231-103, DS1867-10, MAX5413, MAX5481, MAX5408/5410, DS1802. Les copies d'écran qui suivent sont obtenues avec les mêmes réglages de potentiomètres de dessin de l'enveloppe (les lignes notées CS2 sont en fait reliées à CS0).

Avec MCP41010 :

gene_enveloppe_002b_graph_mcp41010_001a gene_enveloppe_002b_digpot_mcp41010

Avec MCP4231 :

gene_enveloppe_002b_graph_mcp4231_001a gene_enveloppe_002b_digpot_mcp4231

Avec DS1867 (niveau de sortie plus faible et courbe plus "tassée", tension de -5 V appliquée sur la broche Vb) :

gene_enveloppe_002b_graph_ds1867_001a gene_enveloppe_002b_digpot_ds1867

Avec MAX5413 :

gene_enveloppe_002b_graph_max5413_001a gene_enveloppe_002b_digpot_max5413

Avec MAX5481 :

gene_enveloppe_002b_graph_max5481_001a gene_enveloppe_002b_digpot_max5481

Avec les potentiomètres standards tels que le MCP41010, je n'ai pas réussi à avoir mieux que 46 dB d'atténuation quand le pot numérique est en position minimale, par rapport à la valeur de (quasiment) 0 dB d'atténuation quand il est en position maximale. J'ai essayé d'avoir une atténuation plus poussée en ajoutant un Mute (transistor MOSFET style BS170) entre sortie et masse, activé en dehors de la période d'enveloppe, mais le signal audio se trouve un peu distordu en sortie (avec une alim symétrique je pourrais avoir mieux plus facilement, mais je veux rester sur une alim simple). J'ai également essayé avec une porte logique CD4066, mais la résistance On à l'état passant est trop élevée et on ne gagne pas grand chose. Bien sûr, la solution du relais électro-mécanique (résistance contact très faible) est idéale d'un point de vue atténuation, mais cet élément électro-mécanique n'est pas vraiment "compatible" avec le reste du montage. Je pourrais éventuellement utiliser un relais statique de RdsOn très faible, ou encore une association de deux portes analogiques configurées en série-parallèle. Autre essai réalisé : deux pots num MCP41100 (100 kO) + MCP41010 (10 kO) en configuration série/parallèle, qui a permis de pousser l'atténuation max à 68 dB, ce qui est mieux mais pas encore suffisant pour moi. Les tests avec MCP4231 donnent les meilleurs résultats en terme d'atténuation, il reste à peine 100 uV de signal en sortie du pot avec 1 V à l'entrée, quand la valeur spécifiée est de 0 (rapport de 10000, soit 80 dB d'écart). Il faut dire qu'avec ce potentiomètre, on peut déconnecter les broches en interne, via commande appropriée du registre TCON. Les derniers essais ont porté sur des potentiomètres numériques avec fonction Mute et détection de passage par zéro du signal audio pour éviter les clics lors des changements de niveau. Avec le MAX5408/MAX5410, le fonctionnement est excellent, on arrive bien aux 90 dB d'atténuation ! Mais circuits en CMS et approvisionnement difficile. Le DS1802 me donne également entière satisfaction, premiers tests réalisés avec mon VCA 008 et tests suivants réalisés avec mon générateur d'enveloppe 003. Si je trouve le temps (et des échantillons car je ne peux tout de même pas acheter tous les composants de la planète) je testerai aussi les DS1881 et LM1972.

Logiciel du PIC

Demande pro, logiciel non disponible.

Circuit imprimé

Non réalisé.

Historique

24/04/2016
- Première mise à disposition