Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 38

PIC16F877A - RFID - Bluetooth UART



  1. #1
    afaes

    PIC16F877A - RFID - Bluetooth UART


    ------

    Bonjour à tous et merci a l'avance pour votre aide le cas échéant,

    Je dispose pour test de 3 tags Rfid :
    0010599213
    0010925914
    0016294836

    je devrai obtenir par exemple concernant le tag 0010599213 => 02 | 30 30 31 30 35 39 39 32 31 33 | CHECKSUM | 03

    malheureusement je n'obtient que des résultats du genre

    ¿³}Ÿ}{{›w{ù pour 0010599213
    ¿³}Ÿ}“{‘•}“‘ù pour 0010925914
    ¿6}Ÿs}™{—sŸù pour 0016294836
    j'ai beau essayer plusieurs solutions je n'arrive absolument pas à faire cette conversion.
    Si quelqu'un peu m'obtenir la solution où me mettre sur la voie je suis preneur merci.

    Si après le code que j'utilise MPLABX XC8

    Code:
    #pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)
    #pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
    #pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT enabled)
    #pragma config BOREN = ON       // Brown-out Reset Enable bit (BOR enabled)
    #pragma config LVP = OFF        // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
    #pragma config CPD = OFF        // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
    #pragma config WRT = OFF        // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
    #pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)
    
    #define _XTAL_FREQ 20000000
    #include <xc.h>
    #include <stdlib.h>
    #include <string.h>
    
    char UART_Init(const long int baudrate)
    {
      unsigned int x;
      x = (_XTAL_FREQ - baudrate*64)/(baudrate*64);  
      if(x>255)                                       
      {
        x = (_XTAL_FREQ - baudrate*16)/(baudrate*16); 
        BRGH = 1;                                     
      }
      if(x<256)
      {
        SPBRG = x;                                   
        SYNC = 0;                                     
        SPEN = 1;                                    
        TRISC7 = 1;                                   
        TRISC6 = 1;                                  
        CREN = 1;                                    
        TXEN = 1;                                    
        return 1;                                     
      }
      return 0;                                      
    }
    
    void UART_Write(char data)
    {
      while(!TRMT);
      TXREG = data;
    }
    
    char UART_TX_Empty()
    {
      return TRMT;
    }
    
    void UART_Write_Text(char *text)
    {
      int i;
      for(i=0;text[i]!='\0';i++)
        UART_Write(text[i]);
    }
    
    char UART_Data_Ready()
    {
      return RCIF;
    }
    
    char UART_Read()
    {
      while(!RCIF);
      return RCREG;
    }
    
    void UART_Read_Text(char *Output, unsigned int length)
    {
      unsigned int i;
      for(int i=0;i<length;i++)
      Output[i] = UART_Read();
    }
    
    void main()
    {
     char i;
     char rfid[13];    
     UART_Init(9600);                    
    
      while(1)                      
     {
       if(UART_Data_Ready())
       {
         for(i=0;i<12;)
         {
           rfid[i] = 0;
           rfid[i] = UART_Read();  
           UART_Write(rfid[i]);  
           i++;     
         }
       }
      }
    }

    -----

  2. Publicité
  3. #2
    HULK28

    Re : PIC16F877A - RFID - Bluetooth UART

    Bonjour,
    Donc vous ne vous servez pas des fonctions UART_Read_Text() et UART_Write_Text() ?
    Vous avez juste un problème de format à mon avis.
    Dernière modification par HULK28 ; 28/11/2019 à 08h21.
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  4. #3
    jiherve

    Re : PIC16F877A - RFID - Bluetooth UART

    Bonjour,
    certains tags ne sont pas directement intelligibles en ASCII d'autres le seront mais en mode QWERTY ,cela dépend du lecteur, donc pour lever le doute faire afficher la chaine hexa reçue.
    JR
    l'électronique c'est pas du vaudou!

  5. #4
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    Merci HULK28,

    J'ai fait l'essai avec

    Code:
    while(1)                      
     {
       if(UART_Data_Ready())
       {
           UART_Read_Text(rfid, 14);    
           UART_Write_Text(rfid);             
         }
      }
    résultat identique
    ¿³}Ÿ}“{‘•}“‘ùûŸŸŸ›•—
    {BF}{B3}{7D}{9F}{7D}{93}{7B}{9 1}{95}{7D}{93}{91}{F9}{FB}{9F} {9F}{9D}{9F}{8D}{9B}{95}{8D}{9 D}{97}
    alors que je devrai obtenir au moins cela

    0x30 0x30 0x31 0x30 0x39 0x32 0x35 0x39 0x31 0x34
    Comme jiherve le souligne peut-être un problème du format ? là je coince

  6. #5
    jiherve

    Re : PIC16F877A - RFID - Bluetooth UART

    re
    doc du lecteur ?
    JR
    l'électronique c'est pas du vaudou!

  7. A voir en vidéo sur Futura
  8. #6
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    RDM630 ou RDM6300
    WIEGAND 26 bits

  9. Publicité
  10. #7
    flyingrock

    Re : PIC16F877A - RFID - Bluetooth UART

    Bonjour,

    Peut-etre une piste.
    La formule utilisée pour calculer la valeur du registre SPBRG n'est pas la même que tu utilises.


    For each baud rate we need to calculate the value being placed in the SPBRG differently:

    SPBRG = (Fosc / (16 x Baud rate)) - 1, BRGH = 1 High Speed

    SPBRG = (Fosc / (64 x Baud rate)) - 1, BRGH = 0 Low Speed

  11. #8
    Seb.26

    Re : PIC16F877A - RFID - Bluetooth UART

    Pour commencer, vérifie avec un PC ou un oscillo que tu sois bien à 9600bps ...

    Ensuite, le packet est décrit dans le chapitre "TTL Interface RS232 Data output format"
    Dernière modification par Seb.26 ; 28/11/2019 à 13h36.
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  12. #9
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    j'ai fait un peu de ménage

    void UART_Init()
    {
    TRISC6=1;
    TRISC7=1;
    BRGH=1;
    SPBRG=129; // pour 9600 baud a 20Mhz
    SYNC=0;
    SPEN=1;
    RX9=0;
    TX9=0;
    TXEN=1;
    CREN=1;
    GIE = 1;
    PEIE= 1;
    RCIE=1;
    TXIE=1;
    }
    résultat identique

    ¿³}Ÿ}{{›w{ù

  13. #10
    jiherve

    Re : PIC16F877A - RFID - Bluetooth UART

    re
    comment choisi t on le mode de sortie : UART/WEIGAND
    Nota: si en mode WEIGAND alors pour l'UART c'est du chinois!
    JR
    l'électronique c'est pas du vaudou!

  14. #11
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    Wiegand ces juste le format 26, 30 et 44 bits
    je devrai obtenir un truc du genre
    Wiegand BIN = 100100111011100001110101000010 10, Wiegand HEX = 93B8750A, DECIMAL = 2478339338, Type W34

    au lieu de : ¿³}Ÿ}{{›w{ù

  15. #12
    jiherve

    Re : PIC16F877A - RFID - Bluetooth UART

    Re
    oui mais un UART (celui du PIC) prévu pour recevoir un flux au protocole RS232 ne comprendra rien à une liaison série de ce type.
    Relire la data sheet qui montre bien la différence entre les signaux présents sur les pin 1 et 2 de P1 suivant le protocole utilisé !
    [QUOTE]interface Weigang26 Or TTL Electricity Level RS232 format [/QUOTE]
    Il faut configurer le lecteur pour avoir une sortie type RS232 ou développer à la paluche un récepteur ad hoc dans le PIC.
    amha les signaux hold/cp doivent être sur la pin 3 de P1
    JR
    l'électronique c'est pas du vaudou!

  16. Publicité
  17. #13
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    il n'y a rien sur le circuit permettant de faire une sélection interface Weigang Où RS232
    j'ai commandé un nouveau module en précisant le format de communication au cas ou ?

    je viens de faire des essais en connexion direct module/hercules sur PC et j'ai strictement les mêmes résultats

    ¿³}Ÿ}{{›w{ù 0010599213
    ¿³}Ÿ}“{‘•}“‘ù 0010925914
    ¿6}Ÿs}™{—sŸù 0016294836

  18. #14
    jiherve

    Re : PIC16F877A - RFID - Bluetooth UART

    re
    la référence du circuit intégré du lecteur est elle lisible?
    JR
    l'électronique c'est pas du vaudou!

  19. #15
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    Re,

    la ref : ces quand même super étrange parce que quand je fais une conversion Hex j'obtiens un truc cohérent

    0010925914 => BF B3 7D 9F 7D 93 7B 91 95 7D 93 91 F9 00
    0016294836 => BF 36 7D 9F 73 8F 7D 99 7B 97 73 9F F9 00
    0010599213 => BF B3 7D 9F 7D 9D 7B 7B 9B 77 9D 7B F9 00
    si l'on retire ce qui devrait être les bits début/fin/checksum ont à un truc du genre

    B3 7D 9F 7D 93 7B 91 95 7D 93
    36 7D 9F 73 8F 7D 99 7B 97 73
    B3 7D 9F 7D 9D 7B 7B 9B 77 9D
    Et qui correspond toujours à rien quand même il n'y aurait pas une histoire de cryptage ?

    AF

  20. #16
    jiherve

    Re : PIC16F877A - RFID - Bluetooth UART

    Re
    la ref donnée est c'est celle d'un µC ce que je demande c'est la ref du chip RFID sur la cartelette le truc en SO 20.
    Une question as tu essayé de te brancher sur le RX de la carte car la doc etant cochonne on ne sait pas trop qui est TX entre DATA1 et DATA0, au repos le "bon" TX doit être à "1"
    Je présume que tu ne possèdes pas d'oscillo
    JR
    l'électronique c'est pas du vaudou!

  21. #17
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    RE JR
    Concernant l'oscilloscope j'ai bien ce qu'il faut et TX/RX sont OK
    pour la carte mis a part résistances, diodes, condos, j'ai uniquement un régulateur 3.3v AMS1117, un LM358 ampli AOP double, et l'µC F330 et absolument rien d'autre a part l'antenne.

    71jGxD29o+L._SL1500_.jpg

    A priori je suis tributaire de ce qui a été graver dans l'µC F330 parce-que de mon coté j'arrive bien à dialoguer avec le zinzin et que ce soit un dialogue avec le PIC ou liaison série avec le PC en direct j'obtiens exactement le même genre de réponse

    Tag
    0010925914
    trame que je suis censé recevoir
    30 30 31 30 39 32 35 39 31 34 20 0A

    trame reçu
    BF B3 7D 9F 7D 93 7B 91 95 7D 93 91 F9 00

  22. #18
    jiherve

    Re : PIC16F877A - RFID - Bluetooth UART

    bonsoir
    donc au final c'est un RDM6300 et pas 630 !!
    que de temps perdu !
    JR
    l'électronique c'est pas du vaudou!

  23. Publicité
  24. #19
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    mea culpa

  25. #20
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    lecture de plusieurs TAG
    tag.jpg

    NB: les tags ne sont pas en cause car ils sont lus correctement avec un lecteur manuel.

    Je pense que mon truc chinois est pas bien configuré, pas de chance le premier reçu HS et celui ci affiche quelque chose qui correspond à rien
    a vrais dire je vois pas ou je merdouille ?

  26. #21
    Seb.26

    Re : PIC16F877A - RFID - Bluetooth UART

    Fais nous voir un écran d'oscillo du signal TX ... genre le 1er octet ...

    car 630 ou 6300, tout ce que je trouve sur le net a l'air trivial ...

    part exemple : http://fablab.ruc.dk/rfid-to-processing/
    Dernière modification par Seb.26 ; 29/11/2019 à 09h25. Motif: << mal réveillé >>
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  27. #22
    Seb.26

    Re : PIC16F877A - RFID - Bluetooth UART

    Fais aussi voir ton schéma ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  28. #23
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    IMG_20191129_142149.jpg
    Je pense que l'on ne ce comprend pas, tout est correct au niveau du fonctionnement.

    si je prends un tag pour le lire via un lecteur manuel ou PC j'ai bien le bon numéro de tag qui ressort donc les TAGs ces OK.

    quand je passe par le module celui-ci me renvoi des données a priori cohérente dans la structure trame bit début/fin mais complètement incohérent dans l’analyse, le code hexa correspond à rien en fait.

    j'en ai commandé un autre que je devrai recevoir mardi histoire de voir si j'ai le même genre de retour.

    Ce truc utilise un composant programmable donc ça peut venir de là, parce-que module connecter au PC je reçois strictement les mêmes infos !

  29. #24
    Seb.26

    Re : PIC16F877A - RFID - Bluetooth UART

    Citation Envoyé par afaes Voir le message
    Je pense que l'on ne ce comprend pas, tout est correct au niveau du fonctionnement.
    Ah ... nickel alors, je croyais que ça marchait pas ...

    Citation Envoyé par afaes Voir le message
    si je prends un tag pour le lire via un lecteur manuel ou PC j'ai bien le bon numéro de tag qui ressort donc les TAGs ces OK.
    Ok, donc tes tags sont bons ...

    Ton câblage ... ??!!!
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  30. Publicité
  31. #25
    Seb.26

    Re : PIC16F877A - RFID - Bluetooth UART

    Citation Envoyé par afaes Voir le message
    lecture de plusieurs TAG
    Pièce jointe 399622
    Tu as fait cet essai dans quelles conditions ?!! ... -> câblage ! (le lecteur en direct sur le PC ?)
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  32. #26
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    Re

    Câblage TX/RX bon

    juste que je devrai recevoir un truc du genre : 0x30 0x30 0x31 0x30 0x35 0x39 0x39 0x32 0x31 0x33
    et je reçoit ça : 0xBF 0xB3 0x7D 0x9F 0x7D 0x93 0x7B 0x91 0x95 0x7D 0x93 0x91 0xF9 0x00

    début 0xBF
    checksum 0x91 0xF9
    fin 0x00

    donc le résultat peu pas faire 0010599213

  33. #27
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    Au début microcontrôleur et module RFID quand j'ai vu que ce n'était pas cohérent j'ai posté mon message, ensuite j'ai fait module PC avec les indications fournit sur le internet 9600/N/1 pour obtenir strictement la même chose au final résultat identique

  34. #28
    jiherve

    Re : PIC16F877A - RFID - Bluetooth UART

    bonjour
    au repos qu'elle est la tension sur le fil TX ?
    y a t il bien une masse commune entre le µC et le lecteur ?
    Peux tu faire une capture de l’écran du scope comme demandé par Seb ?
    JR
    l'électronique c'est pas du vaudou!

  35. #29
    afaes

    Re : PIC16F877A - RFID - Bluetooth UART

    Re,

    voir en #23

    Je viens de faire l'essai avec un arduino qui traîner dans un tiroir idem résultat étrange

    tag 0010599213

    arduino.jpg

  36. #30
    jiherve

    Re : PIC16F877A - RFID - Bluetooth UART

    bonsoir,
    la pièce jointe n’était pas validée lors de mon dernier message.
    Mais elle est inexploitable, il faudrait la refaire avec le zoom calé a 100µS par division.
    Ceci dit les mots sont à touche touche le µC et le soft sont ils assez rapide pour traiter çà ?
    JR
    l'électronique c'est pas du vaudou!

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. [Programmation] PIC16F877A - ADC - Bluetooth UART [Résolu]
    Par afaes dans le forum Électronique
    Réponses: 5
    Dernier message: 18/11/2019, 01h08
  2. [RF/Radioelec] rfid ou bluetooth
    Par bidule971 dans le forum Électronique
    Réponses: 10
    Dernier message: 11/12/2017, 14h36
  3. Envoi de données via l'uart d'un PIC16F877A
    Par Creezys dans le forum Électronique
    Réponses: 7
    Dernier message: 05/06/2014, 15h46
  4. commande d'une LED et supervision d'un LM35 via UART pic16f877A
    Par st.diyae dans le forum Électronique
    Réponses: 2
    Dernier message: 09/05/2013, 12h00
  5. Bluetooth et UART
    Par keydmer dans le forum Électronique
    Réponses: 0
    Dernier message: 07/04/2010, 10h35
Découvrez nos comparatifs produits sur l'informatique et les technologies.