Electronique > Réalisations > Interfaces > DMX > Interface DMX 003a - Pro 

Dernière mise à jour : 01/01/2023

Présentation

Cette interface DMX dispose d'une entrée DMX sur XLR et de 12 sorties qui peuvent fonctionner en mode Logique (On/Off) ou en mode Gradateur (dimmer). 

interface_dmx_003aa_pcb_3d_front

Ce montage qui fait appel à un microcontrôleur PIC 18F4xKxx est une évolution de mon interface DMX 003 avec PIC 18F45K22 dont l'adresse de base DMX était limitée à 255. Ici, on peut grimper jusqu'à l'adresse 512 (voir détails dans le texte). Des microcontrôleurs un peu plus récents ont été utilisés et deux versions ont été mises au point :

- schéma 003aa avec PIC 18F45K50 - 12 sorties
- schéma 003ab avec PIC 18F45K80 (ou 18F46K80) - 12 sorties
- schéma 003ac avec PIC 18F46Q10 - 12 sorties

  

Schémas 003a - avec 18F45K50 ou 18F45K80

Les deux schémas (avec 18F45K50 ou 18F45K80/18F46K80) sont représentés ci après, mais seul le montage avec PIC 18F45K50 sera décrit dans le détail. Le fonctionnement général du montage avec PIC 18F45K80 (ou 18F46K80) est similaire, il y a juste quelques différences de câblage des lignes d'entrée/sortie du PIC.

interface_dmx_003aa_18f45k50
Schéma 003aa avec PIC 18F45K50

interface_dmx_003ab_18f4xk80
Schéma 003ab avec PIC 18F45K80 ou 18F46K80

   

Si on compare le schéma des interfaces DMX 003a basée sur PIC 18F45K50 ou 18F45K80 avec celui de l'interface DMX 003 basée sur PIC 18F45K22, on constate que l'affectation des broches d'entrée/sortie du PIC n'est pas la même. En effet, il n'existe pas de compatibilité "broche à broche" totale entre les PIC 18F45K22 et 18F45K50. 

Le PIC45K50 est doté d'un module USB qui n'est pas utilisé ici, le choix de cette référence de PIC a été principalement dicté par des raisons de disponibilité chez les revendeurs. 


Fonctionnement général
L'interface dispose de 12 sorties qui fonctionnent en mode Logique (on/off) ou Gradateur (dimmer), selon la position du cavalier JP1.

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 pour les 12 canaux DMX.


Sortie #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12
Canal DMX (1) A+0 A+1 A+2 A+3 A+4 A+5 A+6 A+7 A+8 A+9 A+10 A+11
Valeur DMX 0 15 127 128 250 34 100 64 255 200 15 250
Etat logique (2) 0 0 0 1 1 0 0 0 1 1 0 1
PWM en % (2) 0 6 50 50 98 13 39 25 100 78 6 98

Nota (1) : A = adresse de base DMX, par exemple A=56.
Nota (2) : Etat logique(on/off) ou signal PWM (dimmer), dépend de la postion du cavalier JP1.


En mode Logique (on/off), les sorties ne s'activent que si la valeur DMX correspondante est supérieure ou égale à 128. La suite de valeurs dans la trame DMX donnée ci-devant en exemple active donc seulement les sorties 4, 5, 9, 10 et 12.

En mode gradateur (dimmer), le rapport cyclique des sorties dépend des valeurs transmises, selon la formule suivante :
Rapport cyclique (en %) = (N * 100) / 255 
N étant la valeur transmise dans la trame DMX (N = 0 -> PWM = 0% ; N = 127 -> PWM = 50% ; N = 255 -> PWM = 100%).


Choix de l'adresse de base DMX

