Hi, I am trying to interface RFID(RFid click which uses CR95HF 13.56 MHz contactless transceiver as well as trace antenna) with PIC18F8722. It used SPI communication.
I am trying to get its eco-response but there is no output! I checked using oscilloscope the spi_write operation which is perfectly fine but i guess the problems is in read operation. i am attaching my code. Any help would be appreciated. I am using MPLAB X v3.0 with C8 compiler v1.34.
#include #include #include #include #include #include #include "display_LCD.h"
// CR95HF Commands Definition #define ECHO 0x55
#define SSI_1 PORTFbits.RF7 // RA2 #define SSI_0 PORTDbits.RD7 // RE1 #define IRQ_IN PORTCbits.RC0 #define CS_rfid PORTEbits.RE0
void main() { MCU_Init(); // Initialize MCU and peripherals EchoResponse(); }
void MCU_Init(){
// Configure RFid Click pins ADCON1 = 0b1111; // set all bits of port a as digital TRISEbits.RE0= 0; TRISCbits.RC0=0; TRISDbits.RD7=0; TRISFbits.RF7=0; OpenSPI2(SPI_FOSC_64, MODE_10, SMPEND); // Initialize SPI module IRQ_IN=0; CS_rfid = 0; // Set in SPI mode SSI_1=0; SSI_0=1;
}char EchoResponse() { CS = 0; WriteSPI2(0x00); // Send cmd to CR95HF WriteSPI2(ECHO); CS = 1; while(1){ CS = 0; WriteSPI2(0x03); tmp = ReadSPI2; CS = 1; display_LCD_l(tmp); if((res & 0x08) >> 3){ CS = 0; WriteSPI2(0x02); tmp = ReadSPI2; CS = 1; if(tmp == ECHO){ return 1; } return 0; } } }
--------------------------------------- Posted through