Hi,
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.
Does anyone have a good idea to get me started reading some data?
My test project:

The RFID module I'm using is this one for ARDUINO and the connections I used:

Here's is my current code:
Code:
' ====== FUSES =====================================================================================
' PIC 16F690 Fuses (MPASM)
@ __config _FCMEN_OFF &_IESO_OFF &_CPD_OFF &_WDT_OFF &_HS_OSC &_BOR_OFF &_CP_OFF &_PWRTE_OFF &_MCLRE_OFF
' ====== 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 ================================================================================
INIT:
Serial_Out = 1 ' to avoid garbage serial data
Counter = 0
SPI_NSS = 1
SPI_Mode = 0 ' MSBPRE
RFIDData = 0
Serial_Bdr = 84 '9600DTN
' ====== PROGRAM ===================================================================================
MAIN:
' 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:
End
'======= 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
'
'PORTC.0[16]
'PORTC.1[15]
'PORTC.2[14]
'PORTC.3[07]
'PORTC.4[06]
'PORTC.5[05]
'PORTC.6[08]

Bookmarks