Electronique > Réalisations > Interfaces > DMX > Interface DMX 011b - Pro

Dernière mise à jour : 17/08/2025

Présentation

Cette interface DMX dispose d'une entrée DMX (sur connecteur XLR) et de 16 sorties analogiques 0-10V indépendantes. Elle permet de piloter des systèmes commandés par tension 0-10V (ancien gradateur de lumière, par exemple). 


interface_dmx_011b_pcb_3d_front interface_dmx_011b_int-analog_pcb_3d_a_front
Carte de décodage DMX (à gauche) et interface de sortie analogique 16 voies (à droite)

Le montage fait appel à un microcontrôleur PIC 18F45K22 qui pilote des CNA (convertisseurs numérique/analogique) de type MCP4922, via un bus SPI. L'adresse de base DMX peut être ajustée entre 0 et 511. Il s'agit du même montage que mon interface DMX 011, la différence réside uniquement dans la scission des deux parties (1 PCB pour le récepteur DMX et 1 PCB pour les conversions N/A). Les deux circuits peuvent être superposés, la "petite" carte DMX au-dessus de la "grosse" carte d'interface de sortie.

Schéma

Le schéma de cette interface DMX est décomposé en deux parties : coeur (récepteur DMX) et étage de conversion N/A à 16 voies.


interface_dmx_011b
Coeur (récepteur DMX) = idem Interface DMX 011

interface_dmx_011b_int-analog
Interface de conversion N/A 16 voies 


Fonctionnement général

Les valeurs véhiculées dans la trame DMX sont extraites et traitées par le logiciel du PIC et sont ensuite traduites en tension analogique par des convertisseurs N/A (Numérique/analogique). La tension maximale issue de ces convertisseurs étant ici de +5 V, un AOP amplifie cette tension par deux, pour allonger l'étendue de la plage de tension de sortie. De cette façon, la valeur des canaux DMX traités est convertie en une tension comprise entre 0 V (valeur DMX = 0) et +10 V (valeur DMX = 255). Un réglage fin permet d'ajuster la tension de sortie à +10,0 V pour une valeur de canal DMX de 255.


Conversion N/A et amplification

La conversion N/A est assurée par les MCP4922, des convertisseurs doubles de résolution 12 bits assez bon marché de Microchip. Leurs broches de tension de référence VREFA et VREFB permettent de spécifier la valeur haute (maximale) de la tension de sortie correspondant à la pleine échelle du convertisseur (valeur 4095). Notons au passage que la valeur véhiculée dans les canaux DMX est codée sur 8 bits (256 valeurs possibles, plage de 0 à 255) et que le convertisseur MCP4922 travaille sur 12 bits (4096 valeurs possibles, plage de 0 à 4095). Pour cette raison, les valeurs extraites de la trame DMX sont "amplifiées" dans un rapport de 16 par le PIC, avant d'être envoyées aux convertisseurs. Le transfert des données sur le bus SPI s'effectue à une vitesse d'horloge de 4 MHz (le MCP4922 peut travailler jusqu'à 20 MHz).

La tension de sortie de chaque MCP4922 ne peut excéder la tension d'alimentation du convertisseur, avec les broches de référence haute du CNA soumises à la même tension d'alimentation. Pour pouvoir disposer d'une tension de sortie supérieure à +5 V, il faut l'amplifier, et le plus simple pour cela est d'utiliser des AOP qui eux sont alimentés sous une tension suffisante (ici 12 V à 15 V). Les LM324 (AOP d'usage courant) conviennent amplement pour cette tâche, mais si leur tension de sortie peut aller très près du zéro volt, la tension de déchet vers le rail d'alimentation positive en revanche est plus élevée, de l'ordre de 1,5 V. Ce qui veut dire que si le LM324 était alimenté sous 10 V, sa tension de sortie max ne pourrait pas dépasser +8,5 V. C'est la raison pour laquelle l'alimentation des LM324 doit être ici d'au moins 11,5 V, d'où la valeur plus standard de 12 V (ou plus, mais pas trop tout de même pour ne pas faire chauffer inutilement le régulateur de 5 V qui fait suite). 

