Electronique > Réalisations > Générateurs > Générateur audio 016 - [Pro]

Dernière mise à jour : 17/06/2018

Présentation

Ce générateur BF dispose de deux sorties indépendantes qui permettent de délivrer un signal sinus, triangle ou carré de fréquence comprise entre 1 Hz et 999.999 kHz. Il a été conçu à l'origine pour des expériences pédagogiques en audio.

gene_audio_016_proto_002_graphe_001b 

Basé sur des générateurs numériques AD9833 (DDS, Direct Digital Synthesis) il peut être utilisé en autonome avec des boutons-poussoirs et un afficheur LCD, ou être piloté par USB pour jouer des séquences prédéfinies.

Avertissements

Ce générateur est loin d'être parfait, mais je le situe tout de même un cran au-dessus des ICL8038 et XR2206 ;)

Schéma

Le schéma qui suit n'est pas complet, il ne montre pas l'étage des deux sorties analogiques (filtres, amplis, réglage niveau et drivers ligne).

gene_audio_016

L'alimentation secteur non plus n'est pas montrée sur le schéma, c'est une classique 2 x 15 V (analogique) et +5 V (logique).

Principe de fonctionnement
Le générateur audio 016 s'appuie sur des générateurs de fonction numérique DDS (Direct Digital Synthesis) de type AD9833. A la mise sous tension, les modules AD9833 sont initialisés puis configurés pour délivrer un signal sinus de 1000 Hz. La fréquence, la phase et l'amplitude de chacune des deux voies peuvent être ajustées de façon indépendante avec des boutons-poussoirs. Le réglage du niveau de sortie est obtenu via des potentiomètres numériques additionnels, car l'amplitude du signal en sortie du AD9833 ne peut être ajustée. Le générateur dispose en outre d'un port USB pour modifier les divers paramètres en temps réel (et avec séquences automatiques). Cette liaison USB est facultative.

Modules DDS AD9833
Le circuit intégré AD9833 est un mignon petit circuit, dont la structure interne est rappelée ci-après à gauche (datasheet).

dds_ad9833_syno_001a dds_ad9833_module_001a

Il n'existe qu'en version CMS MSOP 10 broches, trop petit pour moi. Aussi ai-je utilisé des modules précâblés achetés à bas prix sur la toile (photo de droite ci-avant), dont l'avantage principal est qu'ils comportent déjà l'oscillateur requis pour cadencer le DDS (ici 25 MHz). C'est une source d'horloge de moins à prévoir, mais c'est aussi un inconvénient qui les empêche d'être synchronisés quand on veut en faire travailer plusieurs en même temps. Le AD9833 regroupe tout le nécessaire pour délivrer un signal selon le principe de la synthèse directe, il suffit de lui indiquer ce qu'il doit sortir, via des commandes transmises par un bus SPI. Il est ainsi possible de spécifier la fréquence, la phase et la forme du signal (sinus, triangle ou carré). A la mise sous tension, un reset est nécessaire. Après ce reset, la sortie délivre une tension continue égale à Vdd/2 (le CI travaille en monotension positive, il faut donc décaler le signal de sortie vers le haut pour conserver les "alternances négatives" du signal périodique).

