Jean-François FOURCADIER
F4DAY

Montpellier  (France)

projets radioamateurs

écrivez moi !  
© 2000-2016- J.F. Fourcadier
page d'accueil
haut débit télévision antennes hyperfréquences relais divers

 


Simplix 2 : un décodeur DTMF simple à deux voies
pour relais et balises

La réglementation impose à tout responsable de relais ou balise de pouvoir arrêter immédiatement l'installation sur injonction des autorités. Le décodeur DTMF qui est décrit ici permet de répondre à cette obligation au moyen d'une télécommande radio. Les codes d'arrêt et de mise en marche seront bien entendu conservés secrets par le responsable administratif de l'installation. A côté de cela, des codes publics permettront à tout un chacun de modifier la configuration du relais ou de la balise et ainsi d'enrichir son domaine d'emploi.

Fonctionnalités

Les fonctionnalités du décodeur DTMF Simplix 2 couvrent une grande partie des besoins de télécommande des relais et balises :

- Deux voies indépendantes, composées chacunes d'un relais électromécanique qui répond à un code DTMF d'activation et à un code de désactivation.

- Chaque voie possède une temporisation qui lui est propre, ajustable entre 250 ms et 4 heures par pas de 250 ms. Les temporisations peuvent être désactivées indépendamment lors de la programmation.

- La réponse à un groupe de codes est possible grâce à l'existence d'un caractère de programmation "joker".

- Deux codes secrets "administrateur" permettent de bloquer ou de débloquer le fonctionnement. Le code administrateur opère en gelant la situation établie, permettant ainsi soit l'arrêt, soit la marche forcée. L'état choisi par l'administrateur est sauvegardé en EEPROM afin que sa décision ne puisse en aucun cas être modifiée par une coupure d'alimentation fortuite ou volontaire.

- Intégration d'un générateur basse fréquence précis, délivrant un signal permanent sinusoïdal de 500 mV efficaces à 1000 Hz. Ce générateur est utile pour la génération de bips ou de signaux audio de test.

Enfin, le décodeur DTMF Simplix 2 est programmable "in situ", c'est à dire sans débrocher de composants de la carte.

Au moyen de Simplix 2, on pourra par exemple commander deux équipements différents, ou bien commander un seul équipement et utiliser la deuxième voie pour activer un émetteur qui transmettra un bip de confirmation de bonne réception de l'ordre.

Schéma électrique

Le décodeur DTMF Simplix 2 utilise peu de composants : un circuit décodeur MT8870, un PIC 16F84A et quelques composants ordinaires. Les fonctionnalités et les performances obtenues proviennent plus du logiciel implanté dans le PIC, logiciel qui est fourni, que du caractère exceptionnel des composants.

cliquer pour agrandir

cliquer pour ouvrir le schéma

L'entrée audio est connectée au circuit décodeur MT8870 IC1 qui fournit en retour au PIC 16F84A IC2 les informations relatives au code DTMF reçu : présence d'un code DTMF sur la sortie StD et valeur du code sur les sorties Q1 à Q4. Le PIC traite ces informations et commande les relais K1 et K2 à travers les transistors Q1 et Q2 respectivement. Les relais utilisés sont des modèles miniatures 5 V Matsushita référence TF2-5V, résistance du bobinage 312 ohms, mais des modèles équivalents existent dans d'autres marques.

Un connecteur RJ11 6P4C permet la connexion au programmateur in situ. La programmation est ainsi extrêmement facilitée, même sur le terrain.

Un signal carré à 1000 Hz, disponible sur la sortie RB4 du PIC est filtré par un filtre actif du second ordre composé du transistor Q3 et des composants associés. Le signal audio sinusoïdal, d'amplitude 500 mV efficaces (1,5 V crête à crête), est présenté sous une faible impédance sur la sortie LSP8. Bien entendu, ce générateur ne fonctionne qu'une fois que le logiciel est implanté dans le PIC.

cliquer pour agrandir
cliquer pour agrandir

Deux régulateurs de tension complètent le montage : Un régulateur IC3 type LM7805 qui fournit du + 5 V à partir d'une tension continue comprise entre + 8 V et + 15 V, et un petit régulateur optionnel IC4 XC6201P132 qui fournit du + 3,3 V utile en fonction des approvisionnements en MT8870 (le MT8870DS fonctionne en +5V, le MT88L70AS fonctionne en +3,3 V).

Pour un fonctionnement correct, le niveau audio à l'entrée du circuit décodeur MT8870 doit être conforme aux spécifications constructeur, soit 15 mV à 489 mV efficaces pour la version 3,3 V, avec une différence de niveaux entre les fréquences extrêmes qui ne dépasse pas 8 dB.

NB : Le schéma de principe est également fourni au format .sch Eagle, en même temps que le circuit imprimé (voir ci-dessous).

Réalisation

Pour des raisons de simplicité le montage est réalisé sur du circuit imprimé simple face FR4 et quatre straps seront à prévoir. L'assemblage ne présente pas de difficultés particulières.

cliquer pour ouvrir

