Generateur DTMF à microcontrolreur ( a base de PIC 16C84)

Ce nouveau circuit est conçu pour la génération des 16 tonalités standards DTMF. Très compact et de réalisation simple, il utilise un PIC16C84 à la place du classique UM95087. Le microcontrôleur permet de lire le clavier matricé et de produire un signal modulé grâce à l’utilisation d’une routine appropriée.



Même si aujourd’hui pratiquement tous les téléphones fixes, tous les téléphones cellulaires (GSM) disposent de la composition des numéros en multifréquence, avoir à portée de main un petit clavier DTMF peut être utile pour ceux qui sont équipés d’un standard électronique avec plusieurs combinés sans fil (comme le Siemens Gigaset par exemple), qui ont à tester des appareils téléphoniques de modèles variés ou qui ont à commander des serrures, des répondeurs, etc.
Comme vous pouvez le constater à la vue du schéma électrique, le générateur de paires de fréquences (c’est ce qui caractérise les signaux DTMF) n’est pas le très commun UM95087 ou UM95089, mais bien un microcontrôleur Microchip programmé pour gérer un clavier classique à matrice de 4 lignes et 4 colonnes et générer en conséquence les tonalités DTMF adéquates.
Le circuit est très simple, compact et facilement réalisable par tout un chacun. Couplé à un décodeur DTMF, il permet de construire un excellent appareil de laboratoire.

Le schéma électrique
Commençons donc par l’analyse du schéma électrique représenté dans ces pages.
Vous voyez immédiatement sa simplicité car il emploie uniquement le microcontrôleur déjà cité, un amplificateur opérationnel et le classique régulateur intégré à trois broches.
La tache confiée à U1 (PIC16C84), est celle de gérer le fonctionnement du dispositif. Il s’occupe en effet de scruter les lignes et les colonnes du clavier afin de détecter la pression d’une touche et de générer le signal DTMF correspondant.
Celui-ci, disponible sur la broche 1 de U1, est mis en forme par le filtre passe-bas d’ordre 2 qui le rend quasiment sinusoïdal.
Bien que théoriquement cela paraisse très simple, nous avons dû réaliser un programme complexe. Pour l’occasion il a été écrit en Basic et ensuite chargé dans le microcontrôleur grâce au compilateur basic “PIC Basic Compiler”.
Vous trouverez ce programme dans ces pages ainsi que sur le site electronique-magazine.com.
C’est l’instruction DTMFOUT qui nous intéresse particulièrement car c’est sur cette instruction, que la routine de génération des tonalités DTMF est basée.
Voyons d’abord le fonctionnement externe en commençant par expliquer ce qui se passe à la mise en route du système.
Le PIC16C84 paramètre ses I/O (entrées/sorties) en disposant ses broches 6, 7, 8 et 9 comme entrées (lignes) et ses broches 10, 11, 12 et 13 comme sorties (colonnes).
La broche 1, quant à elle, est la sortie du signal analogique.
Pour effectuer la scrutation du clavier et lire la fermeture éventuelle d’une touche, le programme du microcontrôleur active les colonnes séquentiellement, une seule à la fois, en mettant au niveau bas les broches 13 (colonne 1), 12 (colonne 2), 11 (colonne 3) et 10 (colonne 4), lesquelles sont normalement au niveau haut.
Simultanément et en synchronisme avec cette scrutation, il contrôle ce qui se passe sur les broches 9, 8, 7 et 6, cherchant la présence d’un éventuel niveau bas.
Si un niveau bas est trouvé, cela signifie qu’une touche a été appuyée. Pour savoir quelle est la touche en question, le microcontrôleur vérifie sur quelle ligne est arrivée la séquence d’activation des colonnes. Ainsi, si par exemple il a relevé un zéro logique sur la broche 8 (ligne 2) pendant que la colonne 1 (broches 12, RB6…) est au niveau bas, il s’agit évidemment de la touche 5 puisqu’elle se trouve à l’intersection entre la colonne 2 et la ligne 2 (broche 8 du microcontrôleur).
Si la concordance des contacts se fait entre les broches 13 et 6, la touche activée est l’astérisque (*) pour la touche 9, il s’agit de la ligne 3 et de la colonne 3, etc.
En somme, quelle que soit la touche concernée, le programme active la routine de génération des tonalités DTMF, en forçant l’émission de celle relative au choix de l’utilisateur.
Cette procédure est réalisée par la commande Basic DTMFOUT, avec laquelle le PIC16C84 est en mesure de générer les 16 tonalités du standard multifréquence.
Cette instruction contient les paramètres suivants :
- Broche de sortie, durée, intervalle de temps avant répétition et numéro de la touche de 0 à 15 (0=0, 1=1 ... 15=D) Ainsi, à chaque détection de touche, le programme fait appel à la commande DTMFOUT. Comme vous pouvez le voir dans le listing du programme, les paramètres qui suivent la fonction DTMFOUT sont tous identiques, à l’exception de celui concernant la tonalité spécifique à chaque touche. Ainsi, si nous appuyons sur la touche 5, le paramètre Tone est 5, avec l’astérisque (*), le paramètre Tone est 10, etc.

