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.

CCS/DCA1000EVM: Can I output the data after Range FFT / Doppler FFT / Azimuth FFT instead of the raw data after adc sampling?

Part Number: DCA1000EVM
Other Parts Discussed in Thread: AWR1642BOOST, MMWAVE-SDK, MMWAVE-STUDIO, AWR1642

Tool/software: Code Composer Studio

Hi all,

I'm using AWR1642BOOST ES1.0 / DCA1000EVM / window 7 64 bit machine / mmWave studio2.0

currently I can output the raw data and postproc it with mmWave studio and see the MATLAB plot result of 1D FFT/2DFFT and angle estimation

However, I wonder if I can output the data after Range FFT / Doppler FFT / Azimuth FFT instead of the raw data after adc sampling with DCA1000EVM

I wish to analyze the results after those FFTs

Is there anyway I can do this with my DCA1000EVM?

Best Regards

Brian.

  • Hello Brian,
    Yes, you can send user data over LVDS and capture using DCA1000EVM.
    SDK 1.2 provide an option to enable using CLI command
    lvdsStreamCfg -1 1 0 1 (follow mmWave-SDK user guide)

    At the end of frame processing application calls [dss_vds_stream.c: MmwDemo_LVDSStreamSwConfig] function where you can three userBuffer to send data over LVDS, you need to set size & address of each userBuffer in the same function.

    sessionCfg.u.swCfg.userBufferInfo[0].size = HSIHeader_toCBUFFUnits(sizeof(MmwDemo_LVDSUserDataHeader_t));
    sessionCfg.u.swCfg.userBufferInfo[0].address = (uint32_t)&(streamMcb->userDataHeader);

    Skip the header and add your own data instead of userDataHeader here and you can add two more user data ( sessionCfg.u.swCfg.userBufferInfo[1/2]).


    Regards,
    Jitendra
  • Hello, Jitendra

    so I am able to output the user data through LVDS to DCA1000 and then through ethernet to my PC right?

    but in the link below the answer is NO, I wonder is there a difference between our problems? 

    https://e2e.ti.com/support/sensors/f/1023/t/745939?IWR1443BOOST-Need-help-using-the-DCA1000EVM-with-IWR1443Boost-where-the-range-FFT-is-done-in-the-HWA

    And if I am able to do so, can you tell me more in detail that how should I output my user data?

    for example the demo code in mmwave_automotive_toolbox_1_2_0\labs\lab0002_short_range_radar 

    where should I edit the code to output the data of the result of  1D FFT to my PC?

    Thanks alot for your help

  • With existing xWR1443 mmw demo transferring user data over LVDS doesn't supported or not verified as it conflicts data path processing.
    But with xWR1642 mmw demo user data streaming over LVDS is supported.

    In SRR demo it does send user data over LVDS, please refer mss_main.c: SRR_MSS_configureStreaming()

    Regards,
    Jitendra
  • Hi, Jitendra

    Thanks for your reply, I will try to figure out how these command works in both SDK and SRR demo code

    So I don't need mmwave studio while I want to output those results of FFTs through LVDS to DCA1000EVM and then ethernet to PC right?

    Then how should I command the DCA1000 like dumping the file at a specified path on my PC or saving the data in specific format?

    Are there Libraries or functions to control DCA1000?

    Best Regards

    Brian.

  • Hello Brian,

    For any kind of data streaming over LVDS from device using DCA1000 you need to connect this EVM to PC over ethernet.

    Currently we provide only mmWave-Studio as a solution to control/capture DCA1000EVM, where if you are trying to capture any data with embed application running on AWR1642 then mmWave-Studio provides few LUA functions which you need to run in mmWave-Studio LUA shell window. Here is the code snippet which you need to run in the LUA shell-

    -- To get the API description use help command in the same shell, as 'help ar1.SelectCaptureDevice'
    -- select Device type
    if (ar1.SelectCaptureDevice("DCA1000") == 0) then
    WriteToLog("SelectCaptureDevice Success\n", "green")
    else
    WriteToLog("SelectCaptureDevice failure\n", "red")
    end
    RSTD.Sleep(1000)
    
    --DATA CAPTURE CARD API
    if (ar1.CaptureCardConfig_EthInit_WithoutSPI("192.168.33.30", "192.168.33.180", "12:34:56:78:90:12", 4096, 4098) == 0) then
    WriteToLog("CaptureCardConfig_EthInit Success\n", "green")
    else
    WriteToLog("CaptureCardConfig_EthInit failure\n", "red")
    end
    RSTD.Sleep(1000)
    
    --AR12xx or AR14xx-1, AR16xx- 2 (second parameter indicates the device type)
    if (ar1.CaptureCardConfig_Mode_WithoutSPI(1, 2, 1, 2, 3, 30) == 0) then
    WriteToLog("CaptureCardConfig_Mode Success\n", "green")
    else
    WriteToLog("CaptureCardConfig_Mode failure\n", "red")
    end
    RSTD.Sleep(1000)
    
    if (ar1.CaptureCardConfig_PacketDelay_WithoutSPI(25) == 0) then
    WriteToLog("CaptureCardConfig_PacketDelay Success\n", "green")
    else
    WriteToLog("CaptureCardConfig_PacketDelay failure\n", "red")
    end
    RSTD.Sleep(1000)
    
    --Capture Card FPGA
    ar1.GetCaptureCardFPGAVersion_WithoutSPI()
    RSTD.Sleep(1000)
    
    --Capture Card DLL
    ar1.GetCaptureCardDllVersion_WithoutSPI()
    RSTD.Sleep(1000)
    
    --Start Record ADC data [change this path as required]
    ar1.CaptureCardConfig_StartRecord("d:\mmwave_lvds_data.bin", 1)
    RSTD.Sleep(1000)
    
    --Stop Record ADC data
    ar1.CaptureCardConfig_StopRecord_WithoutSPI()
    RSTD.Sleep(1000)
    
    --Disconnect API
    ar1.CaptureCard_DisConnect_WithoutSPI()
    RSTD.Sleep(1000)

    In other case you don't want to use mmWave-Studio then you need to write your own tool to control/capture DCA1000EVM, code reference is provided in 

    C:\ti\mmwave_studio_02_00_00_02\mmWaveStudio\Clients\AR1xController\rf_api.h where all dca1000 APIs are available in RF_API.dll

    Captured data format will be the same as the embedded application is sending from the device, enable the HSI header which you can easily search in the captured file to get the marker.

    Regards,

    Jitendra

  • Hi, Jitendra

    So if I'm not getting it wrong

    Having a edited code bin flashed in my EVM, I can output the user data through LVDS to DCA1000EVM while the Radar is functioning

    And then through mmWave studio's lua script I can control DCA1000EVM to output the user data to my PC

    thanks a lot for your help

    Best regards,

    Brian