Dernière mise à jour :
01/03/2015
Présentation
Cette interface
DMX
extrait les données de 256 canaux DMX (1 à 256 ou 257 à 512) et les délivre sous forme de deux
bus de largeur 8 bits, un pour l'adresse et l'autre pour la
valeur du canal en cours de réception.
Cette
interface fait usage d'un PIC
18F45K22 (ou 18F46K22).
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. Une version allégée et limitée aux 8 premiers canaux DMX peut toutefois être téléchargée.
Schéma
Rien de surprenant dans ce schéma, quand on connait l'objectif du système. Huit lignes
du PIC sont consacrées à la valeur de l'adresse (A0 à A7), huit autres lignes
sont consacrées à la valeur du canal en cours de réception (D0 à D7) et une
ligne additionnelle permet la validation des données (délivrance d'une impulsion Strobe).
Fonctionnement général
Le PIC reçoit la trame DMX sur
l'entrée de son UART Rx1. La valeur des 256 canaux est extraite en
temps réel et est déposée sur le port D du PIC (D0 à D7). A réception
de chaque nouvelle valeur DMX (nouveau canal), la sortie des adresses
(A0 à A7) s'incrémente. Puis une impulsion de Strobe est délivrée quand
les données et adresses sont "validées".
A gauche, extraction des canaux 1 à 256. A droite, extraction des canaux 257 à 512.La plage de canaux pris en compte est définie par la position du cavalier JP1/DmxAddr :
- Si JP1 en place (RB0 = 0), extraction des canaux 1 à 256
- Si JP2 retiré (RB0 = 1), extraction des canaux 257 à 512
Si
la trame DMX véhicule plus de 256 canaux, la sortie
A8 (RC4) passe à l'état haut lors de la réception des canaux supérieurs à 257. La
ligne Strobe (RC5) délivre une impulsion de 100 ns environ quand
les lignes de données D0..D7 et d'adresse A0..A8 sont stabilisées. Le
cavalier JP2/DmxOffset permet de décaler le début d'adresse de prise en
compte, sa mise en place ou retrait dépend du contenu de la trame DMX et donc de la source (présence
ou non d'une valeur $00 en début de trame, avant les canaux utiles)
- Si JP2 en place (RB1= 0), le premier octet de la trame DMX est considéré comme étant le canal #1
- Si JP2 retiré (RB1= 1), le second octet de la trame DMX est considéré comme étant le canal #1
Dans le doute (pour JP2), essayer les deux options.
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 (chose faite au niveau logiciel à un moment précis
de l'initialisation du PIC, pour assurer un bon fonctionnement de
l'interface même quand des données arrivent déjà sur l'entrée DMX au
moment de la mise sous tension).
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).
Alimentation
L'alimentation requise pour l'ensemble du circuit est de +5 V / 100 mA.
Prototype
Réalisé avec ma platine EasyPic, un PIC 18F45K22 et quelques circuits
logiques pour extraire et visualiser la valeur d'un seul canal.
Pour les tests, j'ai utilisé trois contrôleurs DMX différents :
- mon
contrôleur DMX 003, trame de 12/24 canaux;
- mon
contrôleur DMX 004, trame de 256 ou 512 canaux;
- petit contrôleur DMX du commerce DCC6, trame de 6 canaux.
Tests
réalisés avec les canaux 1, 2, 3, 4, 5, 6, 8 et 16. Puisque cela
fonctionne bien pour eux, je suppose que c'est OK pour les autres.
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 développement et compilation.
Interface
DMX 008 - 18F45K22 - LE - (29/02/2015)
(LE = version allégée et limitée aux 8 premiers canaux DMX)
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
01/03/2015
- Première mise à disposition