Cette interface DMX dispose d'une entrée DMX (sur connecteur XLR) et de 16 sorties analogiques 0-10V. Elle permet de piloter des systèmes commandés par tension 0-10V (gradateur de lumière, par exemple). Le système est composé de deux PCB prévus pour être superposés.
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.
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.
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.
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 à #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.
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.
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 à 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 à 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 réceptionnées mais ignorées).
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é).
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.
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)Tous deux réalisés en double face.
18/04/2021
- Première mise à disposition.