Dernière mise à jour :
16/11/2014
Présentation
Cette interface
DMX
travaille en tout ou rien et permet de piloter jusqu'à 128 équipements
différents.
Les sorties sont de type TTL (5 V) et une interface appropriée doit
être ajoutée en fonction de la nature des équipements à piloter. Cette
interface a été développée en même temps que mon
contrôleur DMX 004 à 128 canaux tout ou rien. Elle fait usage d'un PIC 18F46K22 et de 16 registres à décalage de type 74HC595 (8 sorties chacun).
Avertissement
Pro - La publication de cet article fait suite à une demande pro, le logiciel complet du PIC n'est pas mis à
disposition libre sur ce site.
Schéma
Forcément, la gestion de 128 sorties demande plus
de circuits intégrés que la gestion de 6 ou 8 sorties. Pour
simplifier, j'ai scindé le schéma total en deux parties, la première
correspond au récepteur DMX et la seconde correspond à l'interface de
"décodage" des 128 sorties (convertisseur série/parallèle). Les deux
schémas sont reliés entre eux par les lignes d'alimentation (masse et
+5 V) et par les trois lignes des données séries (Data, Clock et
Strobe).
Récepteur DMX
Cette partie du montage réceptionne les trames DMX et envoie sous
forme série l'état des 128 sorties logiques, qui dépendent de la valeur
véhiculée dans les 128 canaux DMX sélectionnés par l'utilisateur. Les
sorties Out1b à Out6b du schéma qui précède (port C du PIC) sont des
copies conformes des sorties Out1 à Out6 du schéma qui suit (sorties
registres à décalage).
Convertisseur série/parallèle
Cette partie du montage convertit les données séries en données parallèles pour disposer des 128 commandes de manière séparées.
Fonctionnement général
Le PIC reçoit la trame DMX sur
l'entrée de son UART Rx1. La valeur des
128 canaux sélectionnés par l'utilisateur est stockée en mémoire
vive puis quand arrive la
trame suivante, les sorties TTL sont mises à jour en fonction des
valeurs issues de la trame précédente. Ici on fait simple : chaque
sortie est activée si la valeur du canal DMX correspondant
est supérieure à 127. Il suffit donc d'envoyer dans la trame DMX, des
valeurs comprises entre 0 et 126 (par exemple $00) pour
désactiver les sorties, et des valeurs comprises entre 128
et 255 (par exemple $FF) pour les activer.
Interface électrique DMX
Le circuit
d'interface MAX487 travaille ici uniquement dans le sens
réception, cela est obtenu en mettant les entrées logiques de direction
RE et DE (broches
2 et 3) à l'état bas.
La résistance R3 de 120 ohms est
montrée câblée sur le schéma mais elle est en réalité câblée en
série
avec un cavalier (jumper) pour pouvoir la mettre hors service si
besoin (chaînage éventuel avec d'autres appareils DMX).
Choix des canaux à traiter
L'interface
peut traiter les canaux DMX suivants, selon la position des
interrupteurs câblés sur le port B du PIC (DSW1/Config) :
RB4 | RB3 | RB2 | RB1 | Plage adresses DMX |
0 | 0 | 0 | 0 | 0 à 127 |
0 | 0 | 0 | 1 | 1 à 128 |
0 | 0 | 1 | 0 | 64 à 191 |
0 | 0 | 1 | 1 | 65 à 192 |
0 | 1 | 0 | 0 | 128 à 255 |
0 | 1 | 0 | 1 | 129 à 256 |
0 | 1 | 1 | 0 | 192 à 319 |
0 | 1 | 1 | 1 | 193 à 320 |
1 | 0 | 0 | 0 | 256 à 383 |
1 | 0 | 0 | 1 | 257 à 384 |
1 | 0 | 1 | 0 | 320 à 447 |
1 | 0 | 1 | 1 | 321 à 448 |
1 | 1 | 0 | 0 | 384 à 511 |
1 | 1 | 0 | 1 | 385 à 512 |
L'entrée
RB0 est réservée dans cette application et doit être laissée en l'air
(non câblée). Quant à l'entrée RB1, elle ne sert qu'à "rassurer"
sur le numéro du premier canal DMX (premier canal de la série de 128 sur "base" 0 ou 1).
Sorties
Deux types de sorties sont disponibles :
- 6 sorties directes sur le port C du PIC
- 128 sorties obtenues par des registres à décalage 74HC595 (convertisseur série/parallèle).
La
sortie Out1 reflète l'état du premier canal traité de la trame DMX
(canal 0, 1, 64, 65, 128, 129, ..., 384 ou 385), la sortie Out2
reflète l'état du second canal traité de la trame DMX (canal 1, 2, 65,
66, 129, 130, ..., 385 ou 386), etc.
Alimentation
L'alimentation requise pour l'ensemble du circuit est de +5 V / 1,2 A
pour tenir compte du fait que chaque circuit 74HC595 peut activer ses 8
sorties en même temps et que ces sorties peuvent allumer la LED d'un
optocoupleur ou optotriac.
Comme le 74HC595 ne peut débiter plus de 70 mA, j'ai fixé le max à 8 mA
par sortie (donc 64 mA au max par circuit). Pour l'alimentation
générale, cela donne 8 (mA) x 128 (sorties) = 1,024 A (1,2 A pour la
marge). L'usage d'une tension d'alimentation
additionnelle et supérieure (en plus de celle de 5 V destinée
au PIC et au
MAX487)
sera peut-être requise si une interface additionnelle est ajoutée
pour le
pilotage des appareils à commander (lampe de puissance, moteur,
etc).
Prototype
Réalisé sur plaque sans soudure et avec ma
platine
de développement EasyPic7. Pour l'émission des trames DMX, je souhaitais au départ utiliser trois sources différentes :
- mon
contrôleur DMX 003 à 24 canaux (tests limités aux premiers canaux);
- mon
contrôleur DMX 004 à 128 canaux (spécialement conçu pour tests);
- le logiciel FreeStyler avec une interface maison USB/DMX 512 canaux assemblée avec des chips FTDI232 et MAX487 en CMS.
Mais je n'ai pas réussi à faire fonctionner FreeStyler, ce n'est que partie remise.
Côté matériel, j'avoue n'avoir testé que les 8 premières
sorties de l'interface et les 8 dernières (chaînage de 16 circuit
74HC595 mais câblage de seulement 16 LED, 8 au début de la chaîne et 8
à la fin). Je pars du principe que si cela fonctionne au début et à la
fin de la chaîne, cela fonctionne aussi au milieu.
Logiciel du PIC (version allégée LE)
LE - Fichier compilé (*.hex) disponible dans l'archive zip
ci-après. MikroPascal Pro V6.4
utilisé pour le développement et la
compilation.
Interface
DMX 007 - 18F46K22 - Version limitée - (16/11/2014)
Pour ce projet (demande pro), code
source MikroPascal non disponible et nombre de sorties limitée à 6.
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é.
Historique
16/11/2014
- Première mise à disposition