Décodeur DTMF programmable par PC
Transcription
Décodeur DTMF programmable par PC
Décodeur DTMF programmable par PC Version 2.0 F1OOE e-mail : [email protected] 1 Vous hésitez à faire un décodeur DTMF car pour modifier les codes, il faut soit modifier le câblage soit reprogrammer un composant (EPROM, PAL...). Grâce à un petit logiciel complet sous Windows, la modification des codes (10 codes de 6 “ chiffres ”) devient très facile. Description : La réalisation est séparée en trois parties distinctes : le décodeur DTMF, le microcontrôleur PIC et l’interface série. Le décodeur DTMF: Rappel : le signal DTMF est la superposition de 2 fréquences (une basse et une haute). 1209 Hz 1336 Hz 1477 Hz 1633 Hz 697 Hz 1 2 3 A 770 Hz 4 5 6 B 852 Hz 7 8 9 C 941 Hz * 0 # D Le classique composant CD22202 (SSI202...) est un décodeur DTMF de 16 “ chiffres ” (voir tableau ci-après) qui ne nécessite qu’un Quartz et peu de composants discrets. Dès qu’un code DTMF est reçu, son code hexadécimal est mis sur les sorties puis la sortie DV passe à l’état haut (+5V) pour valider. “ Chiffre ” DTMF code Hexa 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 0 A * B # C A D B E C F D 0 Sortie 4 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 sortie 3 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 sortie 2 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 sortie 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Le microcontrôleur : C’est le cœur du montage, il permet de gérer tous les codes hexadécimaux qui arrivent en entrée et change l’état des sorties. Le microcontrôleur PIC16C84 comporte 36 octets de RAM, 64 octets d’EEPROM, un timer, 13 entrées / sorties, 1K d’EEPROM pour le programme... Comment ça marche ? Grâce au programme sous Windows, les codes sont transférés par liaison série au microcontrôleur qui sauvegarde dans son EEPROM (le contenu est donc gardé en cas de coupure d’alimentation). Dès qu’un code est reçu, le microcontrôleur le transmet sur le port série, le stocke et le compare avec sa liste. Si les codes envoyés correspondent, le microcontrôleur change l’état des sorties en fonction des critères définis. L’interface série : 2 Le MAX232 met en forme les signaux entre le port de communication série (tension +12V ou -12V) et le microprocesseur (0V ou +5V). Les tensions -12V et +12V n’existant pas sur ce montage, elles sont créées grâce à ce circuit et aux condensateurs de 1µF. La réalisation : Le montage utilise un circuit imprimé de 10cm par 7cm et ne comporte aucun réglage. Trois borniers et un connecteur DB9 permettent les connexions : l’alimentation (≈ 12 Volts), l’entrée BF (la sortie HP de votre tranceiver), les sorties de commande (4 sorties à collecteurs ouverts et une sortie 5V) et le connecteur série. Attention de ne pas oublier les 3 straps avant de souder les autres composants : les résistances, diodes, condensateurs (au pas de 2.54 ou 5.08), transistors, supports de circuits intégrés (conseillé), borniers, quartz et le régulateur. Après avoir vérifié que l’alimentation est à 5V (par exemple, entre les pattes 15 et 16 du MAX232, U3) et que la led verte s’allume, vous pourrez alors placer hors tension les circuits intégrés (voir Implantation des composants). Le câblage : Test : Deux codes (“ #0 ” et “ “#1 ”) sont déjà préprogrammés dans le microcontrôleur et permettent de faire les premiers tests. er 1 test : Mettre le cavalier avant d’alimenter le montage. La led rouge clignote 1 fois et reste éteinte. Si vous tapez n’importe quel “ chiffre ”, la led rouge s’allume un très court instant. Conclusion : votre montage comprend les sons DTMF. ème 2 test (facultatif): 3 Mettre le cavalier avant d’alimenter le montage. La led rouge clignote 1 fois et reste éteinte. Votre montage transmet sur le port série tous les caractères DTMF qu’il reçoit. En choisissant une émulation minitel ou un autre logiciel PC, vous faites afficher les codes reçus (voir Annexe 2 : Réception sur PC). ème 3 test : Mettre le cavalier avant d’alimenter le montage. La led rouge clignotera une fois et restera éteinte. Nous allons vérifier une sortie en rajoutant une résistance de 10kΩ entre le +5v (borne haute du grand bornier) et une sortie (deuxième borne d’en bas du grand bornier). Après avoir coupé et rallumé l’alimentation du montage, le transistor n’est pas alimenté donc la tension aux bornes de la résistance passe à 0V. Après avoir taper “ #1 ”, le transistor est alimenté donc la tension aux bornes de la résistance est de 5V. Taper maintenant “ #0 ”, le transistor n’est plus alimenté, la tension aux bornes de la résistance repasse à 0V. Conclusion : votre montage traite les codes DTMF qui lui sont envoyés. Le programme : Avant de lancer le programme DTMF95 (pour Windows 95/98) ou DTMF31 (pour Windows 3.1), les tests, précédemment décrits, doivent être concluants. Attention : le cavalier doit être ouvert avant d’être alimenté. La led rouge clignotera 5 fois et restera allumée. La disquette : La disquette contient les fichiers suivants: - DTMF-DOC.EXE : fichier auto-décompactable DTMF-V20.doc, cette documentation. - DTMF95.EXE : programme pour Windows 95/98. - DTMF31.EXE : programme pour Windows 3.1. - PROGRAM.BAT et LIRE.BAT : commandes pour lancer les programmes BASIC. - PROGRAM.BAS et LIRE.BAS : programmes BASIC pour DOS et Windows 3.1. COM, liaison série : Le câble reliant le PC à votre montage est un câble neutre (absence totale de croisement). Au moins 3 fils sont câblés : broches 2 (TX), 3 (RX) et 5 (masse). Dans le champ “ COM, sélectionnez votre port série (1 à 4). 4 Lire : Cette fonction permet de lire la programmation du microcontrôleur. Nous vous conseillons d’utiliser en premier cette fonction pour vérifier le bon fonctionnement de la liaison série. Le résultat doit être le suivant : code “ #1 ” pour la sortie OUT1 à l’état 1 et code “ #0 ” pour la sortie OUT1 à l’état 0. Si vous recevez cette configuration, l’ensemble de votre réalisation fonctionne parfaitement. Programmer : Cette fonction permet de programmer le microcontrôleur. Nous vous conseillons de faire cette deuxième fonction avec peu de modification pour vous familiariser. Modifiez : code “ #A ” pour toutes les sorties à l’état 1 et code “ #B ” pour toutes les sorties à l’état 0 (ne pas taper le “ # ”). 5 Remarque : Pour vérifier la programmation du montage : - Remettre à zéro l’affichage : “ Remise à zéro ”. - Sélectionner “ Lire ”. Remise à zéro : Remise à zéro des paramètres. Valider votre demande : Codes, Sorties état 1, Sorties état 0 : Ces 10 lignes doivent être saisies pour le changement d’état des sorties en fonction des codes que vous choisissez. Les séries de codes : - 10 codes de 6 “chiffres ” peuvent être définis. - “ # ” permet de synchroniser le décodage, il devra toujours être tapé avant chaque code (le montage se synchronise aussi lorsque 6 “ chiffres ” ont été tapés). - 0123456789ABCD* peuvent être utilisés. Quelques exemples : #1 #123456 #ABCD #7*8* 6 Exemple : Le fait de transmettre “ #123456 ” (ne pas oublier le “ # ”) sélectionnera : - La sortie 1 passera à l’état 0, le transistor ne sera pas alimenté, la sortie sera à l’état “ ouvert ”. Si vous avez un relais, il ne sera pas alimenté, sa sortie sera ouverte. - La sortie 2 passera à l’état 1, le transistor sera alimenté, la sortie sera “ relié à la masse ”. Si vous avez un relais, il sera alimenté, sa sortie sera fermée. - La sortie 3 ne changera pas d’état. - La sortie 4 passera à l’état 1 pendant un cours instant (quelques microsecondes). Il ne faut pas utiliser de relais avec ce type de sélection. Initialisation : Cette fonction permet de sélectionner l’état des sorties à l’alimentation du montage : - Etat 0 : sortie du microcontrôleur est de 0 Volt, le transistor n’est pas alimenté, la sortie est à l’état “ ouvert ”. Si vous avez un relais, il n’est pas alimenté, sa sortie est ouverte. - Etat 1 : sortie du microcontrôleur est de 5 Volts, le transistor est alimenté, la sortie est “ relié à la masse ”. Si vous avez un relais, il est alimenté, sa sortie est fermée. Remarques : - Chaque sortie doit avoir une sélection : soit 1 ou 0. - Voir chapitre “ Mémoire ” et “ Temporisation ” Mémoire : Si cette case est sélectionnée, à chaque changement d’état, ceux-ci sont mis en mémoire. En cas de coupure d’alimentation, vous retrouverez les sorties dans l’état avant la coupure. Remarques : - La sélection de “ mémoire ” ne permet pas d’utiliser “ temporisation ” et inversement. 7 - Après un changement d’état des sorties, la lecture du microcontrôleur par le programme PC indique dans le champ “ Initialisation ” l’état des sorties en mémoire. Nous vous conseillons de désigner un code pour remettre les sorties dans le même état que vous avez choisi dans “ Initialisation ”. Cela vous évitera de reprogrammer le montage à chaque fois. Temporisation : Avec cette sélection, vous pouvez avoir une temporisation (en minutes, environ). Les sorties changeront d’état durant la période de la temporisation. Après la durée choisie, les sorties repasseront à l’état sélectionné dans “ Initialisation ”. Exemple : Quand vous tapez “#123456 ”, toutes les sorties passeront à l’état 1 pendant 5 minutes. Après le temps écoulé, les sorties 1 et 2 passeront à l’état 0 et les sorties 3 et 4 resteront à l’état 1 comme sélectionné dans “ initialisation ”. Remarques : - Si la temporisation est différente de “ 0 ”, le mode “ mémoire ” ne peut pas être utilisé et inversement. - Si un code valide est tapé, la temporisation redémarre pour la durée sélectionnée. Sauver : Cette fonction permet de sauvegarder les codes que vous avez créés dans un fichier “ .OOE ”. Vous devez sauvegarder les codes si vous voulez programmer le montage avec le programme BASIC “ PROGRAM ” (cas sous Windows 3.1). Charger : Cette fonction permet de lire les codes d’un fichier “ .OOE ”, précédemment sauvegardé ou provenant du programme BASIC “ LIRE ” (cas sous Windows 3.1). 8 Sous Windows 3.1 : Avec la version DTMF31 (pour Windows 3.1), il n’est pas possible de programmer ou de lire. Il existe alors 2 programmes BASIC : PROGRAM et LIRE. Il suffit de lancer PROGRAM.BAT ou LIRE.BAT. Attention, nous vous conseillons de copier le programme QBASIC.EXE dans le répertoire des programmes BASIC. Les erreurs : Erreur du PIC : Si la led rouge de votre montage clignote plus de 5 fois, le montage n’a pas pu prendre en compte les informations transmises par le PC. Vous devez éteindre puis rallumer votre montage. Erreur de saisies : Les codes saisis ne sont pas corrects. Vérifier vos valeurs par rapport aux codes autorisées notées dans cette documentation. Erreur de communication avec le PIC : Si votre montage est mal branché, pas alimenté ou si le PIC n’a pas correctement pris en compte les informations transmises par le PC, le programme renvoi un message d’erreur. Nous vous conseillons de reprogrammer le PIC avec le programme PC. 9 Erreur de transfert : Si le port de communication est incorrect, votre montage mal branché ou pas alimenté, le programme renvoi un message d’erreur. Vérifier l’ensemble. Erreur Port Série : Votre port série ne peut pas être configuré (cas sous Windows NT). Attention, les programmes résidents (pour le packet radio) ne permettent pas de configurer correctement le port série. Erreur Fichier “ .ooe ” : Le fichier “ .ooe ” n’est pas au bon format. Circuit Imprimé côté composants 10 Implantation des composants 11 12 Liste des composants : R1 : 100 kΩ R2 : 1MΩ R3 : 100 kΩ R4 : 10 kΩ R5 : 100 kΩ R6, R7 : 470 Ω R8 à R12 : 10 kΩ C1 : 10 nF (milfeuil) C2 : 100 nF (milfeuil) C3 à C6 : 1µF (radial) C7, C8 : 100 nF C9 : 470 nF C10, C11 : 100nF C12, C13 : 100 pF D1 : led rouge ∅5mm D2 : led verte ∅5mm D3 : 1N4007 Q1 à Q5 : 2N2222 X1 : 3.5795 MHz X2 : 4.0000 MHz U1 : CD22202 (SSI202...) U2 : PIC16C84 (programmé) U3 : MAX232 (ou équivalent) U4 : 7805 (TO220) divers : 2 * supports 18 broches support 16 broches 2 * borniers 2 contacts au pas de 5.08 2 * borniers 3 contacts au pas de 5.08 (ou 3 * 2 contacts) cavalier au pas de 2.54 connecteur DB9 femelle coudé pour circuit imprimé. Bibliographie • • • • • • • • • • • • • CD ROM 1999 Technical Library, MicroChip Data Book PIC16/17 Microcontroller, édition Microchip Microcontrôleurs PIC structure ISC, édition Publitronic Les microcontrôleurs PIC applications, édition DUNOD Pratique des microcontrôleurs PIC, édition ELEKTOR Livre d'or DELPHI 1,2 et 3, édition SYBEX Le Platinium DEPHI, édition SYBEX DELPHI 1 (pour Windows 3.1), Borland DELPHI 3 (pour Windows 95), Borland Assembleur PIC MPLAB v4.0, MicroChip Programmateur de PIC PIP-02, Silicon Studio ISIS Lite, Labcenter Electronics ARES Lite, Labcenter Electronics ANNEXE 1 Réception sur PC Votre montage transmet les codes DTMF reçus sur le port série (1200 baud, 8 bits, pas de parité, 1 bit de stop). Ce mode fonctionne quand le cavalier est mis, la led rouge clignote une fois et reste éteinte. Utilisation du programme “ Hyper Terminal ” de Windows 95 Sous Windows 95, lancer “ Hypertrm ” dans “ Démarrer ”, “ Accesoires ” puis “ Hyper Terminal ”. • Saisir un nom. • Choisissez connecter en utilisant : “ Diriger vers COM1 ” ou autre port série. • Sélectionnez les paramètres comme ci-dessous : Votre terminal est maintenant parfaitement configuré. Remarques : - Lancer votre logiciel PC après avoir allumé le montage. - C’est normal que le logiciel vous demande de vous déconnecter avant de quitter. ANNEXE 2 Carte relais Rien de plus simple que de câbler cette carte relais et de la relier à votre montage. - Câbler les borniers et les 4 relais (attention au sens). - La carte relais se met à côté de votre montage. Vous pouvez utiliser 5 queues de résistances ou une nappe à 5 fils. Si vos relais sont commandés avec une tension de 5V (comme recommandé), celle-ci sera prise directement sur le montage, il n’est pas nécessaire de relier la masse. Dans le cas contraire, ne pas oublier de relier la masse de votre alimentation à la masse de votre montage et non à la carte relais. Circuit Imprimé côté composants Implantation des composants Liste des composants : 4 * relais REED 1 contact travail 5V 4 * borniers 2 contacts au pas de 5.08 2 * borniers 3 contacts au pas de 5.08 (ou 3 * 2 contacts) ANNEXE 3 Programme sous DOS Le programme PC a été développé en BASIC sous DOS pour pouvoir modifier les codes du montage grâce à un PC portable, type 8086, à bas prix. Et oui, ils peuvent encore servir !!! Description : Je ne décrierai ici que les particularités de ce programme par rapport aux programmes DELPHI sous Windows 3.1 et 95. Il faut noter qu’un programme en BASIC sous DOS n’est pas convivial. En entrée du programme, le fichier “init.ooe” (par défaut) est pris. Celui-ci correspond à la non saisie de données donc, un écran vide sous Windows. Codes, Etats des sorties : Etats : états 0 : “0” états 1 : “1” états 0 et 1 (impulsion) : “i” ou “I” pas de changement d’état : “ ” (espace) Initialisation, Mémoire, temporisation : En cas de saisie incorrecte, vous devez ressaisir. Sauvegarde : Vous devez saisir le nom du fichier (sans l’extension) pour pouvoir le transférer avec le programme BASIC “PROGRAM”. Lire, Programmer : Ces fonctionnalités sont réalisées par 2 programmes BASIC : “LIRE.BAS” et “PROGRAM.BAS” lancés par les commandes “LIRE.BAT” et “PROGRAM.BAT”.
Documents pareils
decodage du dtmf
Le plus direct et le plus sûr, consiste à utiliser un décodeur intégré.
On utilise un circuit SSI202P, ou un CD22202,
Si le microcontrôleur peut être cadencé à 3.5795
MHz, on pourra partager l'horl...