We have published more than 30 original source codes for TR module based devices. All articles were focused on standard TR modules, where you have to write your own source code (user application). All of them were focused mainly for Point to Point communications. This post begins new post series about Data Controlled TRansceivers (DCTR).
What are Data Controlled TRansceivers (DCTR)?
quoted from iqrf.org:
“An IQRF transceiver (TR) equipped with a software plug-in (HWP) implementing higher communication layer (DPA) above the operating system (OS) enables to apply wireless in an extremely easy way. Instead of programming, a specific functionality is achieved just by a simple control via data flow. A TR allowing full HWP utilization is called DCTR.”
From user point of view, the main difference is, you do not need write any line of code to create a functional network system. All you need is DPA protocol knowledge and some master device (MCU, PC, etc) connected to IQMESH coordinator. All network activity (bonding, discovery, communication, …) are easily controlled through IQMESH coordinator SPI or UART. This interfaces transfers control packets (DPA packets) containing commands and data. Following picture shows simple example :
- NAdr – (Network address). This is network address of our target device in our example.
- PNum – (Peripheral address). This is address of some peripheral on target DCTR module.
- PCom – (Peripheral Command) specifying an action to be taken. Actual allowed value range depends on peripheral type.
- HWP – HW profile – it is not important in our example, just use 0x0000.
- Data – Optional message data.
Coordinator will resend this message to target device. This device will process it and switch on the LED. You are not limited only on LED of course. Following part of source code illustrates which peripherals you can use:
#define PNUM_COORDINATOR 0x00 #define PNUM_NODE 0x01 #define PNUM_OS 0x02 #define PNUM_EEPROM 0x03 #define PNUM_EEEPROM 0x04 #define PNUM_RAM 0x05 #define PNUM_LEDR 0x06 #define PNUM_LEDG 0x07 #define PNUM_SPI 0x08 #define PNUM_IO 0x09 #define PNUM_THERMOMETER 0x0A #define PNUM_PWM 0x0B #define PNUM_UART 0x0C #define PNUM_FRC 0x0D #define PNUM_USER 0x20 #define PNUM_ERROR_FLAG 0xFE
Please check current list of peripheral with IQRF DPA Framework technical guide.
Now it is time to first practical steps with DCTRs. If you are beginning with DCTRs, like me, It is good idea to read DPA quick start guide. I have no DS-DPA-01 development set, so my next step will be slightly different from this guide. I will use:
- CK-USB-04 (1x), assembled with DCTR-52DAT
- DK-EVAL-04 (3 pieces in my case, but just use, as much, as you have) assembled with DCTR-52DAT.
- IQRF IDE (4.17 in my case. Check newer version).
- Demo HWP.
Please, follow me:
- Unpack Demo HWP to some directory and then open the HWP-demo.iqrfprj.
- Select DemoHWP-Node-SPI-V201-140602.iqrf and upload it (F5) to first node DCTR.
- Open DPA-config.xml and upload it.
- Repeat steps for other nodes.
- Select DemoHWP-Coordinator-SPI-V201-140602.iqrf and upload it to coordinator DCTR.
- Open DPA-config.xml and upload it.
- Insert node DCTRs into DK-EVAL-04.
- Leave coordinator DCRS inside CK-USB-04.
You have prepared DCTRs to make a IQMESH. Unbonded nodes will be flashing by red LED for ten times, then they will stop flashing. If they are not flashing, they are bonded. In this case, press and hold button SW1 (close to USB connector), then shortly press button SW2. Green LED shines for about 2 s.
- Press “Clear all nodes” button in IQMESH network manager.
- Set Address to “1” and check, that “Auto address” is checked.
- Press “Bond node” and then SW1 on Node 1 DK-EVAL-04.
- Node is bonded. Yellow ball is shown.
- Repeat steps 2-4 for other nodes.
- All nodes are bonded.
- Press “Discovery“.
- All nodes are discovered. Balls are blue. Map view will show topology.
If you want to test communication, just use right mouse button on ball representing node and then run “LED Red Pulse” or any other command. Command will be executed on target device.
In the next article we will show you how to use DPA protocol for network management from superior system.