AWR1843BOOST: MMWave Studio radar beamforming

Part Number: AWR1843BOOST

Tool/software:

Hi!

I'm working with the AWR1843BOOST radar board and the DCA1000 to collect raw adc data via mmwave studio (version 2.1.1.0). I can collect data normally but I would like to implement some beamforming in my data collection. I've been looking at some resources but I'm getting a lot of varying information. I therefore just wanted to ask if you could point me to some straight forward instruction on how to implement the beamforming with the AWR1843BOOst board via mmwave studio gui or a lui script. I specifically want to beamform the radar towards only two angles (20 degrees and -20 degrees) and don't want to point it anywhere else throughout my data recordings. Is there a way to go between these 2 angles in an interleaved way and store the raw adc data? Furthermore is there any matlab code that allows the processing of the beamformed adc data?

Thank you!

  • Hi again, 

    I found this lua script which does the beamforming to point to 1 angle. I was hoping to just get some tips on how to get it to point to two angles (-20 and 20 degrees). I was thinking of using 2 Chirp Phase Shifter Configs to go between these two angles but i'm not sure if this would work or how to implement that. Any help with how to alter the code for my purpose would be appreciated. Thanks again.

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    BSS_FW = "C:\\ti\\mmwave_dfp_01_02_00_01\\rf_eval\\rf_eval_firmware\\radarss\\xwr18xx_radarss_rprc.bin"
    MSS_FW = "C:\\ti\\mmwave_dfp_01_02_00_01\\rf_eval\\rf_eval_firmware\\masterss\\xwr18xx_masterss_rprc.bin"
    file_path = "C:\\ti\\raw_data_capture"
    adc_data_path1 = file_path.."\\AOP_adc_data_profile_bf.bin"
    raw_data_path1 = file_path.."\\AOP_adc_data_profile_bf_Raw_0.bin"
    pkt_log_path1 = file_path.."\\AOP_profile_bf_pktlogfile.txt"
    COM_PORT = 6
    --reset and connect
    ar1.FullReset()
    ar1.SOPControl(2)
    ar1.Connect(COM_PORT,921600,1000)
    --download BSS FW
    if (ar1.DownloadBSSFw(BSS_FW) == 0) then
    WriteToLog("BSS FW Download Success\n", "green")
    else
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hi,

    That thread does not use mmwave studio like I am so it was not really helpful for my case. I'm currently using the lua script I sent that steers the radar into one direction using phase shifter for three transmitters. It seems to work and I can view the signal in the PostProc. I'm using the raw adc data however for my project and I usually convert the binary file to an array using the matlab code provided in texas instrument documentation. I was wondering if you could point me to some documentation that describes how the data is stored in raw adc format when we use the phase shifter so that i may alter the matlab code to convert the bianary data into my usual array. Thanks.

  • Hi, there:

    Glad that you were able to figure out how to program phase shifter.  The binary data format can be found at figure 11 at below document: 

    https://www.ti.com/lit/an/swra581b/swra581b.pdf

    Best,

    Zigang

  • Thank you! Can I just ask a question for clarification when processing the raw adc data. When I enable the phase shifter, with all the transmitters activated at once with the phase shift values applied, as well as all the receivers activated, I'm assuming I'll get 4 "channels" as opposed to the usual case in TDM MIMO where the TXRX pairs result in 12 channels. Is my assumption correct and if it is, does that mean that data is stored as stated in the document with each RX following each other (as in RX0, RX1, RX2, RX3)? Would I be correct in using the below code to process the data when using the Phase Shifter config? Sorry for all the questions, I've just previously worked with TDM MIMO with all the 12 channels activated so i'm trying to make sense of how this new way of recording data is stored. Thanks for the help.

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    %%% This script is used to read the binary file produced by the DCA1000
    %%% and Mmwave Studio
    %%% Command to run in Matlab GUI - readDCA1000('<ADC capture bin file>')
    function [retVal] = readDCA1000(fileName)
    %% global variables
    % change based on sensor config
    numADCSamples = 2048; % number of ADC samples per chirp
    numADCBits = 16; % number of ADC bits per sample
    numRX = 4; % number of receivers
    numLanes = 2; % do not change. number of lanes is always 2
    isReal = 0; % set to 1 if real only data, 0 if complex data
    %% read file
    % open and read .bin file containing ADC data
    % open the adc_data.bin file
    fid = fopen(fileName, 'r');
    % read the adc data in the file
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • HI, there:

    Yes, you are right.  You will no longer have 12 visual antennas as TDM mode.  For TX beamforming, you will only have 4 total receive channels. 

    We can not review your MATLAB code,  you can plot your ADC samples cross chirps to see whether they are close to each other.  You can also plot the range-doppler FFT output and see whether the peak signal align with your point target used for testing.  That are the methods I usually use for verify my data parsing script. 

    Best,

    Zigang