Figure 1 : Schéma électrique du générateur DTMF à microcontrôleur.

Figure 2 : Plan d’implantation des composants.



Figure 3 : Dessin du circuit imprimé à l’échelle 1.

Figure 4 : Schéma de l’amplificateur de sortie.

Pour piloter directement des transformateurs de ligne à 300 ou 600 ohms, ou un petit haut-parleur de 16 à 32 ohms, il suffit de connecter un transistor comme le montre le schéma.
La résistance d’émetteur peut être choisie entre 1 et 1,5 kilohm.
Avec le trimmer du circuit, vous pouvez régler à votre convenance le niveau BF de la nouvelle sortie.

Liste des composants
R1 = 4,7 kΩ
R2 = 4,7 kΩ
R3 = 4,7 kΩ
R4 = 1 kΩ
R5 = 100 kΩ trimmer M.H.
C1 = 220 μF 35 V électrolytique
C2 = 100 nF multicouche
C3 = 220 μF 35 V électrolytique
C4 = 100 nF polyester
C5 = 100 nF polyester
C6 = 22 pF céramique
C7 = 22 pF céramique
C8 = 100 nF multicouche
D1 = Diode 1N4007
U1 = μC PIC16C84-04 programmé (MF295)
U2 = Intégré CA3140
U3 = Régulateur 7805
Q1 = Quartz 4 MHz
Sauf spécification contraire, toutes les résistances sont des 1/4 W à 5 %.

Divers :
2 Borniers 2 pôles
1 Support CI 2 x 9 broches
1 Support CI 2 x 4 broches
1 Clavier matriciel à 16 touches
1 Circuit imprimé réf. L033


Comment générer les double tonalités

Le programme du microcontrôleur a été écrit en Basic, de manière à pouvoir utiliser une commande appropriée en mesure de générer des tonalités DTMF (sous forme d’impulsions bien calibrées). Nul besoin d’écrire de complexes routines de synthèse des différents signaux. Nous parlons de l’instruction DTMFOUT, disponible parmi d’autres dans le PICBasic Compiler. La syntaxe en est la suivante :




DTMFOUT Pin, {Onms, Offms,} [Tone {,Tone…}]

A la place de “Pin”, il faut spécifier la broche parmi les I/O de laquelle on désire faire sortir le signal (dans notre cas, c’est la 1, RA2). “Onms” et “Offms” sont les temps en millisecondes, voulus pour la durée de chacune des tonalités et l’intervalle minimal entre l’une et l’autre.
Notez que si aucune valeur n’est sélectionnée, le compilateur, par défaut, impose une durée de 200 millisecondes pour le premier et de 50 millisecondes pour le deuxième (durées acceptées par tous les appareils téléphoniques standards).
Quant au paramètre “Tone”, à la place de celui mis entre crochets, il faut insérer un numéro entre 0 et 15 (les tonalités DTMF sont au nombre de 16) correspondant au numéro que l’on veut faire reproduire au PIC16C84. En se référant au tableau standard simplifié reproduit ci-dessous, nous avons :



