Article non terminé, volontairement
non
référencé dans les sommaires du
site
Présentation
Le SAB0600 qui permet de générer un gong à trois tons (Ding
Dung Dong) avec décroissance progressive du
volume et vu à la page générateur
gong 001
est difficile à trouver. N'y aurait-il pas moyen de lui trouver un
remplaçant plus moderne ? C'est la question que je me suis posée et à
laquelle je tenterai de répondre avec l'utilisation d'un
microcontrôleur PIC bon marché.
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 :
Un
oscillateur basse fréquence produit un signal d'horloge général dont la
fréquence peut être comprise entre 5 kHz et 40 kHz (ça peut être plus
large mais sans trop d'intérêt comme on le verra plus loin). Fixons par
exemple la fréquence de l'horloge de base à 13,2 kHz.
Trois circuit diviseurs vont recevoir l'un après l'autre
cette horloge de base, avec un recouvrement dans le temps.
- Le premier diviseur divise le signal reçu par 20, ce qui donne une
fréquence de note de 660 Hz (Mi4, Ding).
- Le second diviseur divise le signal reçu par 24, ce qui donne une
fréquence de note de 550 Hz (Do4, Dung).
- Le troisième diviseur divise le signal reçu par 30, ce qui donne une
fréquence de note de 440 Hz (La3, Dong).
Comme on peut le constater, la valeur de 13,2 kHz donnée à l'horloge de
base n'était pas liée au hasard ;-)
Trois
circuits atténuateur permettent de donner l'effet de décroissance à
chacune des notes produites. Dans le circuit SAB0600 original, cette
fonction est assurée par des générateurs d'enveloppe constitués par des
convertisseurs numériques analogique 4 bits, qui peuvent restituer 16
niveaux d'amplitude différents. Les paliers de décroissance ne
s'entendent que très peu quand les notes s'éteignent rapidement, mais
on les entend très nettement quand la vitesse de décroissance est
longue (fréquence de l'horloge de base réduite). La vidéo
YouTube que j'ai faite avec le SAB0600 en fonctionnement le
met très bien en évidence.
Voilà,
sachant cela, il nous faut produire ces trois notes avec une
décroissance aussi "naturelle" que possible.
Pensées premières...
Pour
quelle solution opter
? Générer 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 pars donc avec
l'idée de produire 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 en boîtier 8 broches me semblait sympa, autant garder la
forme d'origine du SAB0600. Un avec oscillateur interne c'est mieux, et
de préférence à 8 MHz. Pas cher c'est évident. Qu'on trouve facilement
: on ne peut parler que pour aujourd'hui, mais le code logiciel devrait
normalement pouvoir être porté sur un autre modèle "du futur" sans
problème. Mon choix s'est porté sur un 12F683.
Mes
premiers tests ont consisté à générer 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, mais ça n'a aucune
importance.
Schéma
Un petit PIC 12F683 et quelques résistances et condensateur.
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.
Echantillon sonore
Pour l'instant je n'obtiens pas le son désiré car la
méthode employé (variation rapport cyclique de 50% à 0%)
occasionne un changement de timbre trop marqué, et de plus on entend trop le signal PWM parasite en fond sonore.
Son produit par PIC 12F683 - Pour
l'instant 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 à s'en approcher.