télécharger le circuit imprimé aux formats .brd Eagle et .bmp (54 ko zippés)

cliquer pour agrandir
cliquer pour agrandir

On peut également envisager une réalisation sur plaque à trous en utilisant des versions de circuits intégrés en boîtiers DIL. Attention, les bobinages des relais sont polarisés. Veiller à bien respecter le sens de la tension d'alimentation des relais. En fonction de l'environnement du montage, on pourra abriter ce dernier dans un petit boîtier métallique.

cliquer pour agrandir
cliquer pour agrandir
cliquer pour agrandir

le décodeur dans son boîtier aluminium

Après un rapide examen visuel, la mise sous tension peut s'effectuer immédiatement. On vérifiera la présence des tensions régulées + 5 V, éventuellement + 3,3 V, et la valeur du courant d'alimentation.

 

Il faut ensuite passer à la phase de programmation du PIC au moyen d'un programmateur in situ semblable à celui décrit dans une réalisation précédente. Dans le cas d'une utilisation de PIC en boîtier DIL on pourra utiliser la méthode de programmation traditionnelle sur programmateur externe. Tous les détails du logiciel à charger (structure, fonctionnement, code source, paramètrage) sont fournis ci-après.

Logiciel

- principe :

Le principe utilisé de système temps réel est inhabituel pour une réalisation amateur. Il n'existe pas de boucle d'attente à proprement parler et il n'est pas fait appel à des interruptions. On trouvera simplement une grande boucle où tous les évènements externes et toutes les actions à réaliser sont notés séquentiellement au moyen de fanions (flags) ou de compteurs. Un temps précis, c'est à dire un nombre de cycles machine déterminé, est alloué à chaque opération et à chaque traitement. Les différents chemins logiques possibles sont compensés temporellement pour un respect strict de ce critère. La grande boucle se parcourt en exactement 1000 cycles machine, soit une durée de 1000 µs lorsqu'on utilise le traditionnel quartz de 4000 kHz pour l'oscillateur du PIC.

Cette façon de procèder induit une grande fiabilité de fonctionnement, une très faible probabilité de blocage, la possibilité de gèrer plusieurs temporisations longues et précises, tout en obtenant en même temps un signal carré permanent à 1000 Hz de qualité.

- structure du logiciel

L'enchaînement des tâches est présenté dans le diagramme ci-après :

cliquer pour agrandir

Deux retards, ajustés à 157 µs pour le premier, à 304 µs pour le second permettent de respecter exactement un temps de boucle de 1000 µs et d'assurer un rapport cyclique correct du signal audio.

- code source

Le code source est écrit en assembleur pour 16F84A au moyen de l'environnement de développement intégré MPLAB, téléchargeable gratuitement sur le site de Microchip. Peu d'élégance dans l'écriture du code, mais la volonté d'obtenir un ensemble simple à comprendre pour toute personne ayant déjà pratiqué les 35 instructions de l'assembleur Microchip.

- paramètrage

Pour paramètrer le logiciel en fonction de ses propres données, il n'est pas nécessaire de connaître l'assembleur Microchip. Les points d'intervention dans le programme source sont identifiés dans le champ commentaire par le signe : ***Pnn***, où nn représente un numéro d'identification.

La procédure de paramètrage est détaillée dans un petit document spécifique.

- compilation du logiciel et programmation du PIC

Pour la compilation du code source paramétré on utilisera l'environnement de développement intégré MPLAB qui est fourni gratuitement par Microchip. On définira un nouveau projet par les commandes "Project-New" que l'on l'appellera par exemple simplix2.mcp. On insèrera le fichier source dans le projet par la commande "Project-Add Files to Project". La compilation sera lancée par la commande "Project-Build All". Après compilation réussie vous êtes en possession d'un fichier nommé simplix2.hex que vous transfèrerez dans le PIC grâce à IC-Prog et à un petit programmateur comme celui décrit dans un article précédent.

cliquer pour agrandir

La programmation in situ du PIC

Conclusion et perspectives

Ce petit décodeur DTMF se veut simple, économique, et malgré tout performant. Il couvre les besoins élémentaires des relais et balises. Des améliorations restent nécessaires, tant au niveau matériel qu'au niveau logiciel. Faites part de vos observations !

Deux sorties restent disponibles sur le microcontrôleur, il reste de la place en mémoire programme ainsi que du temps machine. On pourrait donc envisager de commander deux relais supplémentaires (Simplix 4) au prix d'une modification du circuit imprimé et d'un petit complément logiciel. L'utilisation d'un PIC 16F628A, plus récent et plus économique pourrait également être envisagée. Ces améliorations seront apportées en fonction de l'évolution des besoins. Pour des besoins de télécommande d'installations plus complexes, on peut se demander s'il est souhaitable de concevoir un dispositif plus puissant, ou bien préférable de juxtaposer simplement plusieurs systèmes simples.

Bon trafic avec Simplix 2 !

 

 

73 de Jean-François FOURCADIER, F4DAY

 

 

retour à la page d'accueil du site

 

 

 

© 2000-2016  J.F. Fourcadier F4DAY