Electronique > Réalisations > Interfaces > DMX > Interface DMX 002

Dernière mise à jour : 22/01/2012

Présentation

Cette interface DMX dispose d'une entrée DMX et de 10 sorties logiques qui fonctionnent en tout ou rien.

interface_dmx_002_pcb_3d_a

Le montage fait appel à un microcontrôleur PIC de type 16F88 ou 16F628A et a été développé comme base de départ pour d'autres projets DMX. Il fait suite à mon contrôleur DMX 001.
- Schéma 002 : version avec PIC 16F88
- Schéma 002b : version avec PIC 16F628A
Les adresses DMX sont figées en dur dans le programme, pas de microswitches pour les modifier car pas assez de broches dispos sur le PIC, tout simplement (je ne voulais pas utiliser d'expandeur de port mais c'est surement possible). Si d'autres valeurs d'adresses sont requises, il faut les modifier dans le programme source qui devra alors être recompilé (me contacter pour ça). Les sorties #1 à #10 correspondent aux adresses DMX 1 à 10.

Schéma 002 (16F88)

Le schéma n'est pas complexe du tout, et pourtant ça fonctionne.

interface_dmx_002

Bon, il est vrai aussi qu'on ne lui en demande pas trop.

Fonctionnement général
Cette interface dispose de 10 sorties logiques qui fonctionnent en tout ou rien, selon valeur attribuée au dix canaux DMX 1 à 10. Chaque sortie logique Out 1 à Out 10 pass à l'état logique haut si la valeur du canal DMX qui lui correspond est supérieure ou égale à 128. Si la valeur est comprise entre 0 et 127, la sortie logique reste à l'état bas. Exemple avec les canaux DMX 1 à 10 véhiculant les valeurs suivantes.

- 1 2 3 4 5 6 7 8 9 10
Valeur transmise 0 15 127 128 250 34 100 64 255 200
Etat logique 0 0 0 1 1 0 0 0 1 1

La colonne 1 montre qu'avec une valeur de 0 pour le canal 1, la sortie 1 reste à l'état logique bas. La colonne 2 montre qu'avec une valeur de 15 pour le canal 2, la sortie 2 reste à l'état logique bas. La colonne 4 montre qu'avec une valeur de 128 pour le canal 4, la sortie 4 passe à l'état logique haut. etc.

Interface électrique DMX
Confiée à un MAX487 qui travaille de la même façon que dans mon contrôleur DMX 001, mais avec sens des données inversé, à savoir mode réception en permanence et jamais de mode émission. Les deux broches 2 et 3 du MAX487 (broches qui définissent lequel des modules émission ou réception doit être activé) sont donc toutes deux reliées à la masse. La résistance R3 de 120 ohms est montrée câblée sur le schéma mais en pratique il convient de la mettre en série avec un cavalier... ou de ne rien mettre du tout et de prévoir une seconde prise XLR reliée en parallèle sur J1 et sur laquelle pourra être enfichée une terminaison (bouchon 120 ohms) ou un câble allant vers un autre équipement récepteur DMX.

Utilisation des sorties
Les sorties sont de type logique TTL et délivrent donc des signaux électriques qui sont soit 0 V, soit +5 V, sous un courant maximal de 20 mA par sortie (25 mA en fait par sortie individuelle, mais pas conseillé d'aller jusque là si on pense que toutes les sorties peuvent être activées en même temps). Piloter l'allumage de LED est bien et même conseillé pendant la phase de tests, mais sans doute aurez-vous vite envie de passer à quelque chose de plus sérieux (mise en route d'un projecteur, d'une machine à fumée, etc), et dans ce cas une interface logique adaptée devra être ajoutée.

Alimentation
L'alimentation nécessaire est de +5 V pour l'ensemble du circuit. L'usage d'une tension d'alimentation supérieure (en plus de celle de 5 V destinée au PIC) peut être requise si les éléments à commander (piloter) le réclament (lampe de puissance, moteur, etc). Si ce montage est destiné à compléter un équipement existant, peut-être pouvez-vous regarder s'il est possible d'extraire un petit +5 V depuis ce dernier. Selon le type de charge à commander, il se peut que le courant total maximal demandé reste assez faible pour pouvoir vous le permettre. Attention, je conseille cette façon de faire uniquement si vous vous y connaissez assez, hors de question d'aller bidouiller un appareil si vous avez quelque doute que ce soit, surtout s'il est relié au secteur !

Schéma 002b (16F628A)

Même chose qu'avec le PIC 16F88, avec de toutes petites différences.

interface_dmx_002b

Différences avec la version avec PIC 16F88
Dans le schéma 002b avec PIC 16F628A, la sortie Out_5 se voit dotée d'une résistance de charge puisque la broche RA4 du PIC est de type "drain ouvert" alors que ce n'est pas le cas avec la broche RA4 du 16F88. La broche de réception du module UART se trouve en broche RB1 pour le 16F628A alors qu'elle se trouve en RB2 pour le 16F88.

Prototype

Après simulation OK dans Proteus, testé dans le monde réel avec ma platine de développement EasyPic4 et mon interface électrique DMX simplifiée. Pour l'envoi des commande DMX, j'ai utilisé un contrôleur six voies bon marché (Stairville DDC-6) acheté chez Thotho.

dmx_ctrl_stairville_ddc6_001a interface_dmx_002b_proto_001a

Comme ce contrôleur six voies n'a que... six voies, j'ai du ruser un peu et procéder aux tests en deux étapes :
- étape 1 : programmation du PIC pour que les 5 premières sorties logiques correspondent aux canaux DMX 1 à 5.
- étape 2 : programmation du PIC pour que les 5 dernières sorties logiques correspondent aux canaux DMX 1 à 5.
Je reconnais que cette façon de faire ne prouve pas que le système fonctionne bien avec les 10 sorties utilisées en même temps, mais cela prouve que les trames DMX sont correctement décodées et que les 10 sorties du PIC peuvent être activées ou désactivées. Pour moi c'est donc OK et ça doit fonctionner pour les 10 voies en même temps (je sais, l'électronique à parfois ses mystères).

Vidéo de démonstration
Une vidéo rikiki juste pour montrer le circuit en oeuvre.

video_electronique_interface_dmx_002_proto_001

La commande sur voie DMX N°5 est inversée car la sortie utlisée (broche RA4 d'un PIC 16F628A) qui lui correspond est en drain ouvert et la LED est branchée à l'inverse des autres. Pour les tests, je ne me suis pas fatigué à ajouter un inverseur logique.

Logiciel du PIC

Les fichiers binaires compilés *.hex à flasher dans le PIC sont disponibles dans l'archive zip ci-après (un fichier pour 16F88 et un pour 16F628A). MikroPascal V5.30 utilisé pour le développement et la compilation.
Interface DMX 002(b) - 16F88/16F628 - (22/01/2012)
Pour ce projet, code source non disponible.
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Non réalisé. Mais quand il sera fait il sera compatible avec les deux versions 002 (PIC 16F88) et 002b (PIC 16F628A). Pour assurer cette compatibilité, il y aura la place pour la résistance R4 (qui ne devra être mise que pour le 16F628A) et un inverseur à cavalier (jumper deux positions) qui permettra de router le signal DMX reçu (venant de la broche 1 de U2) versla broche RB1 ou RB2 du PIC choisi.

Historique

22/01/2012
- Première mise à disposition