Post Go back to editing

Setting up communication between two EV-ADF70301-868BZ modules


I have two EV-ADF70301-868BZ modules and wanted to establish communication between them. I wanted to transmit data from one node to other. 
Both my transmitter and receiver nodes are using EV-COG-AD4050LZ as the MCU. I'm using my custom drivers on the top Mbed-OS, as EV-COG-AD4050LZ is supported by Mbed, to communicate from MCU to ADF7030 boards. 
Everything works fine as I can read/write to registers and read the temperature data from the ADF70301 as well. 

However, I can't wrap my head around how to establish the connection between two nodes, and below are my queries regarding this:
1) All the options to generate .cfg files look confusing and I'm not sure on different settings would be applied for the transmitter and receiver node to work seperatly.
2) Do the I read confirm is data has been transmitted from transmitter node and has the same has been received on the receiver node. Do I need to set up IRQ on the board? or
    just read the register address 
0x20000AF0 or 0x20000C18 would work?

In case if code is needed, I'm willing to provide it over email. 
Any help on this is appreciated. 


  • Hi, 

    To confirm if your configuration and boards are working properly, you can check them using ADF7030 Design Center. You can also check here the Payload and IRQ results from the Packet RX of the receiving board while the other board is transmitting from the Packet TX option. 

    Here's my answer to your queries:

    1) The radio RF and Packet Settings for both boards should be the same, the configuration does not define if they are the in the Transmit Mode or Receive Mode. The state of the boards depend on the commands that the host sends to them, such as having them go to  PHY_ON then PHY_TX for Transmit Mode or PHY_ON then PHY_RX for Receive Mode. You can refer to the  ADF7030-1UG-1002 page 8 on how to properly transition the boards into their right modes.

    2)  If you want to know if the received packet is correct in your code, you have to read the IRQ Status Registers. You have to first clear or write 1's on the register address, then after PHY_RX and PHY_ON states, read the significant register e.g. the EOF_IRQ0 which should be 1 for a successful interrupt. Read the interrupt results using the register Address: 0x40003808 (Name: IRQ_CTRL_STATUS0) or Address: 0x4000380C (Name: IRQ_CTRL_STATUS1). Pages 45, 72, and 77-78 of the user guide would be helpful.