Electronique > Réalisations > Interfaces > DMX > Interface DMX 011 [Pro]

Dernière mise à jour : 14/01/2018

Présentation

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

interface_dmx_011_pcb_3d_a

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.

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 à 8 voies.

interface_dmx_011
Coeur (récepteur DMX)

interface_dmx_011_dac_8outs
Interface de conversion N/A 8 voies (en double pour 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 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 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 à #8. 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 à #21. Le PIC doit travailler très vite pour en même temps lire la trame DMX et élaborer les signaux de commande. Si j'avais inclus la routine de lecture de l'adresse DMX dans la boucle principale, cela aurait consommé inutilement des ressources processeur. Le bouton de reset SW1 devra ê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 8 ?
L'interface est actuellement prévue pour traiter 8 canaux. Si le nombre de canaux véhiculés dans la trame DMX est inférieur à 8, 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 à 8, 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 réceptionnées mais ignorées).

Alimentation
Deux rails d'alimentation continue sont requis : +12 V (non régulé dans le cas présent, mais il pourrait l'être) pour l'étage de sortie, et +5 V pour le PIC et les CNA. Le 12V 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.

Extension à 16 voies ?
Le logiciel a été conçu pour piloter 16 voies de sortie 0-10 V, mais j'ai volontairement limité le nombre de voies à 8 pour une question de dimensions de circuit imprimé. L'ajout de 8 voies supplémentaires impose simplement la "mise en parallèle" de 4 convertisseurs doubles MCP4922 et de 2 quadruples AOP LM324 sur les circuits existants, avec quatre lignes de sélection de circuit supplémentaires (lignes CS4 à CS7 sur les broches RD6, RD7, RC0 et RC1 du PIC).

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 - 18F45K22 - LE - (14/01/2018)
Projet Pro. Code source non disponible. Version libre = version allégée (LE) avec nombre de sorties limité à 2.
Pour la version à 8 ou 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.

Circuit imprimé

Non réalisé, vue 3D uniquement pour aperçu. A noter que cette vue 3D montre les composants requis pour 8 sorties analogiques. Par la suite, j'ai décidé de séparer ce PCB en deux : un premier PCB pour le contrôleur seul, et un second PCB pour l'interface de sortie (interface analogique 001 ou interface analogique 002).

Historique

14/01/2018
- Première mise à disposition.