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.

IWR1443BOOST: raw data from IWR1443 via uart

Part Number: IWR1443BOOST

Hi,

I try to get 256 complex adc samples per azimuth virtual antenna without Blackman window. I do all processing on computer. I have static scene in my lab.

 

I use modified mmw demo code from mmwave_sdk_01_02_00_05.

 

data_path.c

I commented lines from 530 to 567.

There are calls of MmwDemo_genWindow for Blackman and Hanning windows for range and Doppler FFT.

 

config_hwa_util.c

HWAutil_configRangeFFT

159:   hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.fftEn = 0;

163:   hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.windowEn = 0;

 

main.c

I use modified MmwDemo_transmitProcessedOutput to send first 8192 bytes from gMmwMCB.dataPathObj.radarCube to loggingUartHandle.

 

It works. But I get error in sensor_mgmt.c when try to get more than 229 ADC samples per channel.

 

MmwDemo_doSensorStart

497: if (MMWave_config (gMmwMCB.ctrlHandle, &gMmwMCB.cfg.ctrlCfg, &errCode) < 0)

506:           System_printf ("Error: mmWave Config failed [Error code: %d Subsystem: %d]\n",

507:                           mmWaveErrorCode, subsysErrorCode);

 

mmWaveErrorCode = -3108

subsysErrorCode = 41

I unable to find meaning of error codes.

 

 

I use profile_2d.cfg

I tried to set

profileCfg 0 77 7 7 58 0 0 34 1 256 4500 0 0 30

then

profileCfg 0 77 7 7 58 0 0 30 1 256 4500 0 0 30

 

I tried to set

frameCfg 0 1 16 0 100 1 0

then

frameCfg 0 1 8 0 100 1 0

and then

frameCfg 0 1 4 0 100 1 0

It doesn’t help.

 

How to fix errors and make the code work?

 

Regards,

Gennadii

 

 

 

 

 

 

 

  • Hi,

    You may not have sufficient time to transfer more samples. usually the data transfer has to complete before the next frame starts.

    In the vehicle occupant detection demo we commented out the flag that checks that the UART transfer has completed before the next frame starts.

    You may be able to do the same thing in your demo

    thank you
    Cesar


    You can try the following

    static void MmwDemo_dssFrameStartIntHandler(uintptr_t arg)
    {
    if(gMmwDssMCB.state == MmwDemo_DSS_STATE_STOPPED)
    {
    gMmwDssMCB.stats.frameIntSkipCounter++;
    return;
    }

    /* Check if previous chirp processing has completed */

    // OD DEMO:
    // No longer check that the UART transmission completed
    //if (gMmwDssMCB.dataPathContext.interFrameProcToken != 0)
    //{
    // MmwDemo_triggerDss2MssISR(MMWDEMO_DSS2MSS_FRAME_PROC_DEADLINE_MISS_EXCEPTION);
    // DebugP_assert(0);
    //}

    gMmwDssMCB.dataPathContext.interFrameProcToken++;

    /* Increment interrupt counter for debugging purpose */
    if (gMmwDssMCB.subFrameIndx == 0)
    {
    gMmwDssMCB.stats.frameStartIntCounter++;
    }

    /* Post event to notify frame start interrupt */
    Event_post(gMmwDssMCB.eventHandle, MMWDEMO_FRAMESTART_EVT);
    }
  • Hi,

    Where is no lack of time to transfer samples via UART. The size of transmitted data is constant 8192 bytes.
    It doesn’t change when I change numAdcSamples of profileCfg
    There are 1024 bytes per virtual antenna.
    256 2x16bit IQ samples per virtual antenna.

    I can set numAdcSamples to 229
    Samples from 0 to 228 comes from ADC
    Samples from 229 to 255 are junk.

    I would like code to work when numAdcSamples is 230.
    Is it possible?

    I can’t apply your code above. It’s related to xWR1642.

    By the way, numAdcSamples of profileCfg for xWR16xx mmw demo is 256.

    Regards,
    Gennadii
  • Hi Gennadii,

    I believe this query has been answered in this thread.

    e2e.ti.com/.../621340


    Cheers,
    Akash