Remove Text Formatting

+ Reply to Thread
Results 1 to 14 of 14

Thread: Rfid mfrc522

  1. #1
    Join Date
    Jan 2011

    Default Rfid mfrc522

    Hello everyone, there is' someone who has used the RFID reader with mfrc522 13.56 MHz in "spi" type electrodragon? I can not find an example in picbasic. There 's no one who can' help me with a simple example? Thanks!

  2. #2
    Join Date
    Oct 2008
    Arizona or Minnesota

    Default Re: Rfid mfrc522

    Why don't you check out the Raspberry Pi forum or Google RFID with a Raspberry Pi. I have a Raspberry Pi working on SPI with several of the cheap readers. Note that all these readers are not created equal: some are poor clones (in respect to the antenna tuning) and the working range is 1/2 of others. The python files will show you the setup procedures.

  3. #3
    Join Date
    Jan 2011

    Default Re: Rfid mfrc522

    Thanks for the reply. I would have liked to use a pic 16f688 or 18F452 series that already 'possess and maybe use as the basic language. the reader is 'model MF522-ED-AN module uses Philips MFRC522 original chip, purchased on electrodragon, link .

  4. #4
    metemoine's Avatar
    metemoine Guest

    Default Re: Rfid mfrc522

    There are cheap RFID modules that can read and write Mifare's tags and being sold at several web stores, like eBay and included with many "starter kits" nowadays. Simply search RFID-RC522 (MF-RC522).

  5. #5
    Join Date
    Jan 2011

    Default Re: Rfid mfrc522

    hello metemoine,
    thanks for the answer, as already' mentioned I would want a simple code in picbasic for the reading the kit's rfid mentioned here' above that it works with "spi."

  6. #6
    Join Date
    Jan 2005
    Montreal, Quebec, Canada

    Default Re: Rfid mfrc522

    Does anything here help?

    I've never used SPI.
    Not as dumb as yesterday, but stupider than tomorrow!

  7. #7
    Join Date
    Jan 2011

    Default Re: Rfid mfrc522

    thanks for the indication Demon, I try to take a look.

  8. #8
    Join Date
    Aug 2006
    SWITZERLAND (french part)

    Default Re: Rfid mfrc522

    Anyone did this?

  9. #9
    Join Date
    Aug 2006
    SWITZERLAND (french part)

    Default let's try to make it work....


    I might need a little help here - I'm stuck for hours now.

    It's the first time for me to use this RFID module and it is giving me some headache.

    For a test, I want to read the first three bytes of the tag's ID and print them serially out.

    But up to now, I can't make the RFID module "read" something. I'm not sure about my connections and about the different timings and whatever I have to do to "start" the read process.Name:  2017-10-07-Serial Communicator.jpg
Views: 59
Size:  51.0 KB

    Does anyone have a good idea to get me started reading some data?

    My test project:
    Name:  K640_20171007_172516.JPG
Views: 57
Size:  121.9 KB

    The RFID module I'm using is this one for ARDUINO and the connections I used:
    Name:  K640_RC522.JPG
Views: 58
Size:  28.3 KB

    Here's is my current code:
    ' ====== FUSES =====================================================================================
    ' PIC 16F690 Fuses (MPASM)
    ' ====== REGISTERS =================================================================================
    '             76543210
    OPTION_REG = %10000000 ' Pull-Ups OFF
    OSCCON     = %00000000 ' Internal RC
    ANSEL      = %00000000 ' Select analog inputs Channels 0 to 7
    ANSELH     = %00000000 ' Select analog inputs Channels 8 to 11
    WPUA       = %00000000 ' Select weak pull-ups
    WPUB       = %00000000 ' Select weak pull-ups
    ADCON0     = %00000000 ' Select the VP6 channel as ADC input bits5:2 (xx1101xx)
    ADCON1     = %00000000 ' Set FRC
    VRCON      = %00000000 ' VP6 reference
    CM1CON0    = %00000000 ' Comparator1 Module
    CM2CON0    = %00000000 ' Comparator2 Module
    INTCON     = %00000000 ' INTerrupts CONtrol; GIE=1, T0IE=1
    TRISA      = %00000000 ' Select Input/Output (0 to 5)
    PORTA      = %00000000 ' Set High/Low (0 to 5)
    TRISB      = %00000000 ' Select Input/Output (4 to 7)
    PORTB      = %00100000 ' Set High/Low (4 to 7)
    TRISC      = %00000000 ' Select Input/Output (0 to 7)
    PORTC      = %00000000 ' Set High/Low (0 to 7)
    ' ====== DEFINES ===================================================================================
    define OSC 4
    ' ====== VARIABLES & CONSTANTS =====================================================================
    SPI_SCK     Var PORTB.4 ' SCK (SPI Clock)
    SPI_MISO    Var PORTB.5 ' MISO (master In, Slave Out)
    SPI_NSS     VAR PORTB.6 ' "NOT" Slave Select (SDA pin of module RC522)
    LED         var PORTB.7
    Serial_Out  VAR PORTC.7
    SPI_Mode    var byte
    RFIDData    Var byte(10)
    Serial_Bdr  VAR word
    Counter     var word
    ' ====== INITIALIZE ================================================================================
    Serial_Out  = 1 ' to avoid garbage serial data
    Counter     = 0
    SPI_NSS     = 1
    SPI_Mode    = 0 ' MSBPRE
    RFIDData    = 0
    Serial_Bdr  = 84 '9600DTN
    ' ====== PROGRAM ===================================================================================
        ' Read RFID tag
        SPI_NSS = 0 ' select the RFID reader
        PAUSEus 50
        Shiftin SPI_MISO, SPI_SCK, SPI_Mode, [RFIDData(0),RFIDData(1),RFIDData(2)]
        SPI_NSS = 1 ' deselect the RFID reader
        ' Printout RFID data
        Counter = Counter + 1
        serout2 Serial_Out, Serial_Bdr,[DEC5(Counter), " ",DEC(RFIDData[0]),DEC(RFIDData[1]),DEC(RFIDData[2]),13,10]
        ' Alive witness
        TOGGLE LED 
        Pause 500
        Goto main:
    '======= CIRCUITRY =================================================================================
    'PORTA.0[19] ICSPDAT                  VDD >01-20< VSS/GND
    'PORTA.1[18] ICSPCLK             OSC1/RA5 |02-19| RA0/AN0/DAT
    'PORTA.2[17]                 AN3/OSC2/RA4 |03-18| RA1/AN1/CLK
    'PORTA.3[04] MCLR                MCLR/RA3 >04-17| RA2/AN2
    'PORTA.4[03] OSC2 - Xtal         CCP1/RC5 |05-16| RC0/AN4
    'PORTA.5[02] OSC1 - Xtal          P1B/RC4 |06-15| RC1/AN5
    '                             AN7/P1C/RC3 |07-14| RC2/AN6
    'PORTB.4[13] SPI_SCK              AN8/RC6 |08-13| RB4/AN10
    'PORTB.5[12] SPI_MISO             AN9/RC7 |09-12| RB5/AN11
    'PORTB.6[11] SPI_NSS                  RB7 |10-11| RB6
    'PORTB.7[10] LED
    Name:  SPI theory.jpg
