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.

AWR1642: Runtime calibration didn't update Rx gain temperature LUT but can update Tx gain temperature LUT?

Part Number: AWR1642

HW: AWR1642BOOST ES1.0

SW: mmWave Radar Studio 1.0

We use the above HW/SW combination to test runtime calibration in Radar Studio.

The purpose is to observe the calibration and Tx gain temperature LUT / Rx gain temperature LUT relations.

In the test, the AWR1642 complete boot time calibration successfully and we make sure Tx gain temperature LUT / Rx gain temperature LUT value are all there.

We try to change the value in Tx gain temperature LUT / Rx gain temperature LUT and set LUT. After that, doing one time calibration repeatly. (let's said a couple of seconds per time)

The results are:

(1) The runtime calibration report shows the execution is successful and both Tx gain/Rx gain report had been updated. 

(2) We can see the value in Tx gain temperature LUT is changed gradually and finally approach to the boot time calibration value.

(3) The value in Rx gain temperature LUT is never changed. 

The questions is:

Why the value in Rx gain temperature LUT is never changed but Tx gain is OK?

I also attached the mmWave studio snap shoot here.Calibration and LUT.pdf

  • Hi James,

    Could you please post the log from mmWaveStudio so that we can review the sequence of operations?

    Also, it looks like you have only TX power and RX gain calibrations enabled. You should probably also have the LODIST and PD Calibrations enabled. PD calibrations are required for TX power and RX gain calibrations.

    Also, an overview of the calibration mechanisms and APIs available for AWR1xxx devices is available in the following application note:
    www.ti.com/lit/an/spracf4/spracf4.pdf

    Best Regards,
    Anand
  • Hi Anand,

    I attached the mmWave studio log here. BTW, LODIST, PD calibrations had been enabled but the result are still the same. Tx is updated, Rx is not updated.

    You should be able to reproduce it easily.

    GM: Constructor
    GM: Fri Aug 03 17:32:29 2018
    RSTD.Transmit("/Settings")
    [17:32:30]  
    [17:32:30]  ### Running Startup script: "C:\ti\mmwave_studio_01_00_00_00\mmWaveStudio\Scripts\Startup.lua" ###
    [17:32:30]  RSTD.SetAndTransmit ("/Settings/Scripter/Display DateTime" , "1")
    [17:32:30]  RSTD.SetAndTransmit ("/Settings/Scripter/DateTime Format" , "HH:mm:ss")
    [17:32:30]  Scripter ignored: Attempt to UnBuild() again or before Build.
    [17:32:30]  RSTD.SetVar ("/Settings/Clients/Client 0/Dll" , "C:\\ti\\mmwave_studio_01_00_00_00\\mmWaveStudio\\Clients\\\\LabClient.dll")
    [17:32:30]  RSTD.SetVar ("/Settings/Clients/Client 0/Use" , "TRUE")
    [17:32:30]  RSTD.SetVar ("/Settings/Clients/Client 1/Use" , "FALSE")
    [17:32:30]  RSTD.SetVar ("/Settings/Clients/Client 2/Use" , "FALSE")
    [17:32:30]  RSTD.SetVar ("/Settings/Clients/Client 3/Use" , "FALSE")
    [17:32:30]  RSTD.SetVar ("/Settings/Clients/Client 4/Use" , "FALSE")
    [17:32:30]  RSTD.SetVar ("/Settings/AL Client/AL Dll" , "C:\\ti\\mmwave_studio_01_00_00_00\\mmWaveStudio\\RunTime\\SAL.dll")
    [17:32:30]  RSTD.SetVar ("/Settings/Clients/Client 0/GuiDll" , "")
    [17:32:30]  RSTD.SetVar ("/Settings/AutoUpdate/Enabled" , "TRUE")
    [17:32:30]  RSTD.SetVar ("/Settings/AutoUpdate/Interval" , "1")
    [17:32:30]  RSTD.SetVar ("/Settings/Monitors/UpdateDisplay" , "TRUE")
    [17:32:30]  RSTD.SetVar ("/Settings/Monitors/OneClickStart" , "TRUE")
    [17:32:30]  RSTD.SetVar ("/Settings/Automation/Automation Mode" , "false")
    [17:32:30]  RSTD.Transmit("/")
    [17:32:30]  RSTD.SaveSettings(): Settings saved to "C:\Users\a0388835\AppData\Roaming\RSTD\config.xml"
    [17:32:30]  RSTD.Build()
    [17:32:30]  RSTD.SaveSettings(): Settings saved to "C:\Users\a0388835\AppData\Roaming\RSTD\config.xml"
    [17:32:30]  RSTD.Transmit("/")
    [17:32:30]  RSTD.AL_Build()
    [17:32:30]  RSTD.AL_LoadXml()
    [17:32:30]  RSTD.Transmit("/")
    [17:32:30]  RSTD.AL_Init()
    [17:32:30]  RSTD.Clients_Build()
    [17:32:30]  GM: Init
    [17:32:30]  GM: Loaded 'C:\ti\mmwave_studio_01_00_00_00\mmWaveStudio\Clients\\LabClient.dll'
    [17:32:30]  GM: 1 Guest (s) init
    [17:32:30]  GM: 1 Module(s) init
    [17:32:30]  GM: 2 Tab   (s) init
    [17:32:30]  RSTD.Client_LoadXml()
    [17:32:30]  [RadarAPI]: Starting Matlab Engine..
    [17:32:41]  [RadarAPI]: Matlab Engine Started!
    [17:32:48]  [RadarAPI]: ar1.LoadSettings('C:\Users\a0388835\AppData\Roaming\RSTD\ar1gui.ini')
    [17:32:48]  TESTING = false
    [17:32:48]  
    [17:32:48]  ***Script completed successfully.***
    [17:33:09]  [RadarAPI]: Opening Gpio Control Port()
    [17:33:09]  [RadarAPI]: Status: Passed
    [17:33:10]  [RadarAPI]: Opening Board Control Port()
    [17:33:10]  [RadarAPI]: Status: Passed
    [17:33:11]  [RadarAPI]: ar1.FullReset()
    [17:33:11]  [RadarAPI]: Status: Passed
    [17:33:11]  [RadarAPI]: Closing Board Control Port()
    [17:33:11]  [RadarAPI]: Status: Passed
    [17:33:11]  [RadarAPI]: Closing Gpio Control Port()
    [17:33:11]  [RadarAPI]: Status: Passed
    [17:33:11]  [RadarAPI]: ar1.SOPControl(2)
    [17:33:12]  [RadarAPI]: Status: Passed
    [17:33:13]  [RadarAPI]: ar1.Connect(3,115200,1000)
    [17:33:14]  [RadarAPI]: ar1.Calling_IsConnected()
    [17:33:15]  [RadarAPI]: ar1.SelectChipVersion("XWR1642")
    [17:33:15]  [RadarAPI]: Status: Passed
    [17:33:15]  [RadarAPI]: ar1.SelectChipVersion("XWR1642")
    [17:33:15]  [RadarAPI]: Status: Passed
    [17:33:16]  [RadarAPI]: ar1.SaveSettings('C:\Users\a0388835\AppData\Roaming\RSTD\ar1gui.ini')
    [17:33:26]  [RadarAPI]: ar1.DownloadBSSFw("C:\\ti\\mmwave_studio_01_00_00_00\\rf_eval_firmware\\radarss\\xwr16xx_radarss_rprc_ES1.0.bin")
    [17:33:26]  [RadarAPI]: Downloading BSS ROM RPRC Binary..
    [17:34:05]  [RadarAPI]: ar1.DownloadMSSFw("C:\\ti\\mmwave_studio_01_00_00_00\\rf_eval_firmware\\masterss\\xwr16xx_masterss_rprc_ES1.0.bin")
    [17:34:05]  [RadarAPI]: Downloading MSS RPRC Binary..
    [17:34:28]  [RadarAPI]: ar1.PowerOn(0, 1000, 0, 0)
    [17:34:28]  [RadarAPI]: Status: Passed
    [17:34:28]  MSS power up done async event received!
    [17:34:28]  [RadarAPI]: ar1.SaveSettings('C:\Users\a0388835\AppData\Roaming\RSTD\ar1gui.ini')
    [17:34:29]  [RadarAPI]: ar1.RfEnable()
    [17:34:29]  BSS power up done async event received!
    [17:34:29]  [RadarAPI]: Status: Passed
    [17:34:56]  [RadarAPI]: ar1.ChanNAdcConfig(1, 1, 0, 1, 1, 1, 1, 2, 2, 0)
    [17:34:56]  [RadarAPI]: Status: Passed
    [17:34:58]  [RadarAPI]: ar1.LPModConfig(0, 0)
    [17:34:58]  [RadarAPI]: Status: Passed
    [17:34:58]  [RadarAPI]: ar1.RfInit()
    [17:34:59]  RF Init async event received!
    [17:34:59]  [RadarAPI]: Status: Passed
    [17:34:59]  [RadarAPI]: Time stamp, Temperture: 29399,30; APLL Status, Update: 1, 0; SynthVCO1 Status, Update: 1, 1; SynthVCO2 Status, Update: 1, 1; LODist Status, Update: 1, 1; RxADCDC Status, Update: 1, 1; HPFcutoff Status, Update: 1, 1; LPFcutoff Status, Update: 1, 1; PeakDetector Status, Update: 1, 1; TxPower Status, Update: 1, 1; RxGain Status, Update: 1, 1; RxIQMM Status, Update: 1, 1; 
    [17:35:02]  [RadarAPI]: ar1.RfSetCalMonFreqTxPowLimitConfig(76, 76, 76, 81, 81, 81, 0, 0, 0)
    [17:35:02]  [RadarAPI]: Status: Passed
    [17:35:10]  [RadarAPI]: ar1.DataPathConfig(513, 1216644097, 0)
    [17:35:10]  [RadarAPI]: Status: Passed
    [17:35:11]  [RadarAPI]: ar1.LvdsClkConfig(1, 1)
    [17:35:11]  [RadarAPI]: Status: Passed
    [17:35:12]  [RadarAPI]: ar1.LVDSLaneConfig(0, 1, 1, 0, 0, 1, 0, 0)
    [17:35:12]  [RadarAPI]: Status: Passed
    [17:35:16]  [RadarAPI]: ar1.ProfileConfig(0, 77, 100, 6, 60, 0, 0, 0, 0, 0, 0, 29.982, 0, 256, 10000, 0, 0, 30)
    [17:35:16]  [RadarAPI]: Status: Passed
    [17:35:17]  [RadarAPI]: ar1.ChirpConfig(0, 0, 0, 0, 0, 0, 0, 1, 0, 0)
    [17:35:17]  [RadarAPI]: Status: Passed
    [17:35:18]  [RadarAPI]: ar1.DisableTestSource(0)
    [17:35:18]  [RadarAPI]: Status: Passed
    [17:35:18]  [RadarAPI]: ar1.FrameConfig(0, 0, 8, 128, 40, 0, 1)
    [17:35:18]  [RadarAPI]: Status: Passed
    [17:35:27]  [RadarAPI]: ar1.TxGainTempLutGet(0)
    [17:35:27]  [RadarAPI]: Status: Passed
    [17:35:30]  [RadarAPI]: ar1.RxGainTempLutGet(0)
    [17:35:30]  [RadarAPI]: Status: Passed
    [17:35:57]  [RadarAPI]: ar1.TxGainTempLutSet(0, 52, 53, 54, 55, 56, 57, 58, 0, 0, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 52, 53, 54, 55, 56, 57, 58, 0, 0, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 1, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
    [17:35:57]  [RadarAPI]: Status: Passed
    [17:35:59]  [RadarAPI]: ar1.RxGainTempLutSet(0, 67, 67, 67, 35, 35, 35, 35, 0, 0, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5)
    [17:35:59]  [RadarAPI]: Status: Passed
    [17:36:33]  [RadarAPI]: ar1.RunTimeCalibConfTrig(1, 1, 1, 1, 0, 0, 0, 0, 25, 1, 0)
    [17:36:33]  [RadarAPI]: Status: Passed
    [17:36:33]  Run Time calibration async event received!
    [17:36:33]  [RadarAPI]: Time stamp, Temperature: 123698,35; APLL Status, Update: 1, 0; VCO1 Status, Update: 1, 1; VCO2 Status, Update: 1, 1; LODist Status, Update: 1, 1; PDCal Status, Update: 1, 1; TxPower Status, Update: 1, 1; RxPower Status, Update: 1, 1; 
    [17:36:42]  [RadarAPI]: ar1.RunTimeCalibConfTrig(1, 1, 1, 1, 0, 0, 0, 0, 25, 1, 0)
    [17:36:42]  [RadarAPI]: Status: Passed
    [17:36:42]  Run Time calibration async event received!
    [17:36:42]  [RadarAPI]: Time stamp, Temperature: 132766,35; APLL Status, Update: 1, 0; VCO1 Status, Update: 1, 1; VCO2 Status, Update: 1, 1; LODist Status, Update: 1, 1; PDCal Status, Update: 1, 1; TxPower Status, Update: 1, 1; RxPower Status, Update: 1, 1; 
    [17:36:49]  [RadarAPI]: ar1.RunTimeCalibConfTrig(1, 1, 1, 1, 0, 0, 0, 0, 25, 1, 0)
    [17:36:49]  [RadarAPI]: Status: Passed
    [17:36:49]  Run Time calibration async event received!
    [17:36:49]  [RadarAPI]: Time stamp, Temperature: 139574,35; APLL Status, Update: 1, 0; VCO1 Status, Update: 1, 1; VCO2 Status, Update: 1, 1; LODist Status, Update: 1, 1; PDCal Status, Update: 1, 1; TxPower Status, Update: 1, 1; RxPower Status, Update: 1, 1; 
    [17:36:54]  [RadarAPI]: ar1.TxGainTempLutGet(0)
    [17:36:55]  [RadarAPI]: Status: Passed
    [17:36:57]  [RadarAPI]: ar1.RxGainTempLutGet(0)
    [17:36:57]  [RadarAPI]: Status: Passed

  • Hi James,

    The RX LUT is not expected to be updated automatically by the device at runtime. It is a fixed LUT whose values are populated during RF initialization, and the appropriate value from the LUT will be applied to the device registers whenever a calibration event occurs. Periodic calibration events are attempted at the programmed periodicity (about every 25 frames for your settings), and calibration events will occur only if the temperature has changed by 10 degrees from the last calibration event.

    TX power calibrations can be done using open-loop power control (OLPC) or closed-loop power control (CLPC). If OLPC is enabled, then the behavior will be similar to the RX gain calibration and the LUT is not updated at runtime. If CLPC is enabled, then the LUT will be updated based on measurement of the actual TX power and the updated LUT can be read back.

    For RX Gain calibration, if you update the LUT yourself, then the updated LUT is the one that will always be used.

    If you are seeing behavior different than this, then could you please repeat the test and share the mmWave Studio log and also the C:\ti\mmwave_studio_01_00_00_00\mmWaveStudio\RunTime\trace.txt file from that session?

    Best Regards,
    Anand
  • Hi Anand,

    Thanks a lot, your reply is always useful.