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.

AWR1243: How to send fixed patten in CSI-2/LVDS in radar studio?

Part Number: AWR1243


Hi champion,
    Could we use radar studio to send fixed patten data in CSI-2/LVDS to verify the data connection in right? My customer is connecting 1243 with another vendor's processor and have problem in CSI-2 interface.

Thanks,
Adam

  • Hi,

    Yes, there is a pattern generator available

    Please see in the Radar Interface Control Document "rlDeviceSetTestPatternConfig()"

    Please see below a sample configuration.



    /** @fn int Link_testPatternConfig(unsigned char deviceMap)
    *
    * @brief Test Pattern configuration API.
    *
    * @param[in] deviceMap - Device Index
    *
    * @return int Success - 0, Failure - Error Code
    *
    * Test Pattern configuration API.
    */
    int Link_testPatternConfig(unsigned char deviceMap)
    {
    int retVal = RL_RET_CODE_OK;
    /*Test Pattern configuration*/
    rltestPattern_t testPatternCfgArgs = {0};
    testPatternCfgArgs.numTestPtrnPkts = 128; /* Infinte */
    testPatternCfgArgs.testPatGenCtrl = 0x1; /* Enable */
    testPatternCfgArgs.testPatGenTime = 32; /* 100 Clocks (@200 MHZ) */
    testPatternCfgArgs.testPatrnPktSize = 256; /* Packet Size */
    testPatternCfgArgs.testPatRx0Icfg = 0xA;
    testPatternCfgArgs.testPatRx1Icfg = 0xA;
    testPatternCfgArgs.testPatRx2Icfg = 0xA;
    testPatternCfgArgs.testPatRx3Icfg = 0xA;
    testPatternCfgArgs.testPatRx0Qcfg = 0xB;
    testPatternCfgArgs.testPatRx1Qcfg = 0xB;
    testPatternCfgArgs.testPatRx2Qcfg = 0xB;
    testPatternCfgArgs.testPatRx3Qcfg = 0xB;

    retVal = rlDeviceSetTestPatternConfig(1U, &testPatternCfgArgs);
    if (retVal != RL_RET_CODE_OK)
    {
    Link_log (Link_LogLevel_ERROR,"Test Pattern config failed for deviceMap %u with error code %d\n",
    1, retVal);
    return -1;
    }
    else
    {
    Link_log (Link_LogLevel_INFO,"Test Pattern config success for deviceMap %u\n", 1);
    }
    return retVal;
    }


    Thank you
    Cesar
  • Hi Cesar,
    Do we have a tab in radar studio to do this test?

    Thanks,
    Adam
  • Hi Cesar,

    mmwave_studio_01_00_00_00 has the tab, but the configuration have a little different with your recommended setting.

    could you please check if my setting on radar studio is same with your recommend setting? Thanks.

    Does it means it only send 1 frame data though CSI2?

    The data size is 256 (points) * 8 (4*2 IQ channel) * 128 (chirps) * 2 (ADC 16bit = 2 bytes)

    When I set the Number of test pattern package to 0, is that means the data on CSI2 is continuous?

    Thanks for your help.

    Regards,

    Wesley

  • Yes, you are right, sorry for the confusion.

    It is useful to understand how mmWave studio fields map to the APIs

    in the mmWave studio cfg, TestPattern Pkts is set to 128 (each pkt is a chirp).

    When TestPattern Pkts is set to 0, it should be CSI2 Continuous. However, we tested this value and we noticed that there are some issues, so Continuous Mode is not supported today.

    I need to check on the total data size and get back to you

    thank you
    cesar


    Note that the comment /*Infinite*/In the code snipped is not correct.

    It should be as follows:

    /** @fn int Link_testPatternConfig(unsigned char deviceMap)
    *
    * @brief Test Pattern configuration API.
    *
    * @param[in] deviceMap - Device Index
    *
    * @return int Success - 0, Failure - Error Code
    *
    * Test Pattern configuration API.
    */
    int Link_testPatternConfig(unsigned char deviceMap)
    {
    int retVal = RL_RET_CODE_OK;
    /*Test Pattern configuration*/
    rltestPattern_t testPatternCfgArgs = {0};
    testPatternCfgArgs.numTestPtrnPkts = 128; /* 128 packets */
    testPatternCfgArgs.testPatGenCtrl = 0x1; /* Enable */
    testPatternCfgArgs.testPatGenTime = 32; /* 100 Clocks (@200 MHZ) */
    testPatternCfgArgs.testPatrnPktSize = 256; /* Packet Size */
    testPatternCfgArgs.testPatRx0Icfg = 0xA;
    testPatternCfgArgs.testPatRx1Icfg = 0xA;
    testPatternCfgArgs.testPatRx2Icfg = 0xA;
    testPatternCfgArgs.testPatRx3Icfg = 0xA;
    testPatternCfgArgs.testPatRx0Qcfg = 0xB;
    testPatternCfgArgs.testPatRx1Qcfg = 0xB;
    testPatternCfgArgs.testPatRx2Qcfg = 0xB;
    testPatternCfgArgs.testPatRx3Qcfg = 0xB;

    retVal = rlDeviceSetTestPatternConfig(1U, &testPatternCfgArgs);
    if (retVal != RL_RET_CODE_OK)
    {
    Link_log (Link_LogLevel_ERROR,"Test Pattern config failed for deviceMap %u with error code %d\n",
    1, retVal);
    return -1;
    }
    else
    {
    Link_log (Link_LogLevel_INFO,"Test Pattern config success for deviceMap %u\n", 1);
    }
    return retVal;
    }
  • Got it. Thanks.

    Regards,

    Wesley