Etage de sortie analogique
Schéma non publié
L'amplitude du signal en sortie du AD9833 est de 0,6 V environ pour les modes sinus et triangle, elle dépasse les 3 V pour le mode rectangulaire. Un signal d'amplitude 0,6 V mérite une légère amplification pour un usage un peu plus pro. Un filtrage assez sommaire est réalisé ici, car la fréquence maximale du signal de sortie a été fixée à 1 MHz. Le signal issu du AD9833 passe par un potentiomètre numérique avant d'aboutir à un étage de sortie qui apporte une amplification en tension et en courant. Comme je voulais disposer d'une amplitude de sortie d'au moins +12 dBu (8,7 Vpp), l'amplification apportée par l'étage de sortie a été fixée à +26 dB (rapport de 20x, soit 12 Vpp en sortie pour 0,6 Vpp en entrée). Le potentiomètre numérique choisi est un DS1802 qui offre une courbe d'atténuation selon une variation log par pas de 1 dB. Bien sûr d'autres potentiomètres numériques pourraient convenir, il suffirait d'adapter les commandes logicielles envoyées par le PIC. Le potentiomètre numérique peut aussi être remplacé par un potentiomètre traditionnel, mais dans ce cas bien sûr le niveau indiqué sur l'afficheur LCD ne sera plus pertinente et il faudra toujours s'assurer du niveau réel avec un mesureur audio ou oscilloscope. La sortie finale, composée d'un double AOP AD826AP et d'une paire de transistors de puissance complémentaires (BD131/BD132) se fait sous faible impédance (50 ohms). Le gain tient bon jusqu'à 1 MHz (-0,5 dB par rapport au reste de la bande) et le taux de distorsion qui est très faible dans la bande audio (inférieur à 0,001% de 20 Hz à 20 kHz) remonte assez vite après 100 kHz : environ 0,01% à 100 kHz et environ 1% à 1 MHz. Il s'agit là de valeurs honnêtes.

Pilotage par USB

Un logiciel spécifique a été développé pour piloter ce générateur 016 via son port USB (liaison HID, aucun pilote à installer).

audiogen016_main_001

Les fonctions principales du logiciel sont implémentées et fonctionnelles, reste à le compléter avec les séquences automatiques. Au stade actuel, les paramètres sont transmis dans les deux sens : un changement de valeur effectué en local (via les boutons-poussoirs) est systématiquement transmis au logiciel via la liaison USB, et les changement opérés depuis le logiciel sont affichés sur l'écran LCD du générateur.

Prototypes

Pour mes premiers essais avec le AD9833, j'ai utilisé un PIC 18F25K22, le tout alimenté en 3V3.

gene_audio_016_proto_001a gene_audio_016_proto_001b gene_audio_016_graphe_001a

Ensuite, quand le AD9833 a fait ce que j'attendais de lui (sortir les signaux à la bonne fréquence, entre autre), je suis passé au 18F4550 pour la version finale.

gene_audio_016_proto_002a gene_audio_016_proto_002b gene_audio_016_proto_002_graphe_001a

La copie d'écran oscillo ci-avant montre que le bus SPI véhicule un signal d'horloge "état haut au repos" (trace violette) et un une ligne de données "état bas au repos" (trace bleue). J'ai un peu joué sur les durées d'attente entre reset et initialisation des paramètres des AD9833, afin de voir si on pouvait obtenir un semblant de synchro entre les deux générateurs. 

 gene_audio_016_proto_002_graphe_001c gene_audio_016_proto_002_graphe_001dgene_audio_016_proto_002_graphe_001e

Oui, le synchronisme entre les deux générateurs peut être obtenu à la mise sous tension. Cela reste toutefois du bricolage car les deux ondes se décalent rapidement dans le temps (cycle de 20 secondes sur mon proto pour retomber à nouveau en phase). Ce à quoi on pouvait s'attendre puisque les sources d'horloge sont indépendantes, une seule source limiterait ce décalage progressif. L'amplitude mesurée des signaux sinus et triangle est voisine de 600 mV (584 mV précisément) alors que l'amplitude du signal carré est de 3,2 V (avec alim 3,3 V). Ci-après, trois copies d'écran montrant les signaux délivrés à des fréquences de 20 kHz, 100 kHz et 1 MHz (sortie directe AD9833, sans filtre).

gene_audio_016_proto_002_graphe_001f gene_audio_016_proto_002_graphe_001ggene_audio_016_proto_002_graphe_001h

Il est bien évident que ma procédure de tests n'est pas pro. Plaque d'expérimentation sans soudure, fils volants et "queue de cochon" pour la masse de la sonde oscillo, rien de tel pour abimer la forme des signaux de fréquence élevée visualisés. Mais cela donne toutefois une bonne idée, notamment celle que ce générateur est adapté à des expériences amusantes dans la bande audio ;)

Logiciel du PIC

Le logiciel mis à disposition gratuite est une version limitée (LE, voir avertissements en début d'article);
AudioGen016 - 18F4550 - LE (16/06/2018)
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é. 

Historique

17/06/2018
- Première mise à disposition.