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-DSP-EVM: How to configure the device as MIMO mode in the program of mmWaveLink Cascade Example??

Part Number: MMWCAS-DSP-EVM


Hello, 

We are currently conducting research on autonomous driving using High Resolution Radar. 

Therefore, in order to receive high-resolution inforamtion(Range, Azimuth), MIMO Configuration of the device is essential.

We have used GUI " mmwaveStudio(ver.03_00_00_14)  to obtain high resolution data provided by the device.

In mmwaveStudio, Configuration is done using the LUA script that exists in the following path

LUA script path : "C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\Scripts\Cascade"

We can check the data received using the post-processing program(MATLAB) provided by TI. The path of post-processing program is as follows. "C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\MatlabExamples\4chip_cascade_MIMO_example"

However, since receving device data using GUI, it has many limitations in the experimental environment, we try to obtain data using the following path 

"C:\ti\mmwave_dfp_02_02_02_01\ti\example\mmWaveLink_Cascade_Example"

Through the above path, we are trying to operate the Radar Operating & Acquistion Program which is composed of "Visual Studio C program".

There is no problem in operating the device without modifying the program,"mmWaveLink_Cascade_Example"

Unlike Lua Script,'Cascade_Configuration_MIMO', it was confirmed that the program was not configured in MIMO mode. Therefore, I want to use mmWaveLink_Cascade_Example to set the Radar MIMO mode that configures the chirp parameters based on the device ID.

( I used the MIMO Radar Application Report prvided by TI to set the Chirp parameters for each device)

This description explained the process for building my current device experiment environment.

%=====================================================================%

The following is the method of configuring the Chirp parameter suggested by Cascade_Configuation_MIMO.lua.

                                               Fig1. MIMO Setting Table

The above table means that Chirp is set based on each Device ID. 

In Lua Script Program, it is written as a function as follows. This designates Chirp for TX 0,1,2 corresponding to devices 1,2,3,4 respectively. This is an excerpt of a part, not the whole of the code.

                                       Fig2. MIMO Configure Chirp Function 

The reason for presenting the LUA Script above is because I thought that mmWaveLink_Cascade_Example should be configured in the same way as above.

In the mmWaveLink_Cascade_Example program, the code was modified in "int MMWL_chirpConfig", which is function that sets the Chirp Parameters.

                                              Fig3. MMWL_chirpConfig Function

Here's the part I've edited.

  1. retVal = CALL_API(API_TYPE_C | SET_CHIRP_CONFIG_IND, deviceMap, &setChirpCfgArgs[0U], 2U) --> retVal = rlSetChirpConfig(1U, 1U, &setChirpCfgArgs[0U]);

---> For the reason that it can be changed as follows, I refered to the following forum.

"https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1056354/mmwcas-dsp-evm-is-there-an-api-to-read-back-the-chirp-config-api-parameters-from-the-radar/3915186?tisearch=e2e-sitesearch&keymatch=mmwavelink%2520APIs#3915186"

  1. The chirp parameter information was removed from the existing mmwaveconfig.txt and the function to read the information was commented out, and each was written in the program and set as the "rlsetChirpConfig" function. The picture below is set up as follows in the program.

                                  Fig4. Editing MMWL_chirpConfig Function

In the program added in Fig4, Master(1U), Slave1,2,3 (2U, 4U, 8U) were set in the same way as in Fig2.

%=====================================================================%

% Setting Experiment Result

%=====================================================================%

 In order to set the same experimental environment, the variables of Profile and Frame Configuration of Cascade_Configuration_MIMO and mmWaveLink_Cascade_Example were matched.

                                     Fig5. Cascade_Configuration_MIMO.Lua Configuration

                        Fig6. Profile/Frame Configuration

Fig6 is the configuration value of mmWaveLink_Cascade_Example. In addition, the Chirp Setting was tried in Fig4.

                                                    Fig7. Error print

When the device is operated under the above conditions, the result is shown in Fig7. Each Error code refers to the document provided by TI and asserts that it occurs for the following reasons. (mmWave-Radar-Interface-Control.pdf)

                                                       Fig8. Error

So, after deciding two conclusions, I ask some question. So for, after setting the variable values of Lua Script and mmWaveLink, the device is operated. However, an error has occurred, and I will describe two conclusions and questions.

1.I would like to ask if the process between Lua Script setting of MIMO and Profile Configuration of mmWaveLink_Cascade_Example is different. If it is different, I wonder what needs to be changed.

2. In order to set MIMO, we specified Chirp parameters for each device(Fig4). I wonder if this method is correct.

Thanks for reading this long post. If you read my article and ask any questions, I am ready to communicate. 

I appreciate for your hard work.

 

  • Hi,

    As I understood, you are trying to mimic the LUA script commands into mwmavelink_cascade_example (visual basic based). Please be noted that both of these applications are not exactly same and don't use same set of configurations.

    Other point that configuration parameters in LUA script are not same used in mmwave_cascade_example application where it uses direct mmwavelink APIs.

  • Dear Gupta,

    I appriciate your quick response.

    We fully know the current Two program ( LUA script & mmwavelink_cascade_example) are different.

    Therefore, We are curious about the detailed process of method for setting MIMO Configuration in Visual Stuidio(mmwaveLink_cascade_example). 

    We would like to know where to modify in mmwaveLink_Cascaded_example or more details.

    So, in the above thread, I have explained my process in detail.

    Thank you.

  • Hi JinKwan-san,

    Sorry about incomplete response, somehow my half reply posted here.

    MIMO mode configuration mainly driven by the chirp and frame configuration. So in mmwavelink_cascade_example you need to mainly look for  rlSetChirpConfig and rlSetFrameConfig or rlSetAdvFrameConfig APIs.

    Here I have linked the document which gives you mapping of LUA API (used by mmwave studio) to mmwavelink APIs (used in mmwavelink_cascade_example) to your better understanding, so you can find the similar implementation from mmwavestudio to cascade_example

    /cfs-file/__key/communityserver-discussions-components-files/1023/Consolidated-LUA-and-mmWaveLink-API-Mapping-in-mmWaveStudio_2D00_v23_2D00_20220323_5F00_104018.pdf

    And to resolve above error code 38, you need to increase the idle time in the profileconfig (rlProfileCfg_t -> idleTimeConst)

    On other error code 75, looks like if profileconfig fails the it returns from there and doesn't invoke rlSetChirpConfig API which is causing this error code. So if you resolve error code 38 with above suggestion then you will resolve this error as well.

    Regards,

    Jitendra