Views: 57
Size:  253.3 KB

    Name:  SPI Timing.jpg
Views: 57
Size:  109.5 KB

  10. #10
    Join Date
    Oct 2005

    Default Re: Rfid mfrc522

    Hi Roger,
    I'm confused, where do you see that shifiting in three bytes like that should give you the three first byte of a cards S/N number?

    It looks to me as if the RFID reader chip implements a "proper" SPI slave meaning you have to shift data out at the same time as you shift data in. If that's the case SHIFTIN/SHIFTOUT won't work because it can only shift data out OR shift data in, it can't do it simultanously.


  11. #11
    Join Date
    Aug 2006
    SWITZERLAND (french part)

    Default So, where to start?


    I'm confused, where do you see that shifiting in three bytes like that should give you the three first byte of a cards S/N number?
    That's the point; I'm maybe even more confused than you are

    Honestly, I don't know how to handle the card reader so I need some "theory" on how it works so I will be able to start thinking the right way.

  12. #12
    Join Date
    May 2013

    Default Re: Rfid mfrc522

    Here's a start. it reads and writes to the mfrc522.registers using the ssp module
    I have made a demo for a 16f690 that loads up the regs [settings like in the Arduino demos ]
    and reads them back. that bit is easy
    I have not discovered how to read a card yet, the Arduino and python libs I have tried to
    digest have code that's so obscure it leave me cold .

    Arduino seems to poll CommIrqReg looking for a value of 0x45 [I think] but I have same regs set
    but the card seems to be ignored , I'm just guessing how it works the reg never changes for me

    reg printout for regs 1 to 3f
    01,20 02,80 03,00 04,15 05,00 06,00 07,21 08,00
    09,00 0A,00 0B,08 0C,10 0D,00 0E,A0 0F,00
    10,00 11,3D 12,00 13,00 14,83 15,40 16,10
    17,84 18,84 19,4D 1A,00 1B,00 1C,62 1D,00
    1E,00 1F,EB 20,00 21,FF 22,FF 23,88 24,26
    25,87 26,48 27,88 28,20 29,20 2A,8D 2B,A9
    2C,00 2D,E8 2E,00 2F,00 30,00 31,00 32,00
    33,80 34,00 35,00 36,40 37,92 38,00 39,00
    3A,00 3B,88 3C,FF 3D,00 3E,03 3F,00
    Attached Files Attached Files
    This is more entertaining than Free to Air TV

  13. #13
    Join Date
    Oct 2005

    Default Re: Rfid mfrc522

    Yeah, what we're dealing with here is not the interface to a "RFID-reader" but to the complete "RFID-radio". I have not looked at any example code for other platforms but I would expect it to be a fairly complicated setup procedure, configuring all the registers etc - and even more so KNOWING what to configure them with. And when Richard says HE cringes when looking at the code for it I don't think I'll even bother :-)

    There are readers available implementing both the "radio" and a microcontroller giving you an interface to "just" the card and not the complete "radio" tranceiver - much easier but a bit more expensive. One example is the OEM/MIFARE ICODE board from IBTechnology (datasheet) which I've personally used with success.

  14. #14
    Join Date
    Aug 2006
    SWITZERLAND (french part)

    Default lets's make it a bit more simple...

    Quote Originally Posted by richard View Post
    Here's a start.
    Thanks a lot Richard. But as you say, this is only a part of the problem...

    Since I don't need nor want to go for rocket science, I'll take Henrik's advice and find a "plug'n play" reader

Similar Threads

  1. RFID with PIC
    By aloon15 in forum General
    Replies: 0
    Last Post: - 23rd September 2014, 18:33
  2. RFID Issues.... HELP !!!!!
    By andybarrett1 in forum mel PIC BASIC Pro
    Replies: 19
    Last Post: - 11th September 2014, 10:00
  3. RFID example.
    By StevenLim in forum General
    Replies: 2
    Last Post: - 8th February 2011, 09:08
  4. Rfid?
    By toalan in forum Off Topic
    Replies: 0
    Last Post: - 11th February 2005, 23:37
  5. RFid reader
    By paul farrugia in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 14th January 2005, 20:27

Members who have read this thread : 24

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts