RFid click features CR95HF 13.56 MHz contactless transceiver as well as trace antenna. The click is designed to run on a 3.3V power supply only. It communicates with the target MCU via mikroBUS™ UART (TX, RX), SPI (MISO, MOSI, SCK, CS) INT, RST, PWM and AN lines.
The click functions as an integrated transceiver for contactless applications. The board contains a dedicated internal frame controller and analog front end (AFE) for RF communications. It supports ISO/IEC 14443 type A and B, ISO/IEC 15693 and ISO/IEC 18092 protocols (tags) as well as the detection, reading and writing of NFC forum type 1, 2, 3 and 4 tags.
CR95HF integrated transceiver
The CR95HF has 2 operating modes: Wait for Event (WFE) and Active.
In Active mode, the CR95HF communicates actively with a tag or an external host. WFE mode includes four low consumption states: Power-up, Hibernate, Sleep and Tag Detector. The transceiver can switch from one mode to another.
The Hibernate state has the lowest power consumption out of the four states (1 µA typ. 5 µA max.).
SMD jumpers
Two SMD jumpers are provided on the board. In case you want to use UART interface, it is necessary to solder SMD jumpers in B position. Otherwise, if you want to use SPI interface, jumpers should be left in its default position (A). In that case interrupt pins (IN and OUT) are usable.
Key features
- CR95HF IC
- Operating modes supported: Reader/Writer
- RF communication @13.56 MHz
- Supports NFC Forum Type 1, 2, 3 and 4 tags
- 3.3V power supply
- Interface: UART, SPI
Resources
Downloads
Type |
RFID/NFC |
Applications |
Board can be used with 13.56 MHz RFid tags or identification cards. Ideal for tracking and security systems that needs RFID support |
On-board modules |
CR95HF 13.56 MHz contactless transceiver and trace antenna |
Key Features |
Dedicated internal frame controller and analog front end (AFE) for RF comm. available on-board. It can detect, read and write NFC forum type 1, 2, 3 and 4 tags |
Interface |
SPI,GPIO,UART |
Compatibility |
mikroBUS |
Click board size |
L (57.15 x 25.4 mm) |
Input Voltage |
3.3V |
Pinout diagram
This table shows how the pinout on RFid click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes |
Pin |
mikroBUStm
|
Pin |
Notes |
Select serial communication interface |
SSI1 |
1 |
AN |
PWM |
16 |
INT_I |
Interrupt input |
Select serial communication interface |
SSI0 |
2 |
RST |
INT |
15 |
INT_O |
Interrupt output |
SPI chip select |
CS# |
3 |
CS |
TX |
14 |
TX |
UART transmit |
SPI clock |
SCK |
4 |
SCK |
RX |
13 |
RX |
UART receive |
SPI Data, Slave Output |
MISO |
5 |
MISO |
SCL |
12 |
NC |
Not connected |
SPI Data, Slave Input |
MOSI |
6 |
MOSI |
SDA |
11 |
NC |
Not connected |
Power supply |
+3.3V |
7 |
3.3V |
5V |
10 |
NC |
Not connected |
Ground |
GND |
8 |
GND |
GND |
9 |
GND |
Ground |
Programming
Code examples that demonstrate the usage of RFID click with MikroElektronika hardware, written for mikroC for ARM, AVR, dsPIC, FT90x, PIC and PIC32 are available on Libstock.
The following code snippet uses a TFT to communicate with the user when the click is ready for reading and afterwards tells the user what the Tag ID is.
1 void main() {
2 Init(); // Initialize MCU and peripherals
3 DrawFrame();
4 while (!EchoResponse()) { // Until CR95HF is detected
5 IRQ_IN = 1; // put IRQ_IN pin at low level
6 delay_ms(1);
7 IRQ_IN = 0; // put IRQ_IN pin at low level
8 delay_ms(1);
9 }
10 TFT_Write_Text("CR95HF Device Connected.", 55, 60);
11
12 ReadCR95HF_ID();
13 Calibration();
14 IndexMod_Gain();
15 AutoFDet();
16 Select_ISO_IEC_18092_Protocol();
17
18 while (1) {
19 if (!TAG_Flag)
20 GetNFCTag(); // Get NFC ID
21
22 if (!NFC_Flag)
23 GetTagID(); // Get Tag ID
24
25 if (ID[0] == 0) { // If there is no tag present
26 flag++; // Increment counter flag
27 }
28 else { // If tag is present
29 flag = 0; // Reset counter flag
30 if (strcmp(ID_old, ID)) { // Compare previous and current tag ID
31 TFT_Set_Font(TFT_defaultFont, CL_WHITE, FO_HORIZONTAL); // Set font color to white
32 TFT_Write_Text(ID_old, x_pos_old, 180); // Delete previous tag ID
33 TFT_Set_Font(TFT_defaultFont, CL_RED, FO_HORIZONTAL); // Set font color to red
34 TFT_Write_Text("Tag ID :", 130, 160);
35 TFT_Write_Text(ID, x_pos, 180); // Display current tag ID
36 TFT_Set_Font(TFT_defaultFont, CL_WHITE, FO_HORIZONTAL); // Set font color to white
37 TFT_Write_Text("Put the RFid Tag over the RFid Click Antenna", 25, 140);
38 strcpy(ID_old, ID); // Set current ID as previous ID
39 Delay_ms(2000);
40 x_pos_old = x_pos;
41 }
42 }
43 if (flag > 5) { // If counter flag has reached value > 5
44 TFT_Set_Font(TFT_defaultFont, CL_BLACK, FO_HORIZONTAL); // Set font color to black
45 TFT_Write_Text("Put the RFid Tag over the RFid Click Antenna", 25, 140);
46 TFT_Set_Font(TFT_defaultFont, CL_WHITE, FO_HORIZONTAL); // Set font color to white
47 TFT_Write_Text("Tag ID :", 130, 160);
48 TFT_Write_Text(ID_old, x_pos_old, 180); // Delete previous tag ID
49 ID_old[0] = 0; // Terminate the old ID string
50 flag = 0; // Reset counter flag
51 }
52 ID[0] = 0; // Terminate the ID string
53
54 // Clear read and write buffers
55 for (j = 0; j < 18; j++) {
56 rdata[j] = 0;
57 sdata[j] = 0;
58 }
59 }
60 }
|