This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MMWCAS-RF-EVM: MMWCAS-RF-EVM: azimuth range is not as expected in TXBF output result by processor sdk

Part Number: MMWCAS-RF-EVM
Other Parts Discussed in Thread: MMWCAS-DSP-EVM, , TDA2, AWR2243

Hi,

I am using AWR2243 MMWCAS-RF-EVM/MMWCAS-DSP-EVM with processor sdk for radar v3.8. I put one corner reflector in boresight of the cascaded EVM and ran the default TXBF demo and got below result. I saw 3 highlight red points below, instead of one. (MIMO case is working correctly)

The problem was asked in May and closed as there would be a new software release. I'd like to know when the software will release?

How can I fix the azimuth range issue now ? I tried to change txPhaseMismatch in "chains_common_cascade_ar12xx_config_bf.c" and phaseCalibVectorRxAntenna in "chains_cascadeRadarBf.c", but still don't get the good result.

Thanks,

Davy

  • Could you share the link to the previous post regarding the updated release?

  • Hi Stanley,

    Here's original question link:  e2e.ti.com/.../908543

  • Hi Wei03, 

    Please see the attached draft of the Cascade TX phase shifter calibration example which will be released in the next mmWave Studio release. This shows a general TX phase shifter calibration flow as well as example mmWave Studio scripts to be run with the MMWCAS-RF-EVM and Matlab. This flow will provide the TX calibration data you need for setting up a calibrated TX beam-forming/steering example. However, additional work will still be needed to port that into the TDA2 Processors SDK radar TX-BF example.

    4505.AWRx_TX_Phase_Cal_Scripts_20200804_rev4.zip

    Please let me know if that helps. 

    Thank you,

    -Randy

  • hi Randy,

    1. while running "cascade_TX_Phase_Calibration.m", it promps error at "

    calData_1DFFT(:, :, idxTX, idxRX) = fftshift(fft(calData(:, :, idxRX, idxTX), genCalibrationMatrixObj.numSamplePerChirp, 1));"
    As calData is 3d matrix, when idxTX>1, it promps error.
    2.a minor change will be reasonable in the same file "
    calibrateTXPhaseResultsFileFull = [dataFolder_calib_data_path 'calibrateTXPhaseResultsFileFull.mat'];" to "
    calibrateTXPhaseResultsFileFull = [dataFolder_calib_data_path '\calibrateTXPhaseResultsFileFull.mat'];"
    Thanks,
    Davy
  • Hi Wei03, 

    Were you able to generate an appropriate TX Phase Shifter lookup table? 

    Thank you,

    -Randy

  • Hi Randy,
    No, because idxTX index is out of calData boundary. The script prompts error.
    I tried "AWRx_TX_Phase_Cal_Scripts_20200309_rev3" scripts with mmWave studio 2.1.0.0 and AWR2243 cascade EVM, it could generate the TX Phase Shifter lookup table. Then I use TX calibration data(calibrateTXPhaseResult.mat) along with MIMO calibration data(calibrateResults_high.mat) to do TXBF, but the output still doesn't match with real world.
    Could you see anything error in the following steps?
    1. get calibration data
    1.1.  run Cascade_Phase_Shifter_Calibration_AWRx.lua with a single corner reflector target placed at boresight 5 meters away in a microwave chamber
    1.2.  run cascade_TX_Phase_Calibration.m to create "calibrateTXPhaseResult.mat"
    1.3.  run Cascade_COnfiguration_MIMO.lua,Cascade_Capture.lua and cascade_MIMO_antennaCalib.m to create "calibrateResults_high.mat"

    2. capture data with calibration data

    2.1. run “Cascade_Basic_Configuration.lua”

    2.2  edit phaseShiftCalibfile and phaseMismatchCalibfile in “cascade_TxBF_dataCapture.m” and run

    2.3. run “Cascade_Capture.lua” and copy to pc

    2.4. run "cascade_TxBF_signalprocessing.m" to see the result 

    Thanks,
    Wei
  • Hi Wei03, 

    The process you are outlining looks roughly correct, but I would still recommend following the whole procedure I outlined. In my rev4 release there is also a set of mmWave Studio Lua scripts and Matlab scripts for verifying that the TX phase shifter calibration was effective, by setting up a simple TX-BF example configuration with and without the calibration data applied. Have you given that a try as well?

    Also, are you saying that you used the phase offset data in the calibrateTXPhaseResult.mat directly? Or did you do the necessary, additional processing on this data to convert it into a beam-angle vs. phase shifter programming lookup table as I did in my examples?

    The rev3 version of that TX phase cal tool had a few problems and calibration data capture took too long. That is why I posted the rev4 version. However, rev4 was only tested with mmWave Studio 3.0.0.7 and DFP 2.1.5.3. 

    You need to move to the mmWave Studio 3.0.0.7 anyway since it is a release that is fully compatible with the AWR2243 and DFP2.x releases. It is available here as part of the MMWAVE-STUDIO-2G package: https://www.ti.com/tool/MMWAVE-STUDIO

    DFP 2.1.5.3 is availble here as part of the MMWAVE-DFP-2G package: https://www.ti.com/tool/MMWAVE-DFP

    Thank you,

    -Randy

  • Randy,

    There is a bug in the Cascade_Phase_Shifter_Calibration_AWRx.lua you shared in rev4 package.

    The number of parameters of ar1.FrameConfig_mult in mmwave studio 3.0.0.7 is 8, instead of 9. Pls find my correction below and kindly update it in your code base.

    --   if (0 == ar1.FrameConfig_mult(1,start_chirp_tx,end_chirp_tx,nframes_master, nchirp_loops, Inter_Frame_Interval, 0, 0, 1)) then -- mmwave studio 2.x
       if (0 == ar1.FrameConfig_mult(1,start_chirp_tx,end_chirp_tx,nframes_master, nchirp_loops, Inter_Frame_Interval, 0, 1)) then  -- mmwave studio 3.0.0.7
    ...
       -- Slaves
    --   if (0 == ar1.FrameConfig_mult(deviceMapSlaves,start_chirp_tx,end_chirp_tx,nframes_slave, nchirp_loops, Inter_Frame_Interval, 0, 0, 2)) then -- mmwave studio 2.x
       if (0 == ar1.FrameConfig_mult(deviceMapSlaves,start_chirp_tx,end_chirp_tx,nframes_slave, nchirp_loops, Inter_Frame_Interval, 0, 2)) then -- mmwave studio 3.0.0.7

  • Randy,

    1. I compared the Cascade_Phase_Shifter_Calibration_AWRx.lua in rev3 and rev4 package and they are same. I got similar error as Wei when I ran cascade_TX_Phase_Calibration.m in rev4 package. I am using mmWave Studio 3.0.0.7 and DFP 2.1.5.3

    Would you pls kindly check if you have updated lua to capture the calibration data for TXBF?

    dataFolder_calib_data_info(folderIdx).name = device1_txChannel1_phaseShiftValue00
    paramFile= C:\ti\mmwave_studio_03_00_00_07\mmWaveStudio\PostProc\device1_txChannel1_phaseShiftValue00\device1_txChannel1_phaseShiftValue00.mmwave.json
    Index exceeds matrix dimensions.

    Error in cascade_TX_Phase_Calibration (line 150)
                calData_1DFFT(:, :, idxTX, idxRX) = fftshift(fft(calData(:, :, idxRX, idxTX),
                genCalibrationMatrixObj.numSamplePerChirp, 1));

    2. I can't found parameter_file_gen_TXPS_VerificationCalib_json.m in rev4 package which you mentioned in the user guide. Would you pls help to share?

    \mmWaveStudio\MatlabExamples\4chip_cascade_MIMO_example\main\cascade\paramGen
     parameter_file_gen_TXPS_VerificationCalib_json.m 

  • Randy,

    Would you pls help again?

  • Hi Chris, 

    I made a mistake. The rev4 zip file I prepared actually still had old lua script files. The matlab files were referencing the updated cal folder structure, not the old one. I think that is why the vector indices did not line up. Please see the differences in the attached zip here and let me know if that works. 

    This cal data collection script largely follows the TDMA MIMO example we have been shipping with Studio for a while. So if the TDMA MIMO example is working, this should as well. Please note the versions of mmWave Studio, DFP and MMWCAS-RF-EVM I have tested this with. 

    AWRx_TX_Phase_Cal_Scripts_20200811_rev4.zip

    Thank you,

    -Randy

  • Hi Randy,

    I tried the new scripts in the office, they could run with no error. I will try again next week in mmwave chamber to compare the results. Many thanks.

    Could you please provide how to port the calibration data to TDA2 Prossessor_SDK_Radar?

    Thanks,

    Wei

  • Hi Wei, 

    Can you please open up a new thread on that porting question in the Processors SDK forum? I think that is the right place to get support for that topic. 

    Thank you,

    -Randy

  • Hi Randy,

    I tested AWRx_TX_Phase_Cal_Scripts_20200811_rev4.zip in a mmwave chamber, but the result is not expected like the doc.
    When running Cascade_Phase_Shifter_Calibration_AWRx.lua, it occurs error. The complete 64 phase is complete in 3 times by changing the phase start index.

    Then LUT generated as follows, it looks abnormal. The data in red is not close to zero phase.

    0,6,37,32,34,3,59,63,29
    0,8,42,35,42,13,7,14,50
    0,10,47,42,52,24,20,27,2
    0,12,52,50,60,35,34,45,20
    0,14,56,56,5,46,46,60,36
    0,17,60,63,14,58,60,11,55
    0,19,1,5,22,4,9,25,8
    0,21,5,11,28,15,22,41,25
    0,22,9,18,40,25,35,58,43
    0,24,13,24,50,39,50,9,62
    0,26,18,29,58,50,62,24,15
    0,32,22,38,3,60,11,40,34
    0,30,26,45,12,7,24,56,51
    0,34,30,52,21,18,38,8,5
    0,35,35,59,32,32,52,22,22
    0,0,0,0,0,0,0,0,0
    0,40,46,8,47,52,14,54,59
    0,42,50,14,57,63,27,6,12
    0,46,54,21,2,10,41,21,32
    0,47,59,26,10,21,55,36,49
    0,51,63,35,19,33,4,53,2
    0,52,3,41,27,44,17,5,19
    0,54,8,49,36,55,32,20,36
    0,57,12,55,46,1,43,35,55
    0,59,17,62,55,12,58,51,8
    0,61,21,4,63,23,6,2,25
    0,63,25,10,9,35,19,18,45
    0,2,32,17,18,46,34,34,62
    0,4,34,23,25,57,46,49,15
    0,6,37,32,35,3,59,63,33
    0,8,42,35,42,14,8,15,50

    After modify LUT and run Cascade_Configuration_TXBF_AngleSweep.lua script, the uncalibrated and calibrated beam angle looks the same.

  • Hi Randy, 

    Could you confirm following modifications are correct in TXBF_PS_LUT_Generate.m

    psOffsetCal(antIdx,1)= 0;

    for psIdx = 2:64

    psOffsetCal(antIdx, psIdx) = phaseOffsetValuesUnwrap(txIdx, SelectedRx, psIdx-1) 

    ==> 

    %%% psOffsetCal(antIdx,1)= 0;  %phase shift should not be zero for boresight

    for psIdx = 1:64

    psOffsetCal(antIdx, psIdx) = phaseOffsetValuesUnwrap(txIdx + (devIdx-1)*3, SelectedRx, psIdx%txIdx error here

    Then the LUT are as follows, there are phase shift at boresight

    0,5,36,14,44,9,52,14,48
    0,7,41,21,53,20,0,32,0
    0,9,46,26,61,32,12,46,17
    0,11,51,34,5,43,25,62,35
    0,13,55,40,14,54,39,11,53
    0,16,59,49,22,0,53,26,6
    0,18,63,55,33,11,1,44,23
    0,20,4,61,40,22,14,59,41
    0,21,8,3,50,34,26,9,60
    0,23,12,10,59,45,41,24,12
    0,25,17,17,3,56,56,41,32
    0,31,21,23,12,2,4,58,50
    0,29,25,28,21,14,17,7,2
    0,33,29,38,31,24,30,23,20
    0,34,34,44,39,35,45,39,36
    0,36,40,51,50,49,59,57,57
    0,39,45,57,57,59,7,6,9
    0,41,49,0,2,6,20,22,26
    0,45,53,6,10,17,34,39,46
    0,46,58,12,20,26,49,55,63
    0,50,62,20,27,39,62,5,17
    0,51,2,25,36,51,9,20,35
    0,53,7,33,46,62,22,38,53
    0,56,11,39,56,8,37,53,6
    0,58,16,46,0,19,51,3,23
    0,60,20,53,9,30,63,18,41
    0,62,24,60,18,41,11,34,60
    0,1,31,2,25,53,24,50,12
    0,3,33,8,34,63,39,0,30
    0,5,36,15,44,10,53,15,49
    0,7,41,21,53,21,0,30,0

    And I don't find "cascade_TxBF_dataCapture.m" in mmwave studio3.0.0.7, and I use the one in version 2.1.0.0 to do txbf and then  "cascade_TxBF_signalProcessing.m"?

    Thanks,

    Davy