PIC 18f with RFID! communication problem!

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

formatting link

Reply to
Loading thread data ...

I suspect that ReadSPI2 is a function, and that your compiler is glossing over the fact that

tmp = ReadSPI2;

puts the address of the function into tmp, rather than executing the function and putting its result into tmp. A good compiler would be emitting warnings right and left over this.

I'm also pretty sure that you'll need to supply an address to ReadSPI2.

Reply to
Tim Wescott

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.