Dernière mise à jour :
31/01/2016
Présentation
Cette interface
DMX
dispose d'une entrée DMX (sur XLR) et de 8 sorties qui peuvent
fonctionner en mode Logique (On/Off) ou en mode Gradateur
(dimmer). Elle inclue un étage de sortie en puissance pour l'attaque
directe de lampes à LED basse tension (jusqu'à 20 W / 12 V par
sortie).
Le montage fait appel à un microcontrôleur
PIC 18F45K22 et correspond à une mise à jour de mon
interface DMX 003. L'adresse de base
DMX peut être ajustée entre 1 et 512.
Schéma
Pour un soucis de clarté, la section de puissance est détachée de la section de commande.
Réception/commande DMXInterface de puissance
Fonctionnement général
L'interface dispose de 8 sorties qui fonctionnent en mode Logique ou
Gradateur, selon la position du microswitch DSW2:2.
- DSW2:1 côté masse (RA0 = 0) : mode Logique - Chaque sortie prend l'état
logique 0 ou 1 et peut dans ce cas servir pour arrêter ou mettre en
service une lampe,
un relais ou un moteur (via interface appropriée).
- DSW2:1 côté +5
V (RA0 = 1) : mode Gradateur - Chaque sortie délivre un signal PWM dont
le rapport cyclique dépend des valeurs DMX reçues, et peut dans ce cas
faire varier la luminosité de lampes (filament ou LED).
L'état des
sorties est dans tous les cas conditionné par la valeur
véhiculée
dans les canaux DMX. L'exemple qui suit montre ce qui se passe en mode
Logique ou Gradateur, selon les valeurs transmises.
Sortie |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Valeur DMX |
0 |
15 |
127 |
128 |
250 |
34 |
100 |
64 |
255 |
200 |
15 |
250 |
Etat logique (1) |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
PWM en %
(1) |
0 |
6 |
50 |
50 |
98 |
13 |
39 |
25 |
100 |
78 |
6 |
98 |
Nota (1) : Etat logique
ou
signal PWM, dépend de la postion du cavalier JP1.
En
mode Logique, les sorties ne s'activent que si la valeur DMX
correspondante est supérieure ou égale à 128. Cette suite de valeur
dans la trame DMX active donc seulement les sorties 4, 5, 9, 10 et 12.
En mode gradateur, le rapport cyclique des sorties dépend des valeurs
transmises, selon la formule suivante :
Rapport cyclique (en %) = 100 / 255 * N
N étant la valeur transmise dans la trame DMX (valeur 0
-> PWM = 0%; valeur 255 -> PWM = 100%).
Choix de l'adresse de base DMX
Le
choix de l'adresse de base (1 à 512) se fait par le biais des interrupteurs
câblés sur les lignes RB0 à RB7 du PIC (bits #0 à #7, groupe d'interrupteurs appelé
DSW1) et de l'interrupteur câblé sur la ligne RA2 du PIC (bit #8). Si vous ne connaissez pas encore le mode binaire
c'est
le moment de s'y mettre.
Attention, les pullup internes du PORTB sont activés (pour la ligne RA2 la résistance de pullup est externe), ce qui fait qu'à
un interrupteur ouvert correspond un niveau logique haut. En fermant
un interrupteur, l'entrée correspondante est reliée à la masse
et
se voit donc imposer un état bas. Dans le schéma, seul le premier
interrupteur (relié à RA0) est ouvert, l'adresse DMX est donc 1. Configuré
de la sorte, le montage réagit aux données véhiculées dans les canaux
DMX #1 à #12. 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 à #25.
Interface électrique DMX
Le circuit
d'interface électrique MAX487 (ou MAX481 ou SN75176BP) travaille ici
toujours
dans le
même sens,
ses entrées de direction RE et DE (broches 2 et 3) sont soumises à un
état bas pour passer en mode réception.
La commande des deux lignes RE et DE n'est pas établie "en dur"
(directement câblées à la masse) mais de façon logicielle - au bon
moment
lors de l'initialisation du PIC, pour que d'éventuelles données DMX qui
arrivent au PIC lors de sa mise sous tension ne pose pas de problème.
La résistance R3 de 120 ohms est
montrée câblée sur le schéma mais en pratique il
convient de la mettre
en série avec un cavalier pour pouvoir la mettre hors service si
besoin. 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 allant vers un autre appareil
(récepteur) DMX.
Utilisation des sorties
Les
sorties du PIC attaquent directement des transistors MOSFET
compatibles "logique", ce sont eux qui permettent de commuter des
courants de valeur élevée (ici plusieurs ampères par sortie, mais il
faut dans ce cas que l'alim générale 12 V arrive à suivre). En mode
gradateur, les signaux PWM
délivrés ont une période
voisine de 10 ms, ce qui correspond à une fréquence voisine
de 100 Hz. Cette fréquence, suffisament élevée
pour ne pas produire un scintillement visible, est liée à
l'utilisation d'un timer qui "découpe" chaque période en 256
tranches, pour bénéficier de la pleine résolution (256 pas et non pas
100). Le timer en question (Timer1 16 bits) opère lui-même à une
période d'environ 38 us. L'utilisation d'une courbe (table) de
correction de luminosité (pour adapter la plage linéaire des valeurs
DMX à la sensibilité de l'oeil qui est logarithmique) demande quelques
ressources processeur supplémentaires et ralentit un peu l'ensemble,
mais on s'en sort bien.
Mode de fonctionnement en absence de données DMX
Si
pour une raison quelconque les données DMX n'arrivent plus (coupure en
plein milieu d'une trame), le logiciel peut réagir de deux façons
différentes :
- si DSW2:1 ouvert (RA0 = +5 V) : les sorties conservent l'état qu'elles avaient sur la dernière trame DMX valide reçue.
- si DSW2:1 fermé (RA0 = 0 V) : les sorties sont désactivées.
Ce
fonctionnement est rendu possible grâce à l'utilisation d'un timer
dédié qui incrémente un compteur en absence de signal DMX, compteur qui
est remis à zéro à chaque trame valide reçue. Si le compteur atteint
une valeur "critique", cela est considéré comme une absence de trame DMX persistante.
Alimentation
L'alimentation requise pour le circuit de commande (PIC et MAX487) est
de +5 V, un simple régulateur de tension 5 V (LM7805 ou 78L05)
convient. La ligne +12 V est réservée pour les sorties de puissance.
Chaque transistor de sortie peut commuter un courant de plusieurs
ampères, mais imaginez la puissance requise pour le bloc secteur 12 V,
si on veut débiter 5 A sur les 8 sorties en même temps (40 A au
total, tout de même).
Un bouton de reset ?
Le PIC doit travailler très vite pour en même
temps lire la trame DMX et élaborer les signaux PWM, et je ne
jugeais pas utile d'inclure dans la boucle principale, la routine de
lecture de l'adresse DMX spécifiée par l'utilisateur. On limite donc au maximum le
travail "temps réel" et on déporte ce qu'on peut dans la partie
d'initialisation générale. Le bouton de reset SW1 devra être
pressé si vous modifiez l'adresse DMX pendant que le montage
est
sous tension.
Prototype
Mise au point (simulation) avec Proteus, puis tests dans le monde réel avec une
platine sans soudure relié à un PICkit3 et mon
interface
électrique DMX
simplifiée. Pour les commande DMX, j'ai utilisé mes
contrôleurs
Stairville DDC-6 et Botex SDC-16.
Fonctionnement OK.
Logiciel du PIC
Le fichier binaire compilé *.hex à flasher dans le
PIC est disponible dans l'archive zip
ci-après
Interface
DMX 003b - 18F45K22 - (31/01/2016)
Pour ce projet, code
source MikroPascal non disponible.
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
31/01/2016
- Première mise à disposition