Electronique > Réalisations > Générateurs > Générateur Gong 002

Dernière mise à jour : 20/09/2015

Présentation

Le circuit intégré SAB0600, qui n'est pas vraiment récent, permet de réaliser facilement un gong à trois tons (Ding Dung Dong) avec une décroissance progressive du volume (voir page générateur gong 001). Ce circuit est difficile à trouver de nos jours et je me suis demandé s'il n'y avait pas un moyen de le "remplacer" par un composant plus moderne. Un PIC, par exemple...

gene_gong_002c_pcb_3d_a

Comme je ne suis pas très doué, j'ai essayé plusieurs méthodes et plusieurs montages. Le dernier - qui malheureusement est le plus "complexe" - est celui qui donne le résultat sonore le plus satisfaisant.

Principe de fonctionnement

Avant de penser clônage, il faut déjà savoir quoi clôner. Le SAB0600 comporte une circuiterie logique interne qui fonctionne ainsi :
Voilà, sachant cela, il nous faut produire ces trois notes avec une décroissance aussi "naturelle" que possible. Et je vais vous avouer un secret, je n'ai pas toujours respecté les fréquences énoncées ci-avant. Mais après tout quelle importance puisque le SAB0600 ne le fait pas non plus systématiquement ! L'important est bien de respecter les intervales entre tons, non ?

Pensées premières...

Pour quelle solution opter ? Produire les trois notes de base avec un PIC n'est pas insurmontable, mais il faut aussi les faire décroitre. Pour cela deux solutions : soit attribuer les trois signaux générés à des broches séparées et les mélanger ensuite, soit faire le mélange en interne, et n'utiliser au final qu'une seule broche de sortie. L'exercice de mélange interne me plait bien car il me semble à priori moins simple. Je suis donc parti avec l'idée de délivrer un signal PWM qui contient toutes les notes décroissantes, avec tout de même un petit filtre passe-bas pour ne pas être trop embêté par la fréquence même du signal PWM qui transporte tout le monde. Dans un premier temps j'ai cherché quel type de PIC utiliser. Un circuit en boîtier à 8 broches me semblait sympa, autant garder la forme d'origine du SAB0600. Un circuit avec oscillateur interne c'est mieux, et de préférence à 8 MHz, voire plus (32 MHz n'est plus du luxe). Et s'il n'est pas cher, on a tout compris. Un circuit qu'on trouve facilement : on ne peut pas dire de quoi sera fait demain, mais le code logiciel devrait normalement pouvoir être adapté à un autre modèle "du futur" sans problème. Mon choix s'est d'abord porté sur un 12F683. Mes premiers tests ont consisté à produire les trois notes de base à partir de l'oscillateur interne 8 MHz. Sans les mélanger de façon logicielle et en les sortant sur trois broches séparées pour les mixer à l'aide de simples résistances de 47 kO, après filtrage passe-bas sommaire avec un couple 1 kO / 100 nF pour chaque sortie. En faisant comme ça et avec des taux de division d'un signal obtenu avec interruption Timer0 avec préchargement à $F0, j'obtiens des fréquences de sortie plus basses que celles données en exemple ci-avant (sans conséquence grave). 

Schéma 001 - avec PIC 12F683

Un petit PIC 12F683, quelques résistances et quelques condensateurs.

gene_gong_002
Schéma non définitif avec sorties séparées

La première note sort sur la broche GP0 (Out_1) et est sommairement filtrée par le réseau R1/C1, la seconde note sort sur la broche GP4 (Out_2) et est filtrée par le réseau R2/C2 et en toute logique la troisième note sort sur la broche GP5 (Out_3) pour être filtrée par R3/C3. La sommation des trois notes est réalisée grâce aux trois résistances R4 à R6. La sortie est représentée sous forme de HP, mais soyez assurés que si on branche directement un HP à cet endroit on n'entendra pas grand chose.

Schéma 002b - avec PIC 12F683 (deuxième version) et 16F1705

Même schéma que précédement mais avec code légèrement différent, sans intérêt. Essayé également avec un 16F1705 mais là encore, pas mieux.

Schéma 002c - avec PIC 12F1822

Même principe de base, on délivre 3 tonalités avec les mêmes intervales que précédement, mais avec cette fois un petit circuit d'enveloppe qui donne un semblant de décroissance après délivrance de la troisième tonalité.

gene_gong_002c

Au démarrage, la broche RA4 du PIC est placée à l'état logique bas, ce qui provoque la saturation du transistor Q3. Ce dernier étant saturé, le condensateur C2 est court-circuité et le transistor Q1 délivre sur sur émetteur une tension proche de +5 V (montage en collecteur commun / suiveur de tension). Quand la troisième tonalité est délivrée (sur la broche RA2), la sortie RA4 est placée à l'état haut ce qui bloque Q3. Le condensateur C2 se charge alors et on observe une chute de tension progressive (et exponentielle) sur la base de Q1, chute de tension qui se répercute sur l'émetteur de Q1. Le haut-parleur HP1 voit ainsi à ses borne un mélange de signaux rectangulaire qui baisse progressivement en amplitude, jusqu'à 0 V. Le résultat sonore obtenu par cette astuce est proche du son obtenu avec le SAB0600, mais ce n'est pas encore exactement ce que je veux.

Schéma 002d - avec PIC 16F628A

Résultat sonore plus convaincant, mais au prix d'un nombre de composants nettement plus élevé.

gene_gong_002d

Dans ce montage, le PIC se contente de délivrer les tonalités, les autres composants se chargent de leur décroissance. Comme le PIC 12F1822 à 8 broches ne comporte pas assez de lignes d'E/S pouvant être configurées en sortie, je me suis rabattu sur un bon vieux 16F628A. Trois de ses broches délivrent les trois tons (OutA, OutB et OutC), tandis que trois autres (DecA, DecB et DecC) commandent les circuits d'enveloppe qui provoquent la décroissance progressive du volume sonore. Je me suis rendu compte, tout à fait par hasard, qu'on pouvait adopter d'autres facteurs de divisions pour aboutir aux mêmes intervales :
- division par 10 au lieu de 20
- division par 12 au lieu de 24
- division par 15 au lieu de 30
Cela permet de multiplier par deux l'intervale de temps entre deux interruptions du Timer du PIC et de laisser plus de temps libre au processeur.

Echantillons sonores

Je n'obtiens pas le son désiré avec le PIC 12F683 car la méthode employé (variation du rapport cyclique de 50% à 0%) occasionne dans le temps un changement de timbre trop marqué (normal, les variations de rapport cyclique occasionnent une modification du contenu spectral).

Son produit par le montage avec PIC 12F683 - Ne me convient pas.

Si je n'utilise pas de signal PWM mais seulement les trois notes de base (les unes après les autres, avec ou sans chevauchement), pas de signal parasite en fond et pas de décroissance du tout. Mais ça commence à se rapprocher du son du SAB0600 :

Son produit par le montage avec PIC 12F1822 - Mieux mais pas "parfait".

On peut, j'en suis sûr, faire beaucoup mieux...

Son produit par le montage avec PIC 16F628A - Pas trop mal, non ?.

Bis repetita : on peut, j'en suis sûr, faire encore mieux...

Logiciel du PIC

Programmes source et fichiers compilés dans l'archive zip ci-après.
Gene_gong_002 - (20/09/2015)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit(s) imprimé(s)

Non réalisé(s).

Historique

20/09/2015
- Première mise à disposition