Electronique > Réalisations > Interfaces > DMX > Interface DMX 008 - Pro

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. 

interface_dmx_008_pcb_3d_a

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).

interface_dmx_008

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".

interface_dmx_008_graphe_001a interface_dmx_008_graphe_001b
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 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)
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.

interface_dmx_008_proto_001a interface_dmx_008_proto_001b interface_bus_001_proto_001c

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