Afin de disposer d'une réglage fin de la tension max de sortie (10 V), l'amplification apportée par les AOP est un peu supérieure à 2, et la tension de référence des CNA peut être ajustée à une valeur inférieure à +5 V pour compenser cet "excès" de gain.


Adresse de base DMX

Le choix de l'adresse DMX de base se fait par le biais des interrupteurs câblés sur les lignes RB0 à RB5 et RA0 à RA2 du PIC (groupe d'interrupteurs appelé DSW1, lignes A0 à A8). S'il vous manque les notions de base du binaire, c'est le moment de réviser. Les résistance de pullup interne du PORTB ne sont pas activées, ce qui explique la présence des résistances de rappel R3 à R12 (R12 et la ligne Ext ne sont pas utilisées actuellement, extension à venir). Un interrupteur ouvert correspond à une entrée à l'état bas. En fermant un interrupteur, l'entrée correspondante est reliée au +Valim et se voit donc imposer un état haut. 

Sur le schéma, seul le premier interrupteur correspondant à l'adresse A0 (et relié à la broche RB0 du PIC) est fermé, l'adresse de base DMX est donc égale à 1. Configuré de la sorte, le montage réagit aux données véhiculées dans les canaux DMX #1 à #16. Si l'adresse spécifiée avec les interrupteurs DSW1 est 14, alors le montage réagit aux données véhiculées dans les canaux DMX #14 à #29.

Le PIC doit travailler très vite pour "en même temps" lire la trame DMX et élaborer les signaux de commande à destination de l'interface de sortie analogique. Si j'avais inclus la routine de lecture de l'adresse DMX dans la boucle principale, cela aurait consommé inutilement des ressources processeur. La lecture de l'adresse DMX de base est effectuée une seule fois, lors de la mise sous tension. Le bouton de reset SW1 devra donc être pressé si vous modifiez l'adresse DMX pendant que le montage est sous tension.


Entrée DMX

Le circuit d'interface MAX487 travaille ici toujours dans le même sens, ses entrées de direction RE et DE (broches 2 et 3) sont soumise à un état bas pour passer en mode réception, après la phase d'initialisation générale du PIC. La résistance R1 de 120 ohms est montrée câblée sur le schéma mais en pratique elle se trouve en série avec un cavalier qui permet de la mettre en ou hors circuit. On peut aussi ne pas la prévoir du tout et installer une seconde prise XLR reliée en parallèle sur J1 et sur laquelle on pourra enficher une terminaison (bouchon 120 ohms) ou un câble qui va vers un autre appareil (récepteur) DMX.


Nombre de canaux DMX reçus différent de 16 ?

L'interface est actuellement prévue pour traiter 16 canaux. Si le nombre de canaux véhiculés dans la trame DMX est inférieur à 16, le logiciel du PIC le comprend automatiquement et s'y adapte : les sorties inutilisées restent inactives (à 0 V). Si le nombre de canaux DMX est supérieur à 16, alors le logiciel ne prend que ce dont il a besoin, toujours en commençant à l'adresse de base spécifiée par l'utilisateur. Dans ce dernier cas, l'envoi des données aux convertisseurs MCP4922 à lieu alors même que les données continuent d'arriver sur l'entrée DMX de l'interface (ces dernières sont toujours réceptionnées, mais ignorées).


Alimentation

