IQRF 2 click

Description of product

IQRF 2 click carries the DCTR-72DAT RF transceiver, operating in the 868/916 MHz frequency. The click is designed to run on a 3.3V power supply. It communicates with the target microcontroller over SPI or UART interface, with additional functionality provided by the following pins on the mikroBUS™ line: AN, PWM.

Module features

DCTR-72DAT is an RF transceiver operating in the 868/916 MHz license-free ISM (Industry, Scientific, and Medical) frequency band. Its highly integrated ready-to-use design containing MCU, RF circuitry, serial EEPROM and optional onboard antenna requires no external components.

How the click works

The DCTR-72DAT module's highly integrated ready-to-use design containing MCU, RF circuitry, integrated LDO regulator, serial EEPROM, optional temperature sensor and optional onboard antenna requires no external components. 

It has extended RF power results in higher RF range. The ultra-low power consumption fits for battery powered applications. 

The module with a built-in operating system significantly reduces application development time. Optional DPA framework supports applications even without programming.



To upload application codes in DCTRs and configure DCTR parameters, CK-USB-04A kit is intended. When the application is uploaded to the IQRF it can be put in microBUS™ socket and communicate with it with MCU.

To upload the firmware put the jumpers in the SPI position.

To use our LibStock library examples the jumpers need to be in UART position.

Specifications

TypeRF Sub 1GHz
ApplicationsPoint-to-point or network wireless connectivity, Telemetry, AMR (automatic meter reading), WSN (wireless sensor network), Building automation, Street lighting control, etc.
On-board modulesDCTR-72DAT RF transceiver
Key FeaturesSelectable RF band 868 / 916 MHz, multiple channels
InterfaceUART,Analog,GPIO,SPI
Input Voltage3.3V
CompatibilitymikroBUS
Click board sizeM (42.9 x 25.4 mm)

Pinout diagram

This table shows how the pinout on IQRF 2 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).

NotesPinMikrobus logo.png                                        Pin     Notes
Analog pinADC1ANPWM16DINGeneral I/O pin  
NC2RSTINT15NC
SPI enableSPI_CS3CSTX14TXDUART transmit
SPI ClockSPI_SCK4SCKRX13RXDUART receive
SPI Master Input Slave Output           SPI_MISO         5MISOSCL12NC
SPI Master Output Slave InputSPI_MOSI6MOSISDA11NC
Power supply+3.3V73.3V5V10NC
GroundGND8GNDGND9GNDGround

Programming

Code examples for iqRF click, written for MikroElektronika hardware and compilers are available on Libstock.

Code snippet

This code snippet contains receiver and transmitter code for IQRF 2 click board working with Thermo K click. When in transmit mode, MCU reads temperature from Thermo K and if certain threshold has been reached, byte data is sent to IQRF board via UART communication. Then, iqRF is broadcasting that byte to every other iqRF within range. Every Other IQRF click board is receiving that byte via RF communication and sending data to his local MCU via UART. Every event is displayed on easyTFT.

01 while(1)
02   {
03     #ifdef __TX__
04     ////////////////////////////////////////
05     status = &Read_MCP9600_Status;
06     Temp_Data_Ready = (status & 0x40);
07 
08     temp =  Read_Temperature();
09     
10     if (Temp_Data_Ready)
11     {                                        // Check is Temperature Data ready
12       sprintf(txt, "%2.1f  C", temp);        // Format Temperature Data and store it to txt
13       res = strcmp(txt,old_txt);             // Compare old_txt and txt
14 
15       if(res != 0)                           // If old_txt and txt are not equal
16       {                                                                         
17         updateLabel(txt, 135, 90, lab1);     // Write temperature value on display
18         strcpy(old_txt,txt);                 // Copy txt to old_txt string array
19       }
20     }
21     
22     if (temp <= LOW_TEMP_POINT)              // If low temperature point has been reached
23     {
24      if (!low_point_reached)
25      {
26       UART3_Write_Text("L");                 // Send byte via UART
27      }
28      low_point_reached = true;
29        
30     }
31     else if (temp >= HIGH_TEMP_POINT)        // If high temperature point has been reached
32     {
33      if(!high_point_reached)
34      {
35       UART3_Write_Text("H");                 // Send byte via UART                                 
36      }
37      high_point_reached = true;
38 
39     }
40     else
41     {
42      low_point_reached = false;
43      high_point_reached = false;
44     }
45     Delay_ms(500);
46   #endif
47   ////////////////////////////////////////
48   #ifdef __RX__
49 
50     TFT_Set_Font(&HandelGothic_BT21x22_Regular, CL_BLACK, FO_HORIZONTAL);
51 
52     // Writing warnings on display
53     if(high_point_reached)
54     {
55      TFT_Set_Font(&HandelGothic_BT21x22_Regular, CL_RED, FO_HORIZONTAL);
56      high_point_reached = false;
57      TFT_Write_Text("HIGH ", 130, 100);
58      Delay_ms(2000);
59      TFT_Set_Font(&HandelGothic_BT21x22_Regular, CL_WHITE, FO_HORIZONTAL);
60      TFT_Write_Text("HIGH ", 130, 100);
61     }
62     if(low_point_reached)
63     {
64      TFT_Set_Font(&HandelGothic_BT21x22_Regular, CL_BLUE, FO_HORIZONTAL);
65      low_point_reached = false;
66      TFT_Write_Text("LOW", 130, 100);
67      Delay_ms(2000);
68      TFT_Set_Font(&HandelGothic_BT21x22_Regular, CL_WHITE, FO_HORIZONTAL);
69      TFT_Write_Text("LOW ", 130, 100);
70     }
71   #endif
72   }
73 
74 }

Downloads