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.

IWR6843AOP: Manual setup of Gain settings

Part Number: IWR6843AOP


There has been actually a couple of issues we have noticed.

In order of priority

  • Change TX Gain table directly. Changes do not survive calibration events. Will one shot calibration avoid this overwrite?
  • How to enable OLPC mode? We have tried to set `txPowerCalMod` variable to `0x1` and rebuild the mmwave_link library but we are not sure this did anything.
  • Gain LUT tables change from read to read (no profil config changes) when using Linux CCS studio build. But it does not on windows. This one is actually very weird.

LUT table changes pattern,

For example, one of the devices generates the table as such. But before it would generate them differently. As indicated in the table the current one, the profile index for both Rx and Tx is 0. While for the previous one it would fluctuate depending on the device a little. The ones for the table are TX: 159, Rx 93. Both of this were taken on the same device.
Current LUT value Previous LUT values
temp range Tx 0 Tx 1 Tx 2
< 30 0x26 0x26 0x26
[-30, -20) 0x27 0x27 0x27
[-20, -10) 0x27 0x27 0x27
[-10, 0) 0x27 0x27 0x27
[0, 10) 0x28 0x28 0x28
[10, 20) 0x28 0x28 0x28
[-10, 0) 0x29 0x29 0x29
[10, 20) 0x29 0x29 0x29
[20, 30) 0x2a 0x2a 0x2a
[30, 40) 0x2c 0x2c 0x2c
[40, 50) 0x2a 0x2a 0x2a
[50, 60) 0x2c 0x2c 0x2c
[60, 70) 0x2c 0x2c 0x2c
[70, 80) 0x2e 0x2e 0x2e
[80, 90) 0x2e 0x2e 0x2e
[90, 100) 0x30 0x30 0x30
[100, 110) 0x30 0x30 0x30
[110, 120) 0x32 0x32 0x32
[120, 130) 0x32 0x32 0x32
[130, 140) 0x29 0x4 0x0
RX Profile 0 --- ---
TX Profile 0 --- ---
temp range Tx 0 Tx 1 Tx 2
< 30 0x28 0x38 0x2
[-30, -20) 0x2 0x1b 0x0
[-20, -10) 0x0 0x2 0x1
[-10, 0) 0x10 0x0 0x1
[0, 10) 0x10 0x1 0x10
[10, 20) 0xb 0x17 0x16
[-10, 0) 0x0 0x2 0x0
[10, 20) 0xc 0x1 0x26
[20, 30) 0x1e 0x16 0x29
[30, 40) 0x2 0x0 0x2
[40, 50) 0x0 0xc 0x0
[50, 60) 0x0 0x1b 0x1
[60, 70) 0x20 0x2 0x10
[70, 80) 0x2 0x0 0x16
[80, 90) 0x2 0x1 0x0
[90, 100) 0x0 0x3 0x0
[100, 110) 0x1 0x0 0x3c
[110, 120) 0x1 0xc 0x2
[120, 130) 0x10 0x1e 0x0
[130, 140) 0x29 0x4 0x0
RX Profile 93 --- ---
TX Profile 159 --- ---
So our current goal
  1. Be able to change the Gain setttings without them being overwritten
  2. Be able to change Gain settings based on a particular time and not temperature.
  • Hi Pablo,

    I am looking into these questions and I am aiming to have answers for you by the end of the week. 

    • Change TX Gain table directly. Changes do not survive calibration events. Will one shot calibration avoid this overwrite?
    • How to enable OLPC mode? We have tried to set `txPowerCalMod` variable to `0x1` and rebuild the mmwave_link library but we are not sure this did anything.
    • Gain LUT tables change from read to read (no profil config changes) when using Linux CCS studio build. But it does not on windows. This one is actually very weird.

    Thank you,

    Angie

    • Change TX Gain table directly. Changes do not survive calibration events. Will one shot calibration avoid this overwrite?
      • What method are you using to change the TX Gain table?
      • What type of calibration event are you seeing over write the gain table? Is it the initial RF calibration or the runtime periodic calibration?
    • How to enable OLPC mode? We have tried to set `txPowerCalMod` variable to `0x1` and rebuild the mmwave_link library but we are not sure this did anything.
      • This should be possible by writing to an API, you should not have to rebuild the mmwave_link library.
      • RfRunTimeCalibConf API has txPowerCalMode which can be changed to enable OLPC only, see documentation <sdk_download_location>/packages/ti/control/mmwavelink/docs/doxygen/html/structrl_run_time_calib_conf__t.html
    • Thank you for letting us know! We know our software can behave differently with Linux CCS so I would recommend using windows when possible

    Thanks,

    Angie

  • Hi Pablo,

    Have you been able to look at the questions I shared above? I am not curious as to what is causing this issue and would like to document the resolution of this issue on our e2e forums if possible.

    Thank you,

    Angie

  • Hello Angie,

    Please find the answers to your questions below.

    • What method are you using to change the TX Gain table?
      We are using the APIs `rlRxGainTempLutSet`  `rlRxGainTempLutGet` `rlTxGainTempLutSet`, `rlTxGainTempLutGet` to make the changes.
      We have tried a couple of ways,
      1. Setting the tables before initializing the sensor.
      2. Setting the tables after `sensorStart` command. While the sensor is running.
      In both cases our setting never actually seem to be applied. TO be clear, the calls above succeed, and the table has these numbers but once a calibration is run the table (partially or completely ) is modified to look like the Current LUT value in the first post.

    • What type of calibration event are you seeing over write the gain table? Is it the initial RF calibration or the runtime periodic calibration?
      Our experiments show that is it both `rfInit` and runtime calibration that modify it. `rFinit` modifies the entire table, while the the runtime seems to only modify the temperature range the calibration is applied.
  • Regarding your answer to the OLPC, we were aware of the `RfRunTimeCalibConf` API and are trying the one shot calibration through it, our main concern was that since we are using the MMwave SDK API we are not sure the `RfRunTimeCalibConf` call will conflict with it, MMwave_start and  MMwave_startLink make use of it, so by manually using it we are force to bring forward some internals like `MMWave_MCB` which is an internal structure. We found recompiling to be a faster solution for testing. Then again, we are not sure it did anything, how can we verify that OLPC was indeed used? Is there an API call we can use to check this?

  • Hi Pablo,

    Thank you for these additional details -- my team and I will review this and I will get back to you by the end of the week.

    Thanks,

    Angie

  • Hi Pablo,

    Apologies for the delay here. As follows is the expected operation of the device to achieve what you would like:

    1. Run initial calibration

    2. Send the profile config (this will also cause modifications to the LUT)

    3. Set OLPC mode using RfRunTimeCalibConf

    4. Set values in the TX gain LUT table

    5. Run one time runtime calibration

    We do not have any way to read the value in the RfRunTimeCalibConf to see if OLPC is set. However you can try the following procedure to verfiy:

    1. Do the steps above in OLPC mode

    2. Do the steps above in CLPC mode

    In CLPC mode the runtime calibration will modify the LUT

    I have a few questions for you:

    1. Why are you trying to change the values in this table? While it is possible to use your custom values in OLPC mode, doing so is not supported by TI. We only support CLPC mode. OLPC mode can introduce large errors to the txbackoff. 

    2. Do you need to save these values from boot to boot?