0=0;  1=1;  2=2;  3=3; 4=4;  5=5;  6=6;  7=7; 8=8;  9=9; 10=*; 11=#;12=A; 13=B; 14=C; 15=D;

En pratique une commande de genre :



DTMFOUT PORTB.1, 300, 60, [11]

produit sur la broche 1 une tonalité correspondant au signe dièse (#), durant 0,3 seconde, forçant un intervalle de 60 millisecondes avant une éventuelle répétition.
Comme l’instruction DTMFOUT utilise l’instruction FREQ OUT pour générer les tonalités (autre instruction du PICBasic compiler) et que cette dernière fait produire au microcontrôleur une série d’impulsions modulées en largeur, il convient de filtrer, de façon adéquate, la sortie de manière à donner au signal une enveloppe quasi sinusoïdale et donc similaire à celle des véritables générateurs DTMF.
Cette précaution permet de rendre le signal compatible à tous les appareils standards.

Le filtre R/C
Pour ce qui concerne l’aspect matériel (hardware), le microcontrôleur est en mesure de synthétiser assez bien les tonalités en produisant à chaque fois une paire de signaux sinusoïdaux reconstitués, obtenus en modulant de manière appropriée la largeur des impulsions compatibles TTL émises par la broche 1.
En série avec cette broche, programmée en sortie, il est nécessaire d’intercaler un filtre passe bas R/C du second ordre.
Son rôle est d’arrondir et de niveler le signal afin de le rendre compréhensible à la quasi totalité des dispositifs standard DTMF présents sur le marché.
Rappelez-vous cependant que sur ce type de filtre la résistance de charge joue un rôle prépondérant sur les caractéristiques de celui-ci. Plus la résistance de charge est grande, moins elle perturbe le filtre. C’est pour cette raison que nous avons utilisé l’amplificateur opérationnel U2, un CA3140 utilisé simplement comme suiveur.

L’amplificateur opérationnel U2
Son entrée haute impédance (broche 3) permet d’isoler le filtre du reste du montage et sa sortie (broche 6) garantit le courant nécessaire que le double filtre ne pourrait fournir sans altérer la qualité de son signal de sortie.
Le condensateur C8 et la résistance série R4 transfèrent les tonalités DTMF aux bornes du trimmer R5 avec lequel nous pouvons régler le niveau à la sortie (OUT) de la platine.
De par sa conception, le dispositif est destiné à piloter des circuits à haute impédance (Z > 1 kilohm) et non un haut-parleur traditionnel de 8 à 32 ohms aux bornes duquel l’amplitude serait insuffisante pour obtenir une écoute décente.
Ceci n’est pas un problème car, dans la plupart des applications, il faut injecter les tonalités à des appareils qui chargent très peu la sortie OUT. Mais, toutefois, si vous aviez besoin d’un peu plus de signal, vous pouvez recourir à une petite modification qui consiste à la mise en place d’un transistor NPN (un BC547, par exemple) avec la base sur le curseur du trimmer de réglage de niveau (R5) et le collecteur à la sortie de régulateur intégré U3 (voir la figure 4).

L’alimentation
Le montage s’alimente en appliquant une tension continue de 9 à 15 volts entre les bornes marquées –V et +V du bornier.
A partir de là, la tension est filtrée par l’intermédiaire du condensateur C1, rejoint le régulateur U3 (7805) qui restitue sur sa sortie une tension stabilisée de 5 volts.
Ces 5 volts sont nécessaires au fonctionnement du microcontrôleur. Le signal d’horloge est fabriqué par l’oscillateur interne couplé au quartz de 4 MHz. La valeur du quartz, n’est pas choisie au hasard. Elle découle des notes d’applications du manuel “PICBasic Compiler” présentes dans la rubrique concernant la génération des signaux DTMF.

Listing du programme du générateur DTMF à microcontrôleur
‘*****************************‘* 
File: DTMFGEN.BAS Data:5/4/99‘* 
GENERATEUR DE TONS DTMF‘* de Ghezzi Alberto.
‘*****************************
DEFINE OSC 4‘DEFINITIONS DES VARIABLES‘LIGNES ET COLONNES POUR‘
CLAVIER MATRICIELSYMBOL RIGA1=PORTB.3SYMBOL RIGA2=PORTB.2SYMBOL 
RIGA3=PORTB.1SYMBOL RIGA4=PORTB.0SYMBOL COL1=PORTB.7SYMBOL 
COL2=PORTB.6SYMBOL COL3=PORTB.5SYMBOL COL4=PORTB.4‘SORTIE DTMFSYMBOL 
DTMF=PORTA.2‘ACTIVATION DES PULL-UP‘DU PORTBPOKE $81,0‘DEFINITION DES BITS‘D’ 
ENTREE ET SORTIEINPUT RIGA1INPUT RIGA2INPUT RIGA3INPUT RIGA4OUTPUT 
COL1OUTPUT COL2OUTPUT COL3OUTPUT COL4OUTPUT DTMF‘MISE A L’ETAT HAUT‘
DES COLONNESHIGH COL1HIGH COL2HIGH COL3HIGH COL4‘PROGRAMME PRINCIPALMAIN:
‘MISE A L’ETAT BAS COLONNE 1‘CONTRÖLE CHAQUE LIGNE;‘SI LA LIGNE EST A 0 ON EMET‘
LE SON DTMF CORRESPONDANT A‘LA TOUCHE DETECTEELOW COL1IF RIGA1=0 
THEN  DTMFOUT DTMF,200,0,[1]ENDIFIF RIGA2=0 THEN  DTMFOUT DTMF,200,0,
[4]ENDIFIF RIGA3=0 THEN  DTMFOUT DTMF,200,0,[7]ENDIFIF RIGA4=0 THEN 
DTMFOUT DTMF,200,0,[10]ENDIF‘REMISE A L’ETAT HAUT‘DE LA COLONNE 1HIGH COL1‘ON 
RECOMMENCE LA PROCEDURE‘ POUR LA COLONNE 2LOW COL2IF RIGA1=0 THEN  DTMFOUT DTMF,
200,0,[2]ENDIFIF RIGA2=0 THEN  DTMFOUT DTMF,200,0,[5]ENDIFIF RIGA3=0 THEN 
DTMFOUT DTMF,200,0,[8]ENDIFIF RIGA4=0 THEN  DTMFOUT DTMF,200,0,[0]ENDIFHIGH 
COL2‘...POUR LA COLONNE 3LOW COL3IF RIGA1=0 THEN  DTMFOUT DTMF,200,0,[3]ENDIFIF 
RIGA2=0 THEN  DTMFOUT DTMF,200,0,[6]ENDIFIF RIGA3=0 THEN  DTMFOUT DTMF,200,0,[9]
ENDIFIF RIGA4=0 THEN  DTMFOUT DTMF,200,0,[11]ENDIFHIGH COL3‘... POUR LA COLONNE 
4LOW COL4IF RIGA1=0 THEN  DTMFOUT DTMF,200,0,[12]ENDIFIF RIGA2=0 THEN  DTMFOUT 
DTMF,200,0,[13]ENDIFIF RIGA3=0 THEN  DTMFOUT DTMF,200,0,[14]ENDIFIF RIGA4=0 THEN 
DTMFOUT DTMF,200,0,[15]ENDIFHIGH COL4‘ON RECOMMENCE LA SCRUTATION‘DU DEBUT (COL1)
GOTO MAIN


Réalisation pratique
Dans cet article, vous trouverez le tracé côté cuivre du circuit imprimé à l’échelle 1/1 (figure 3), qui vous sera utile pour préparer la gravure.
Utilisez la méthode habituelle de photocopie sur calque ou sur mylar translucide, insolation aux tubes ultraviolets, révélation et gravure au perchlorure de fer. Après gravure de la plaque, il ne reste plus qu’à la percer afin qu’elle soit prête à recevoir les composants.
Commencez le montage par la mise en place des résistances, de la diode D1 en faisant attention à son positionnement, la bague de repérage indiquent la cathode doit être dirigée vers l’angle du circuit imprimé.
Montez ensuite les supports des deux circuits intégrés U1 et U2, en les positionnant comme cela est indiqué sur le schéma pratique de câblage.
Installez le trimmer R5, les condensateurs en prenant garde à la bonne orientation des deux électrolytiques, le quartz et le régulateur en boîtier TO220, qui sera soudé avec sa partie métallique vers l’extérieur du circuit imprimé.
Pour la connexion OUT et pour l’alimentation, soudez deux borniers à deux plots, pour circuit imprimé au pas de 5 millimètres.
Pour ce qui concerne le clavier, l’idéal est de le relier avec un morceau de câble en nappe de 8 fils. Après les avoir dénudés, il suffit de les souder aux pastilles marquées C1, C2, C3, C4, R1, R2, R3 et R4.
Faites de même pour l’autre côté du câble en nappe après avoir identifié les contacts des lignes et des colonnes à l’aide de la documentation du clavier.
Après avoir réalisé toutes les soudures, vous pouvez insérer chaque circuit intégré dans son support en faisant attention au sens de montage. Le repère-détrompeur du PIC16C84 est dirigé vers le condensateur C3 et le CA3140 doit avoir son repère-détrompeur dirigé vers C8.
Procédez à un contrôle minutieux de tout votre travail avant de passer aux essais.
Il suffit de fixer au bornier marqué Val, les deux fils d’un connecteur utilisé pour les petites piles de 9 volts, dont le fil rouge est le positif à relier au “+” et le fil noir, le négatif, à relier au “–”.

Le prototype une fois le montage terminé.

Réglages et essais
Placez une pile neuve et le système est prêt à l’emploi. Si vous voulez l’essayer immédiatement, il vous suffit de le relier à l’entrée BF d’une clef DTMF ou bien à un décodeur de tonalités DTMF. Pour l’utilisation, vous ne devriez pas rencontrer de problèmes. Après avoir appliqué l’alimentation, il suffit d’appuyer une des touches du clavier pour obtenir immédiatement un ton correspondant.
Si vous testez l’appareil avec une clef DTMF, il convient de taper le code exact.
Si vous utilisez un décodeur de tonalités DTMF à afficheur, le chiffre tapé sur le clavier doit être visible sur l’afficheur.
Si tout se passe bien, vous êtes prêts pour toutes les applications, de la télécommande à l’activation de charges à distance.
Il faut toutefois régler le trimmer R5 afin d’obtenir un niveau suffisant, pour lequel toutes les tonalités sont reconnues, même à travers la ligne téléphonique.
Le raccordement à la ligne téléphonique, peut être effectué par l’intermédiaire de deux condensateurs de 100 nanofarads, l’un connecté entre la masse et un fil de la paire téléphonique et l’autre, entre le curseur de R5 et l’autre fil de la paire téléphonique, sans aucun risque de saturation des étages d’entrée des dispositifs utilisés.
Après l’avoir terminé, vous pouvez installer le générateur DTMF dans un coffret, dans lequel vous prendrez soin de percer un trou en regard du trimmer R5 afin de permettre sont réglage.
Un coffret comportant un petit compartiment permettant de loger une pile de 9 volts est souhaitable et très pratique à l’usage, compte tenu de la faible consommation du montage, environ 10 mA.
Naturellement, vous pouvez alimenter le circuit avec un bloc secteur délivrant de 3 à 12 volts. Il suffit de respecter la polarité, même si l’entrée est protégée par la diode D1.

Aucun commentaire:

Enregistrer un commentaire