Le choix de l'adresse de base se fait par le biais des interrupteurs câblés sur les lignes A0 à A8, à savoir RB0 à RB5 et RA1 à RA3 du PIC (groupe d'interrupteurs appelé DSW1). Le numéro d'adresse DMX est comme d'habitude codé en binaire. Du fait de la présence des résistances de rappel R3 à R5 et des pullup internes du PORTB qui sont activés, un interrupteur ouvert correspond une entrée à l'état haut. En fermant un interrupteur, l'entrée correspondante est reliée à la masse et se voit donc imposer un état bas.

Bien que l'interface puisse extraire les valeurs des 512 canaux d'une trame DMX, il va de soi que l'adresse de base ne pourra pas être configurée au-delà de 501 si on veut exploiter les 12 sorties (utilisation des canaux #501 à #512).

   

Avec ou sans StartCode ?

Par défaut, l'interface considère que le StartCode est présent au début de chaque trame DMX. Pour ignorer le StartCode, procéder ainsi :

1 - éteindre l'interface DMX
2 - placer tous les interrupteurs d'adresse DMX (DSW1) en position "0" (interrupteurs fermés, position ON)
3 - démarrer l'interface DMX puis, dans les 5 secondes qui suivent...
4 - placer la ligne d'adresse DMX A0 (DSW1[1-18]) en position "1" (interrupteur ouvert, position OFF)
5 - attendre 2 secondes, puis éteindre l'interface DMX
6 - configurer les interrupteurs d'adresse DMX (DSW1) à une adresse supérieure à 0
7 - démarrer l'interface DMX - désormais, le bit de StartCode n'est plus pris en compte

Pour restaurer la prise en compte du StartCode, procéder ainsi :

1 - éteindre l'interface DMX
2 - placer tous les interrupteurs d'adresse DMX (DSW1) en position "0" (interrupteurs fermés, position ON)
3 - démarrer l'interface DMX puis, dans les 5 secondes qui suivent...
4 - placer la ligne d'adresse DMX A1 (DSW1[2-17]) en position "1" (interrupteur ouvert, position OFF)
5 - attendre 2 secondes, puis éteindre l'interface DMX
6 - configurer les interrupteurs d'adresse DMX (DSW1) à une adresse supérieure à 0
7 - démarrer l'interface DMX - désormais, le bit de StartCode est à nouveau pris en compte
   

Cette façon de faire ne gêne en rien le fonctionnement de l'interface en mode désactivée (adresse DMX restant fixée à 0).

   
Interface bus DMX

Le circuit qui assure l'interface électrique entre le PIC et le bus DMX est un MAX487, aucune isolation galvanique n'a été prévue. Le 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 au moment opportun (à un moment bien précis lors de l'initialisation du PIC).

La résistance R2 de 120 ohms peut être mise en ou hors service grâce au cavalier JP2. Pour rappel, cette résistance permet de "terminer" la liaison sur un bus composé de plusieurs machines.

 
Comportement face à des trames DMX défectueuses

Si la trame DMX disparaît en cours de route, l'interface DMX 003a désactive les 12 sorties (ces dernières passent à l'état logique bas). 

   

interface_dmx_003ax_graph_001a

   

Cet état "sorties désactivées" persiste jusqu'à ce que 5 nouvelles trames DMX valides (au moins) réapparaissent. Le temps de réaction est de l'ordre de 5 ms pour la disparition de la trame et de l'ordre de 100 ms lors du retour de trames valides.

Remarque : une mise à jour du logiciel pourrait aussi être prévue pour sauvegarder les valeurs de la dernière trame DMX valide, ce qui permettrait de laisser les sorties dans l'état où elles se trouvaient avant la perte de transmission de la trame DMX.

 
Utilisation des sorties

Les sorties sont de type logique TTL et délivrent donc des signaux électriques qui sont soit 0 V, soit +5 V, sous un courant maximal de 15 mA par sortie. Les sorties sont capables de débiter 25 mA de façon unitaire, mais le PIC ne peut pas fournir un courant total supérieur à 70 mA, information donnée dans son datasheet (feuille de caractéristiques techniques). On doit donc limiter le courant individuel de sortie en partant de l'hypothèse que toutes les sorties peuvent être activées en même temps : 70 mA pour 12 sorties, cela donne 5,8 mA max pour chacune. Sachant qu'il est fort probable que ce genre d'interface ne serve pas qu'à allumer des LED, une interface de sortie (qui réclame moins de 5 mA par entrée - idéalement 1 ou 2 mA) sera la bienvenue. Exemple pour pilotage tout ou rien : interface logique.

