Dmx 512
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Dmx 512



  1. #1
    invite0d1cb8a8

    Dmx 512


    ------

    Bonsoir!!!!

    Je voudrais générer une trame DMX 512 avec un PIC 16F877A cadencé à 22Mhz.
    Le protocole DMX définit la durée d'un bit à 4µs.
    Mon problème est le suivant : la durée minimum de changement d'état de ma sortie est de 5µs, mon PIC est donc trop 'lent' pour générer la trame, j'ai posé la question à un prof d'elec qui m'a dit que cette durée mini devrait être de l'orde de 200ns.

    Est ce normal? Y-a-t-il des config à faire sur l'oscillateur? Dois-je utiliser un PIC plus rapide?

    D'avance merci!!!

    PS: je programme sur l'EasyPIC5 avec le compilateur MikroC.
    La boucle de Test : (je suis débutant en prog)

    void main()
    {
    TRISB = 0; // PORTB is output
    PORTB = 0xFF; // Initialize PORTB

    while(1)
    {
    PORTB = 1;
    PORTB = 0;
    }

    }

    -----

  2. #2
    RISC

    Re : Dmx 512

    Salut,

    Un PIC16 est trop lent pour le protocole DMX512 comme tu l'as analysé.

    La note d'application AN1076 DMX512 utilise le PIC18F24J10.

    a+

  3. #3
    invite0d1cb8a8

    Re : Dmx 512

    Salut!! Merci pour ta rep!!

    C'est bien ce que je pensais, pourtant je viens de voir un article ds lequel le gas à un pb du même type que le mien, mais il arrive quand même à générer sa trame avec un 16F84 à 4Mhz!!

    => http://www.mac-gyver.be/dmx/programmateurdmx/

    Il dit qu'a 4Mhz l'instruction dure 1µs, pourquoi je n'arrive pas à cette durée avec un PIC plus puissant et une freq d'horloge plus élevée??

    a+!!

  4. #4
    RISC

    Re : Dmx 512

    Salut,

    C'est pas complètement impossible avec un PIC16 mais cela va être une grosse galère car le PIC16 a une fréquence maximum de 20MHz (tcy = 200ns).

    La durée d'un bit en DMX512 est de 4us = 20 x tcy.

    Tu seras donc en permanence confronté à des problèmes de vitesse (c-a-d de compter tes cycles en ASM pour être sûr que tu n'as pas de PB temps-réel).

    Si tu prends un PIC18 à 40MHz, tu as tcy = 100ns donc pour un bit 4us = 40 x tcy.
    Autre chose, grace à l'astuce de la note d'application sur l'USART, cela décharge énormément le processeur car il n'a plus besoin d'échantillonner les bits mais il les reçoit par l'USART.
    Tu peux donc même envisager de programmer en langage C au lieu de faire l'assembleur.

    a+
    Dernière modification par RISC ; 03/10/2009 à 14h55. Motif: correction

  5. A voir en vidéo sur Futura
  6. #5
    invite50c4cbed

    Re : Dmx 512

    je ne connais pas mikroC mais certains compilateur C font des code lois d'être optimiser (notamment systématiquement remétre le port en sortie dans TRIS avant d'envoyer la valeur sur le port et pour sa il leur faut 4 cycle)

    bref quand il faut un timing précis l'assemble et souvent mieux

  7. #6
    invite0d1cb8a8

    Re : Dmx 512

    Okay!! Merci pour vos réponses!!

    J'ai un 18F2550, j'vais essayer avec.
    Ou ptet essayer dme mettre à l'assembleur, c'est compliqué?

    Bonne soirée!!!

  8. #7
    invite50c4cbed

    Re : Dmx 512

    je trouve que c'est un peut plus dur à apprendre que le C

    http://www.abcelectronique.com/bigonoff

    tu trouvera de bon cour d'assembleur pour PIC (pour ce qui ton but du moment ce sons les partie 1, 2 et 5 qui te serons utile)

  9. #8
    invite0d1cb8a8

    Re : Dmx 512

    Yeah ça marche!!!

    J'arrive à piloter ma lyre avec mon PIC, faut dire qu'elle est tolérante parce que je suis pas sur de respecter les tolérances définies pas le protocol

    Par contre maintenant j'ai un autre problème, je n'ai jamais utilisé de 18F et je n'arrive pas à configurer mes ports en entrées. J'utilise le registre TRIS (qui marche très bien pour les sorties) mais sa ne marche pas en entrée. J'ai appris en lisant le datasheet, l'existence d'un registre LAT qui serait en relation avec les config E/S.
    Auriez vous des précisions là dessus??

    PS : Merci pour les cours d'asm, je vais y faire un tour =)

  10. #9
    RISC

    Re : Dmx 512

    Salut,

    Peux-tu faire voir précisémment quelles broches tu n'arrives pas à configurer ?
    TRISx = 1 --> entrée, TRISx = 0 --> sortie mais....d'autres fonctions sont prioritaires comme les E/S analogiques. Au reset les broches qui comportent ANx sont automatiquement en mode ANALOGIQUE (pas en digital). Il faut donc aussi initialisé le registre ADCON
    Relis le chapitre sur les ports d'E/S de la datasheet. Des exemples sont donnés pour chaque port.
    De même pour les broches analogiques associées aux comparateurs --> initialiser CMCON

    a+

Discussions similaires

  1. dmx 512
    Par invite877a9ba7 dans le forum Électronique
    Réponses: 5
    Dernier message: 13/06/2010, 00h33
  2. trame dmx
    Par invite8a7e1f83 dans le forum Électronique
    Réponses: 2
    Dernier message: 02/06/2008, 11h20
  3. Mode DMX
    Par inviteffe7a925 dans le forum Électronique
    Réponses: 2
    Dernier message: 01/04/2007, 11h36
  4. Projet DMX
    Par invitebd53a21c dans le forum Électronique
    Réponses: 1
    Dernier message: 04/02/2007, 11h36
  5. demande de documentation pour dmx 512
    Par invite5b2b2d2b dans le forum Électronique
    Réponses: 1
    Dernier message: 24/07/2006, 22h36
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...