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.

IWR6843ISK: IWR6843

Part Number: IWR6843ISK
Other Parts Discussed in Thread: IWR6843

I am jaewoo lim.

I am using out_of_box_demo with IWR6843ISK.
I have question.

I know that there are boot-time calibration and Run-time calibration for temperature compensation.

And I know that there are one-time calibration and periodic-time calibration among run-time calibration.

And I know that how to disable run-time calibration at out_of_box_demo project at below web site.
https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1051278/iwr6843aop-how-we-verify-the-calibration-result-or-compare-the-performance-with-or-without-calibration

But I want to use only one-time calibration on run time.

but I didn't find how to use only one-time calibration on run time in any document or on any web site.

There is information for Self-Calibration in TI’s mmWave Radar Devices at below site.
https://www.ti.com/lit/an/spracf4b/spracf4b.pdf?ts=1643162782984&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FIWR6843

And There is information for one-time calibration at 13th page of document. (6.3 Application-Controlled One Time Calibration)

And There is information for how to trigger one-time calibrations instantaneously at 15th page of document. (7.7 Runtime Calibration)

Maybe  rlRfRunTimeCalibConfig function is used.
I made codes using rlRfRunTimeCalibConfig function for one-time calibration on run time.
but error code returned from BSS for rlRfRunTimeCalibConfig command.
Error code is 286. but 286's Error code don't exist at Error code list of TI codes.
Currently does not BSS support rlRfRunTimeCalibConfig for one-time calibration in the out_of_box_demo project?
If it is not supported,  i wonder the that reason. Is it because BSS doesn't support it?
Is there any model supported for each Chip (IWR6843, etc.)?
And If it is not supported, Can't you support me?
 
If it's not in the out_of_box_demo project, it doesn't matter if it's another project, so please let me know if there is a project with an example.
thank you.

  • Hi,

    What params did you pass to the rlRfRunTimeCalibConfig function?

    Best Regards,
    Alec

  • Hi Alec May

     I make CLI command for one-time calibration for sending command at runtime as follows.

    ********************************************************************************************************************
    cliCfg.tableEntry[cnt].cmd = "setOneTimeCal";
    cliCfg.tableEntry[cnt].helpString = "<RF one time calibration>";
    cliCfg.tableEntry[cnt].cmdHandlerFxn = RBT_CLISetOneTimeCalibration;

    static int32_t RBT_CLISetOneTimeCalibration(int32_t argc, char* argv[])
    {
        if (argc != 1)
        {
        CLI_write ("Error: Invalid usage of the CLI command\n");
        return -1;
        }

       extern int32_t MmwDemo_setProfileConfig (void);
       extern int32_t MmwDemo_setRunTimeCalibConfig (void);

        if(MmwDemo_setProfileConfig() != 0)
       {
           CLI_write ("Error: Profile config\n");
          return -1;
        }

        if (MmwDemo_setRunTimeCalibConfig () != 0)
        {
             CLI_write ("Error: RunTimeCal config\n");
             return -1;
        }
        return 0;
    }

    int32_t MmwDemo_setProfileConfig (void)
    {
         int32_t retVal;
        /* Set Profile configuration */
         retVal = rlSetProfileConfig(RL_DEVICE_MAP_INTERNAL_BSS, 1, (rlProfileCfg_t*)&gProfileCfg);

         /* Check for mmWaveLink API call status */
         if(retVal != 0)
        {
             /* Error: Link reported an issue. */
             System_printf("Error: rlSetProfileConfig retVal=%d\n", retVal);
             return -1;
         }
         return 0;
    }


    int32_t MmwDemo_setRunTimeCalibConfig (void)
    {
          int32_t retVal;
          rlRunTimeCalibConf_t runTimeCalib;

          runTimeCalib.oneTimeCalibEnMask = 0x710;
          runTimeCalib.periodicCalibEnMask = 0;
          runTimeCalib.calibPeriodicity = 0;
          runTimeCalib.reportEn = 1;

          /* Set Run time calibration configuration */
           retVal = rlRfRunTimeCalibConfig(RL_DEVICE_MAP_INTERNAL_BSS, (rlRunTimeCalibConf_t*)&runTimeCalib);

          if (retVal != 0)
          {
               System_printf ("Error: rlRfRunTimeCalibConfig [Error %d]\n", retVal);
              return -1;
          }else
          {
                System_printf ("rlRfRunTimeCalibConfig OK \n");
           }
             return 0;
    }

    ********************************************************************************************************************

    And when it is running normally, i send CLI command with tool made by myself.  Tool run well.
    but Error returned from BSS for rlRfRunTimeCalibConfig.
    Error code is 286. but 286's Error code don't exist at Error code list.

    The parameters of rlRfRunTimeCalibConfig are in the MmwDemo_setRunTimeCalibConfig function above.

    I want to use only one-time calibration on run time.

    is it possible at current system FW?

    Isn't it possible only at init time?

    thank you.

  • Hi,

    It is certainly possible to do single shot calibration during runtime. Please allow me some time to dig into your error and potentially provide some reference code.

    Best Regards,
    Alec

  • Hi,

    After doing some further investigation into this specific issue, I believe that perhaps some of the reserved bits in the rlRunTimeCalibConf_t are getting flipped on, perhaps due to optimization or something not being cleared. Can you try to memset the struct to all 0's before you construct it, and see if your error changes?

    Best Regards,
    Alec

  • Hi Alec May

    After memset to O, it works fine.

    When frame rate is 180Hz, it's oK,  but when frame rate is 240Hz, it's NG.

    May I know what frame rate is possible?

    thank you.

  • Hi,

    Glad to hear that worked. In terms of what framerate is possible, whether a single shot calib is possible is determined by whether the time needed for the calibs that you have selected exceeds the time between frames, meaning that there is no time for the calib to execute. If you are interested in the exact amount of time needed for each type of calib, let me know which you have configured an I can look into it further for you. Otherwise, you can also find out the optimal framerate for your specific usecase experimentally.

    Best Regards,
    Alec