Dernière mise à jour :
30/07/2023
Présentation
Le décodeur de tonalité décrit ici est une version évoluée du
décodeur
tonalité 003
et possède plusieurs réglages. Celui décrit ici fait appel
à un PIC 24F16KA101 pour détecter la présence d'un signal
audio de
fréquence déterminée et ajustable par l'utilisateur.
Ce montage dispose d'un réglage de fréquence (à détecter), de
sensibilité (seuil en amplitude) et de tolérance (plage de capture).
Deux circuits ont été étudiés :
-
schéma 003b : pour alimentation directe en +3V3
-
schéma 003bb : pour alimentation entre +5V et +15V
Remarques
Le procédé de détection utilisé impose au signal à détecter une durée minimale
qui dépend de sa fréquence.
- Pour un signal de fréquence comprise entre 10 Hz et 100 Hz, la durée requise est de 100 ms au minimum
- Pour un signal de fréquence comprise entre 100 Hz et 1 kHz, la durée requise est de 10 ms au minimum
- Pour un signal de fréquence comprise entre 1 kHz et 20 kHz, la durée requise est de 10 ms au minimum
L'amplitude du signal
d'entrée (audio) doit être
comprise entre 600 mV et 3 V crête à crête.
Schéma
On peut dire que ce montage est simple, en regard de ce qu'il permet.
Remarque : le schéma 003bb n'est pas publié, il correspond au schéma 003b auquel est ajouté un régulateur de tension.
Fonctionnement général
Le signal audio arrive sur l'entrée d'un comparateur de tension intégré
au PIC et son amplitude est en permanence comparée à une tension de
référence interne. Le système peut fonctionner sur le principe d'un périodemètre ou d'un fréquencemètre.
Dans
le mode périodemètre, les changements d'état du comparateur
autorisent ou bloquent le comptage d'impulsions à haute vitesse. Les
impulsions de comptage se produisant à une vitesse de 16 MHz, on
peut en déduire les données suivantes :
- Pour un signal de 10 Hz (période 100 ms) cela correspond 1600000 impulsions par période du signal entrant
- pour un signal de 100 Hz (période 10 ms) cela correspond 160000 impulsions par période du signal entrant
- Pour un signal de 1 kHz (période 1 ms) cela correspond 16000 impulsions par période du signal entrant
- Pour un signal de 10 kHz (période 100 us) cela correspond 1600 impulsions par période du signal entrant
- Pour un signal de 20 kHz (période 50 us) cela correspond 800 impulsions par période du signal entrant
- Pour un signal de 50 kHz (période 20 us) cela correspond 320 impulsions par période du signal entrant
- Pour un signal de 100 kHz (période 10 us) cela correspond 160 impulsions par période du signal entrant
Dans
le mode fréquencemètre, les changements d'état du comparateur sont
comptés pendant une durée fixe de 50 ms ou 100 ms. Pour garantir
une bonne
précision du comptage dans ce mode, la fenêtre de mesure est
automatiquement
resynchronisée sur l'apparition du premier "front" après une absence
d'au moins 100 ms du signal à détecter.
Quel
que soit le mode de fonctionnement (choisi par l'utilisateur), la
valeur mesurée de la fréquence du signal entrant est comparée à la
fréquence spécifiée par l'utilisateur. Si cette fréquence mesurée
"colle" pendant une durée minimale, alors la sortie principale Out est
activée.
Descriptif du schéma
Le signal audio est appliqué à un filtre constitué de R1 et
C1 qui atténue les fréquences "trop hautes", tandis que le condensateur C2 et les deux résistances R2 et R3 forment un
filtre passe-haut destiné à atténuer les fréquences "trop basses" (voir Nota 1). En même temps, R2 et R3 forment un pont diviseur qui
permet de centrer le signal audio sur une valeur grosso-modo égale à la
moitié de la tension d'alimentation, soit environ 1,65 V.
Les diodes D1 et D2 écrêtent les dépassements d'amplitude
du signal audio qui pourraient
endommager le PIC.
Les réglages suivants permettent de spécifier les paramètres attendus :
- RV1/Fréquence : réglage fréquence attendue, entre 10 Hz et 20 kHz, en deux plages, selon la position de SW1/Range :
- RV2/Sensibilité : réglage de l'amplitude du signal d'entrée requise pour prise en compte
- RV3/Tolérance : écart en fréquence toléré autour de la fréquence centrale. Réglage entre +/-1 Hz et +/-10 Hz
- SW1/Range : plage de fréquence pouvant être traitée avec le réglage RV1/Freq
. si SW1 ouvert, ajustage entre 10 Hz et 1000 Hz
. si SW1 fermé, ajustage entre 200 Hz et 20000 Hz - SW2/Fast : durée de la fenêtre de mesure en mode fréquencemètre
. si SW2 ouvert : slow - durée fenêtre de 100 ms ; réactivité moindre, précision supérieure (Nota 2)
. si SW2 fermé : fast - durée fenêtre de 50 ms ; réactivité plus grande, précision inférieure (Nota 2) - SW3/Mode : mode de mesure, périodemètre ou fréquencemètre (Nota 3)
. si SW3 ouvert : fonctionnement en périodemètre
. si SW3 fermé : fonctionnement en fréquencemètre
Nota 1
: la valeur des éléments donnés sur le schéma permet une plage de
détection entre 50 Hz et 20 kHz. Dans la pratique, il convient de
limiter (d'atténuer) les signaux situés de part et d'autre de la
fréquence à détecter en adaptant la valeur de ces éléments. Un filtre passe-bande (étroit de
préférence) peut également être prévu en amont (c'est la solution que j'ai adoptée pour mon application).
Nota 2
: la mesure en mode fréquencemètre sur une fenêtre de 100 ms avec une fréquence
à détecter très basse (< à 200 Hz) n'offre qu'une résolution limitée.
Nota 3
: le mode de fonctionnement périodemètre ou fréquencemètre est décidé
lors de la mise sous tension et ne peut pas être modifié durant
l'exécution du programme.
Simulation
Les graphes qui suivent sont issus de simulations. Les tests pratiques suivront quand j'aurai reçu les PCB.
Mode fréquencemètre - Simulation avec fenêtre de mesure de 50 ms
Pour
une durée de signal valide de 125 ms et un temps de détection d'absence
signal de 10 ms, la sortie Out délivre un créneau de durée 85 ms
(125 - 50 + 10).
Mode fréquencemètre - Simulation avec fenêtre de mesure de 100 ms
Pour une durée de signal valide de 125 ms et un temps de détection
d'absence signal de 10 ms, la sortie Out délivre un créneau de durée 35 ms (125 - 100 + 10).
Mode périodemètre
Dans
ce mode, la sortie Out s'active plus rapidement - après détection
de 5 périodes valides consécutives, quelle que soit la fréquence.
Alimentation
L'alimentation du circuit est de +3,3 V et provient d'un
régulateur de
tension.
Logiciel du PIC
Pro - Logiciel non disponible en libre service.
Prototypes
Réalisés selon les dessins de circuit imprimé (PCB) 003b et 003bb visibles plus loin.
Prototype 003b
-
Prototype 003bb
-
La photo de droite montre le décodeur de tonalité dans son contexte d'utilisation et en pleine action, précédé du préamplificateur piézo 006cb et du filtre audio 016.
Circuits imprimés (PCB)
Versions 003b et 003bb réalisés en double face.
Circuit 003b
Version pour alimentation directe en +3V3.
Sur
ce prototype, je n'avais pas prévu les interrupteurs SW1/Range ni
SW2/Fast, je n'en ai d'ailleurs pas eu besoin pour mes premiers tests.
Ces interrupteurs peuvent être soudés directement aux broches
idoines du PIC
avec des fils volants (ajouté dans la version 003bb).
Circuit 003bb
Version pour alimentation comprise entre +5V et +15V.
Le
circuit est identique à la version 003b, à l'exception du régulateur de
tension (avec condensateurs et diodes) ajouté en entrée alimentation et
du condensateur de liaison C6 ajouté sur l'entrée audio.
Historique
30/07/2023
- Ajout photos prototypes 003b et 003bb.
- Ajout PCB version 003bb (avec régulateur de tension additionnel pour alimentation en +12V)
18/06/2023
- Première mise à disposition.