En mode gradateur, les signaux PWM délivrés ont une résolution de 8 bits (256 niveaux) et leur période est de 15 ms (environ 66 Hz) pour la version avec PIC18F45K50 ou de 11 ms (environ 90 Hz) pour la version avec PIC18F45K80. Ces fréquences sont suffisament élevées pour que l'oeil ne soit pas géné par un effet de scintillement.


Alimentation
L'alimentation requise pour l'ensemble du circuit est de +5 V, elle doit pouvoir fournir une intensité de courant d'au moins 200 mA. L'usage d'une tension d'alimentation supérieure (en plus de celle de 5 V destinée au PIC et au MAX487) peut être requise si les éléments à piloter (lampe de puissance, moteur, etc) le réclament.

Bouton de reset ?
Le bouton de reset SW1 doit être pressé si l'adresse DMX ou la position de JP1 (mode de fonctionnement logique ou gradateur) est modifiée pendant que le montage est sous tension.

   

Prototype

Dans un premier temps, tests réalisés pour les deux montages sur plaque sans soudure, avec mon interface électrique DMX simplifiée. Pour les commande DMX, j'ai utilisé mon contrôleur DMX 003 24 voies fait maison, après avoir effectué la simulation avec mon contrôleur DMX 005.

Dans un second temps, j'ai réalisé un prototype sur PCB pour la version 003aa avec PIC 18F45K50, selon un dessin proche de celui proposé plus loin. Je n'ai pas encore réalisé de "prototype sérieux" pour la version 003ab avec PIC 18F45K80, mais ce PIC 18F45K80 a été mis en oeuvre avec succès dans mon interface DMX 013.

 
Prototype 003aa avec PIC 18F45K50

Tiens, tiens... j'ai oublié la liaison VCC de l'interface d'entrée RS485 (broche 8 de U2/MAX487). Erreur vite corrigée avec une queue de composant faisant office de strap entre broches 8 et 4 dudit composant. Bien entendu, le nouveau PCB est corrigé.

   
interface_dmx_003aa_proto_rm_001a  interface_dmx_003aa_proto_rm_001b  
   

Pour changer un peu, j'ai soudé des LED CMS en apparence jaune qui s'allument en blanc. Cela fonctionne, comme en témoignent les photos suivantes où les canaux DMX activés sont les canaux 1, 3, 5, 7, 9 et 12. Une rupture des trames DMX (provoquée par extinction du contrôleur ou débranchement du câble) se traduit bien par l'extinction des 12 sorties, qui reprennent leur état normal dès le retour de trames valides.

   
interface_dmx_003aa_proto_rm_001c_sdc16  =>  interface_dmx_003aa_proto_rm_001c  
  

Remarques concernant ce prototype

    

Logiciels du PIC

Pro - Logiciels non disponibles en libre accès.

Interface DMX 003aa avec PIC 18F45K50 - (04/12/2022)
Interface DMX 003ab avec PIC 18F45K80 - (04/12/2022)
Interface DMX 003ac avec PIC 18F46Q10 - (09/12/2022)

   

Circuits imprimés (PCB)

PCB réalisé pour le circuit 003aa avec PIC18F45K50, non réalisé pour le circuit 003ab avec PIC18F45K80
   
Circuit 003aa avec PIC 18F45K50
Réalisé en double face.
   

interface_dmx_003aa_pcb_components_top  

   
Circuit 003ab avec PIC 18F45K80
Non réalisé.

   

Historique

01/01/2023
- Ajout dessin circuit imprimé (PCB).
- Ajout photos prototype (testé OK).

04/12/2022
- Première mise à disposition