This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf52833 AoA getting started

I am looking for some 'getting started' information on configuring the nrf52833 DK for direction finding.

I have read the thread: https://devzone.nordicsemi.com/f/nordic-q-a/53115/nrf52811-direction-finding-aoa-where-should-i-start  where Dmitry gives the overview of steps needed to obtain I/Q data. 

The small issue is: How do you do that with Softdevice?  I am trying to leverage the ble_app_uart project and modify it to send the appropriate tone extension on the advertising packet.  However, I try to modify the DFEMODE (0x40001900) register,  then when softdevice loads, DFEMODE gets reset to 0x0. The SDK states that the radio needs to be disabled before modifying a Radio register. If I try that, softdevice panics and I get sent to the error handler.

I thought that the BLE 5.1 spec said  the tone accompanied the advertising packet.  Is the current Nordic  implication one that I need to omit softdevice and control the radio directly?

Thank you for your insights!

Parents
  • Hi Andreas,

    Thank you for the response. Is there a step-by-step guide that better outlines how to use the radio_tests example in the SDK?

    Can you comment on the steps needed to transmit a pattern to a receiver ( both tx and rx are separate PCA10100 DKs):

    1) a pattern needs to be defined ( random pattern doesn't work).

    2) setup the start and end channel to be the same, for my case, I used channel 22.

    3) start rx_sweep on the RX board.

    4) start the start_tx_modulated_carrier on the TX board.

    5) wait 10 seconds, then dump the buffer on the RX board using rx_print command. It then dumps about 100 samples (?) to the screen.

    Questions I have:

    -After I issue the start_rx_sweep on the RX board, how long does it run? 

    -Do I need to perform a start_rx before I issue the start_rx_sweep command?

    -There are 3 'start_tx_" commands, does it matter which one I use to enable me to transmit a pattern?

    -On the RX side, I want to read I/Q data. Does the DFEPACKET.MAXCNT get reset after I read out that data?

    -How do I specify the quantity of packets to the TX'd? Since the transmitted tone is continuous, does the receiver dictate that by the sampling rate in DFECTRL1? ( assuming that the TX and RX start transmitting/listening simultaneously) I want to make sure that I can match this on the RX  DFEPACKET.COUNT register.

    Thanks,

    -Ben

  • Hi,

     

    There is documentation for this example in our infocenter. Comments to your steps:

    1) The pattern is also used in the header for the devices to find each other.

    3) RX sweep does not stay put on the frequency you have assigned, it will sweep the frequency up to the end channel, then repeat. You might need to use the start_rx command, I do not think sweeping only 1 channel works (based on your pt 5 if might though).

    Regarding your questions:

    - All the tests run until you cancel them or pull the power from your DUT.

    - You would want to avoid using the tx_carrier and sweep_tx commands, as those are unmodulated and hece does not contain any data. The difference between the last two is just that the duty_cycle one inserts a delay between the packets to obtain the specified duty cycle.

    - Registers are only reset if overwritten or if the device/peripheral is power cycled.

    - This example does not have support to specify the number of packets, it is meant to enable TX or RX modes for regulatory RF testing. You need to add this yourself.

    Best regards

    Andreas

Reply
  • Hi,

     

    There is documentation for this example in our infocenter. Comments to your steps:

    1) The pattern is also used in the header for the devices to find each other.

    3) RX sweep does not stay put on the frequency you have assigned, it will sweep the frequency up to the end channel, then repeat. You might need to use the start_rx command, I do not think sweeping only 1 channel works (based on your pt 5 if might though).

    Regarding your questions:

    - All the tests run until you cancel them or pull the power from your DUT.

    - You would want to avoid using the tx_carrier and sweep_tx commands, as those are unmodulated and hece does not contain any data. The difference between the last two is just that the duty_cycle one inserts a delay between the packets to obtain the specified duty cycle.

    - Registers are only reset if overwritten or if the device/peripheral is power cycled.

    - This example does not have support to specify the number of packets, it is meant to enable TX or RX modes for regulatory RF testing. You need to add this yourself.

    Best regards

    Andreas

Children
No Data
Related