Ws2812 fonctionnement
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Ws2812 fonctionnement



  1. #1
    cl29200

    Ws2812 fonctionnement


    ------

    Bonjour,

    Je souhaiterais faire fonctionner une led incluant le WS2812. Datasheet : http://www.adafruit.com/datasheets/WS2812.pdf
    J'utilise un pic 16f88 cadencé à 20Mhz.
    D'après mes calculs un cycle = 5ns donc j'ai fait des asm("nop") correspondant au timings de la datasheet.
    Mais je n'y arrive pas la led s'allume aléatoirement.
    Pourriez-vous me donner un coup de main ?

    Merci d'avance

    -----

  2. #2
    vincent66

    Re : Ws2812 fonctionnement

    Bonjour,
    Sans votre schéma et sans savoir ce que vous voulez faire et à quoi servent ces nop, difficile de répondre mais...
    Vous commettez une erreur : à 20 MHz un cycle du quartz est de 50ns et un cycle machine de 200ns ...

    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  3. #3
    cl29200

    Re : Ws2812 fonctionnement

    Merci pour votre réponse. Le schéma est on ne peut plus simple. J'ai juste la broche 0 su PROTB qui est relié au DI de la led.
    Voici le code :

    #include <htc.h>
    #define _XTAL_FREQ 20000000

    void main()
    {
    TRISB = 0 ;
    PORTB = 0;
    int i;

    while(1)
    {

    for (i=0;i<24;i++) {
    PORTB = 255;
    __delay_us(0.35);
    PORTB = 0;
    __delay_us(0.8);
    }
    __delay_ms(1000);

    }


    J'ai bien mis les délais de la datasheet, c'est pour cela que je ne comprends pas, car cela ne marche pas. La led devrait s'éteindre normalement.

  4. #4
    cl29200

    Re : Ws2812 fonctionnement

    Personne pour m'aider ?

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

    Re : Ws2812 fonctionnement

    Citation Envoyé par cl29200 Voir le message
    Merci pour votre réponse. Le schéma est on ne peut plus simple. J'ai juste la broche 0 su PROTB qui est relié au DI de la led.
    Voici le code :

    #include <htc.h>
    #define _XTAL_FREQ 20000000

    void main()
    {
    TRISB = 0 ;
    PORTB = 0;
    int i;

    while(1)
    {

    for (i=0;i<24;i++) {
    PORTB = 255;
    __delay_us(0.35);
    PORTB = 0;
    __delay_us(0.8);
    }
    __delay_ms(1000);

    }


    J'ai bien mis les délais de la datasheet, c'est pour cela que je ne comprends pas, car cela ne marche pas. La led devrait s'éteindre normalement.
    0.35 et 0.8 microsecondes ? Est-ce possible ?

  7. #6
    cl29200

    Re : Ws2812 fonctionnement

    Ecffectivement, j'y ai pensé aussi, c'est pour cela que j'ai fait une boucle est des asm("nop") pour atteindre le temps de la datasheet, sans résultat probant

  8. #7
    gabuzo

    Re : Ws2812 fonctionnement

    Je ne suis pas un spécialiste du C mais je doute qu'on puisse faire un delai en µs avec une décimale. Je me trompe ?

    Grillé par biname
    Dernière modification par gabuzo ; 10/06/2013 à 18h03.
    Je suis Charlie

  9. #8
    cl29200

    Re : Ws2812 fonctionnement

    Effectivement, il à raison mais le problème reste le même avec des nop

  10. #9
    cl29200

    Re : Ws2812 fonctionnement

    disons que j'arrive à éteindre la led, et à l'allumée mais quand je commence a vouloir faire juste une couleur ou faire clignoter j'ai du jaune au lieu du blanc... bref j'ai l'impression que sans oscillo c'est pas gagné

  11. #10
    cl29200

    Re : Ws2812 fonctionnement

    C'est quand même beaucoup plus simple quand on a un signal de synchro comme avec le ws2801

  12. #11
    vincent66

    Re : Ws2812 fonctionnement

    Comme suggéré dans mon premier post, avez vous essayé en comptant 200ns et non pas 5ns pour un nop ..?
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  13. #12
    cl29200

    Re : Ws2812 fonctionnement

    Oui biensûr, j'ai le même résultat, j'arrive a faire changer d'état à la led mais très loin de ce qui est espéré

Discussions similaires

  1. Fonctionnement ?
    Par EliteSnow dans le forum Physique
    Réponses: 4
    Dernier message: 10/06/2013, 14h47
  2. Fonctionnement microcontroleur
    Par Thibaut34 dans le forum Électronique
    Réponses: 9
    Dernier message: 16/10/2012, 09h18
  3. Fonctionnement ?
    Par invite243f18c0 dans le forum Électronique
    Réponses: 7
    Dernier message: 21/11/2011, 17h28
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...