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.

[参考译文] DCA1000EVM:DCA1000EVM 实时数据记录

Guru**** 2429790 points
Other Parts Discussed in Thread: AWR1642BOOST

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1520203/dca1000evm-dca1000evm-real-time-data-recording

器件型号:DCA1000EVM
主题中讨论的其他器件:AWR1642BOOST

工具/软件:

您好:

我尝试使用 DCA1000记录来自 AWR1642BOOST 的原始数据。 目前、我有自己的 lua 文件、并将其加载到 mmWaveStudio。 此 lua 文件配置雷达、并将原始数据记录到 python 脚本读取以处理它的文件中(python 脚本持续尝试加载该文件)。 bellow 是 lua 文件的一个 截图,说明如何记录数据。 可以看出、我有 RSTD.SLEEP (2000)、它将数据记录限制为2s。 我曾尝试过低于此值、但它不起作用。  哪一项是获取实时原始数据采集的最佳选择?

while (true)
应该做
  --开始记录 ADC 数据
  ar1.CaptureCardRecord Config_Start (ADC_DATA_PATH1)

  --触发器框架
  AR1.StartFrame()
  我的超次元帝国(2000年)
结束
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    您是否配置了有限数量的帧? 如果您正在配置无限数量的帧、那么您需要调用  AR1.StopFrame () API、否则它将继续无限期地成帧、并且您将溢出 DCA1000上的内存。

    此外、DCA1000不支持"实时"数据采集。  DCA1000上的存储器已满后、捕获将失败。 您需要在存储器已满之前停止采集并将数据发送到 PC。  

    此致、

    Adrian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的答复!

    是的、我使用  ar1.FrameConfig (01、110、2、 001)。  

    我知道没有"实时"数据采集! 我可能在错误的上下文中使用过。 我想尽快更新数据文件、以便处理后续数据。 是否有更好的替代方法可以这样做?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    是否可以共享完整的 lua 文件? 根据当前信息、我在您的程序中没有看到任何错误。

    此致、

    Adrian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    完整代码如下:

    --Adapted from DataCaptureDemo_xWR of mmWaveStudio to program AWR1642BOOST and DCA1000EVM, configure the chirp parameters for TDM and start ADC data capture with a frequency of 0.5Hz
    
    --BSS and MSS firmware download
    fw_path   = "C:\\ti\\mmwave_studio_02_01_01_00\\rf_eval_firmware"
    
    --Export bit operation file
    bitopfile = "C:\\ti\\mmwave_studio_02_01_01_00\\mmWaveStudio\\Scripts\\bitoperations.lua"
    dofile(bitopfile)
    
    --Read part ID
    --This register address used to find part number for ES2 and ES3 devices
    res, efusedevice    = ar1.ReadRegister(0xFFFFE214, 0, 31)
    res, efuseES1device = ar1.ReadRegister(0xFFFFE210, 0, 31)
    efuseES2ES3Device   = bit_and(efusedevice, 0x03FC0000)
    efuseES2ES3Device   = bit_rshift(efuseES2ES3Device, 18)
    
    --if part number is zero then those are ES1 devices
    partId              = 1642
    
    --ES version
    res, ESVersion      = ar1.ReadRegister(0xFFFFE218, 0, 31)
    ESVersion           = bit_and(ESVersion, 15)
    
    --ADC_Data file path
    data_path           = 'C:\\data'
    adc_data_path       = data_path .. "\\adc_data.bin"
    
    -- Download Firmware
    BSS_FW              = fw_path .. "\\radarss\\xwr16xx_radarss.bin"
    MSS_FW              = fw_path .. "\\masterss\\xwr16xx_masterss.bin"
    
    -- Download BSS Firmware
    if (ar1.DownloadBSSFw(BSS_FW) == 0) then
        WriteToLog("BSS FW Download Success\n", "green")
    else
        WriteToLog("BSS FW Download failure\n", "red")
    end
    
    -- Download MSS Firmware
    if (ar1.DownloadMSSFw(MSS_FW) == 0) then
        WriteToLog("MSS FW Download Success\n", "green")
    else
        WriteToLog("MSS FW Download failure\n", "red")
    end
    
    -- SPI Connect
    if (ar1.PowerOn(1, 1000, 0, 0) == 0) then
        WriteToLog("Power On Success\n", "green")
    else
        WriteToLog("Power On failure\n", "red")
    end
    
    -- RF Power UP
    if (ar1.RfEnable() == 0) then
        WriteToLog("RF Enable Success\n", "green")
    else
        WriteToLog("RF Enable failure\n", "red")
    end
    
    if (ar1.ChanNAdcConfig(1, 1, 0, 1, 1, 1, 1, 2, 1, 0) == 0) then
        WriteToLog("ChanNAdcConfig Success\n", "green")
    else
        WriteToLog("ChanNAdcConfig failure\n", "red")
    end
    
    if (ar1.LPModConfig(0, 1) == 0) then
        WriteToLog("LPModConfig Success\n", "green")
    else
        WriteToLog("LPModConfig failure\n", "red")
    end
    
    
    if (ar1.RfInit() == 0) then
        WriteToLog("RfInit Success\n", "green")
    else
        WriteToLog("RfInit failure\n", "red")
    end
    
    RSTD.Sleep(1000)
    
    if (ar1.DataPathConfig(1, 1, 0) == 0) then
        WriteToLog("DataPathConfig Success\n", "green")
    else
        WriteToLog("DataPathConfig failure\n", "red")
    end
    
    if (ar1.LvdsClkConfig(1, 1) == 0) then
        WriteToLog("LvdsClkConfig Success\n", "green")
    else
        WriteToLog("LvdsClkConfig failure\n", "red")
    end
    
    if (ar1.LVDSLaneConfig(0, 1, 1, 0, 0, 1, 0, 0) == 0) then
        WriteToLog("LVDSLaneConfig Success\n", "green")
    else
        WriteToLog("LVDSLaneConfig failure\n", "red")
    end
    
    
    if (ar1.ProfileConfig(0, 77, 7, 4.99, 40, 0, 0, 0, 0, 0, 0, 99.987, 0, 128, 3795, 0, 131072, 98) == 0) then
        WriteToLog("ProfileConfig Success\n", "green")
    else
        WriteToLog("ProfileConfig failure\n", "red")
    end
    
    
    if (ar1.ChirpConfig(0, 0, 0, 0, 0, 0, 0, 1, 0, 0) == 0) then
        WriteToLog("ChirpConfig Success\n", "green")
    else
        WriteToLog("ChirpConfig failure\n", "red")
    end
    
    if (ar1.ChirpConfig(1, 1, 0, 0, 0, 0, 0, 0, 1, 0) == 0) then
        WriteToLog("ChirpConfig Success\n", "green")
    else
        WriteToLog("ChirpConfig failure\n", "red")
    end
    
    if (ar1.FrameConfig(0, 1, 1, 10, 2, 0, 0, 1) == 0) then
        WriteToLog("FrameConfig Success\n", "green")
    else
        WriteToLog("FrameConfig failure\n", "red")
    end
    
    -- select Device type
    if (ar1.SelectCaptureDevice("DCA1000") == 0) then
        WriteToLog("SelectCaptureDevice Success\n", "green")
    else
        WriteToLog("SelectCaptureDevice failure\n", "red")
    end
    
    --DATA CAPTURE CARD API
    if (ar1.CaptureCardConfig_EthInit("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
    
    --AWR12xx or xWR14xx-1, xWR16xx or xWR18xx or xWR68xx- 2 (second parameter indicates the device type)
    if (ar1.CaptureCardConfig_Mode(1, 2, 1, 2, 3, 30) == 0) then
        WriteToLog("CaptureCardConfig_Mode Success\n", "green")
    else
        WriteToLog("CaptureCardConfig_Mode failure\n", "red")
    end
    
    
    if (ar1.CaptureCardConfig_PacketDelay(25) == 0) then
        WriteToLog("CaptureCardConfig_PacketDelay Success\n", "green")
    else
        WriteToLog("CaptureCardConfig_PacketDelay failure\n", "red")
    end
    
    while (true)
    do
        --Start Record ADC data
        ar1.CaptureCardConfig_StartRecord(adc_data_path, 1)
    
        --Trigger frame
        ar1.StartFrame()
        RSTD.Sleep(2000)
    end
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    如果延迟2秒、就不会有2秒的拍摄时间。  

    捕获时间由 No. 样品和帧。 目前、无论捕获时间如何、代码都会等待2秒、因为之后没有其他命令。 如果有一个停止帧命令、则  

    我建议计算捕获所需的确切时间、然后等待该时间。  

    -E. Shareef

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、  

    感谢您发送编修。 因此、我尝试记录8个 Rx 通道、用于10个线性调频脉冲和128个 ADC 样本。 是否有方法可以为 capture 命令指定此值、而无需使用 sleep?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您无需调用 RSTSLeep 命令。 它通常用于等待一段时间、然后再执行脚本中的下一个命令。 即使不使用 sleep 命令、您的帧也将在必要的时间内运行、然后完成任务。

    -E. Shareef