Deux rails d'alimentation continue régulée sont requis : +12 V pour l'étage de sortie,et +5 V pour le PIC et les CNA. Le 12 V n'est pas très critique, les AOP doivent ici être alimentés entre +11,5 V et +15 V (maximum 18 V). Le +5 V est tiré d'un régulateur de tension LM7805 en boîtier TO220 qui sera de préférence doté d'un petit dissipateur thermique (radiateur). La tension issue du secondaire du transformateur d'alimentation TR1 est de 9 Vac ou 12 Vac, mais un modèle 9 Vac pourra être tout juste limite (dépend du modèle de transfo, de la tension secteur effective et du pont de diodes utilisé). 


Points test

Quelques broches du PIC délivrent des signaux caractéristiques, permettant de faciliter un dépannage éventuel :

Ces points de contrôle n'ont pas besoin d'être reliés ailleurs, ils ne servent qu'en cas de problème. Le point de contrôle DMXReset nécessite obligatoirement un oscilloscope numérique ou un analyseur de données, vu la faible largeur des impulsions délivrées (125 ns).

   

Prototype

Réalisé conformément à l'implantation des composants visible plus loin. 
   
interface_dmx_011b_proto_rm_001a interface_dmx_011b_proto_rm_001b interface_dmx_011b_proto_rm_001c
   
Dans un premier temps, je n'ai peuplé qu'un quart de la carte interface, c'est-à-dire 4 sorties sur les 16 (2 circuits MCP4922 + 1 circuit LM324). Une fois le bon fonctionnement vérifié avec mon petit contrôleur DMX 6 voies, j'ai peuplé la totalité de la carte (8 circuits MCP4922 + 4 circuits LM324 pour les 16 sorties). Testé ensuite avec un contrôleur DMX 16 voies, tout fonctionne comme attendu.
   
interface_dmx_011b_proto_rm_001d interface_dmx_011b_proto_rm_001e interface_dmx_011b_proto_rm_001f
   
Les photos qui suivent montre la tension obtenue sur la sortie #1 de l'interface en fonction de la valeur du canal DMX #1. Les résultats sont identiques pour les quinze autres voies.
   
interface_dmx_011b_proto_rm_001g interface_dmx_011b_proto_rm_001i interface_dmx_011b_proto_rm_001j interface_dmx_011b_proto_rm_001k interface_dmx_011b_proto_rm_001l
   
Après ajustage de la tension de référence des DAC, la tension de sortie minimale (relevée pour la valeur DMX = $00 = 0d) est de 0,005 V, tandis que la tension de sortie maximale (relevée pour la valeur DMX =$FF = 255d) est de 10,01 V.

Anectode : au tout début, j'ai eu la curieuse idée de mettre des TL084 à la place des LM324 (ou LM6134) et ai constaté une chose étrange : pour les faibles valeurs de tension en sortie des CNA, la sortie des AOP TL084 se bloquait en position max (environ 11V, tension de sortie proche de la tension d'alim). Normalement, la tension de déchet basse se situe autour de 1,5 V pour ce circuit. Le fait d'avoir relié directement la sortie du DAC sur l'entrée de l'AOP y est peut-être pour quelque chose, je n'ai pas cherché plus loin, puisque cela fonctionne avec les "bons" AOP que j'ai laissés par la suite.

   

Logiciel du PIC

Le fichier binaire compilé *.hex à flasher dans le PIC est disponible dans l'archive zip ci-après (version limitée LE). 

Interface DMX 011(b) - 18F45K22 - LE - (14/01/2018)
Projet Pro. Code source non disponible. Version libre = version allégée (LE) avec nombre de sorties analogiques limité à 2.
Pour la version à 16 sorties, me contacter.
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuits imprimés (PCB)

Tous deux réalisés en double face.

 
interface_dmx_011b_int-analog_pcb_components_top
 
interface_dmx_011b_pcb_components_top
 
Pro - PCB non disponible en libre service.

Le PCB de l'interface de sortie possède quatre trous de fixation qui tombent pile en face de ceux de la carte récepteur DMX.
Coup de chance ?

   

Historique

17/08/2025
- Ajout photos du prototype (il n'est jamais trop tard).

18/04/2021
- Première mise à disposition.