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:我想使用 mmWave Studio 和 lua 脚本创建连续的毫米波传感系统、但效果不好

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1016615/iwr1443boost-i-want-to-make-a-consecutive-mmwave-sensing-system-using-mmwave-studio-and-lua-script-but-did-not-work-well

器件型号:IWR1443BOOST

大家好,我是 Kim

如标题所示、我希望使用 mmWave Studio 和 lua 脚本创建连续的毫米波传感系统。

当我仅使用 mmWave Studio 操作毫米波传感时、我可以获取 ADC_DATA.bin (4、096KB)

但是、当我使用自定义 lua 脚本和 MATLAB 运行毫米波传感时、我可以获得 ADC_DATA.bin (4、094KB)

我猜两个字节的差异意味着我的 lua 代码是错误的。

如果您注意到需要在我的 lua 脚本中修改该器件、请告诉我

我附加了 lua 脚本文件。  

--Testfile
WriteToLog ("它只是测试2\n"、"绿色")
WriteToLog ("它只是测试3\n"、"绿色")
WriteToLog ("它只是测试3\n"、"绿色")
RSTD.SLEEP (2000)

--完全复位
AR1.FullReset()
RSTD.SLEEP (1000)
AR1.SOPControl (2)
RSTD.SLEEP (1000)

-- RS232连接
AR1.Connect (4、921600、1000)
RSTD.SLEEP (1000)


--BSS 和 MSS 固件下载
info = debug.getinfo (1、's');

file_path =(info.source);

file_path = string.gsub (file_path、"@"、"");

file_path = string.gsub (file_path、"Test3.lua"、"");
fw_path = file_path."..\..\RF_eval_firmware"

--Export 位操作文件
bitopfile = file_path."\\."bitoperations.lua"
dofile (bitopfile)

-读取零件标识

RES、efuserow9 = AR1.ReadRegister (0xffffff210、0、31)
如果(bit_and (efuserow9、3)==0)则
PartID = 1243
ElseIf (bit_and (efuserow9、3)==1)
PartID = 1443
其他
PartID = 1642
结束

--ES 版本

RES、ESVersion = AR1.ReadRegister (0xFFFFE218、0、31)
ESVersion = bit_and (ESVersion、15)

--adc_Data 文件和原始文件以及 PacketReorder 实用日志文件路径

data_path = file_path."..\PostProC"
ADC_DATA_PATH = DATA_PATH。"\\ADC_DATA.bin"
--adc_data_patha = data_path."\\adc_data2.bin"
RAW_DATA_PATH = DATA_PATH。"\\ADC_DATA_Raw_0.bin"
pkt_log_path = data_path."\\pktlogfile.txt"
--여러번 센싱할 수 있도록 경로 설정 μ A

A ={}
b ={}
C ={}
如果 I = 1、5、请执行
--a [i]= string.format ("%s%d%s"、"data_path.\"\\adc_data"、i、".bin\")
A[i]=string.format ("%s%d%s"、"C:\\ti\\mmwave_studio _01_00_00\mmWaveStudio\\Scripts\\..\PostProp\\adc_data"、i、".bin")
b[i]=string.format ("%s%d%s"、"C:\\ti\\mmwave_studio _01_00_00\mmWaveStudio\\Scripts\\..\PostProp\\adc_data"、i、"_Raw_0.bin")
C[i]=string.format ("%s%d%s"、"C:\\ti\\mmwave_studio 01_00_00_00\\mmWaveStudio\\Scripts\..\PostProp\\pktlogfile"、i、".txt")
结束


--下载 BSS 固件(AR16xx)

然后((PartID =1642)和(ESVersion ==1))
bss_fw = fw_path."\\radarss\\xwr16xx_radarss_rprc_es1.0.bin"
MSS_FW = FW_PATH。"\\masterss\\xwr16xx_masterss_rprc_ES1.0.bin"
然后是 ElseIf ((PartID ==1642)和(ESVersion ==2))
bss_fw = fw_path."\\radarss\\xwr16xx_radarss_rprc_es2.0.bin"
MSS_FW = FW_PATH。"\\masterss\\xwr16xx_masterss_rprc_ES2.0.bin"
然后是 ElseIf ((PartID ==1243)和(ESVersion ==2))
bss_fw = fw_path."\\radarss\\xwr12xx_xwr14xx_radarss_es2.0.bin"
MSS_FW = FW_PATH。"\\masterss\\xwr12xx_xwr14xx_masterss_ES2.0.bin"
然后是 ElseIf ((PartID ==1243)和(ESVersion ==3))
bss_fw = fw_path."\\radarss\\xwr12xx_xwr14xx_radarss_es3.0.bin"
MSS_FW = FW_PATH。"\\masterss\\xwr12xx_xwr14xx_masterss_ES3.0.bin"
然后是 ElseIf ((PartID ==1443)和(ESVersion ==2))
bss_fw = fw_path."\\radarss\\xwr12xx_xwr14xx_radarss_es2.0.bin"
MSS_FW = FW_PATH。"\\masterss\\xwr12xx_xwr14xx_masterss_ES2.0.bin"
ElseIf ((PartID ==1443)和(ESVersion ==3)))
bss_fw = fw_path."\\radarss\\xwr12xx_xwr14xx_radarss_es3.0.bin"
MSS_FW = FW_PATH。"\\masterss\\xwr12xx_xwr14xx_masterss_ES3.0.bin"
其他
WriteToLog ("Invlid Device PartID FW\n"..PartID)
WriteToLog ("Invlid Device ESVersion\n"..ESVersion)
结束

--下载 BSS 固件(AR16xx)

如果(AR1.DownloadBSSFw (BSS_FW)= 0)则
WriteToLog ("BSS 固件下载成功\n"、"绿色环保")
其他
WriteToLog ("BSS 固件下载失败\n"、"红色")
结束
RSTD.SLEEP (2000)

--下载 MSS 固件
如果(ar1.DownloadMSSFw (MSS_FW)=0)那么
WriteToLog ("MSS FW 下载成功\n"、"绿色环保")
其他
WriteToLog ("MSS 固件下载失败\n"、"红色")
结束
RSTD.SLEEP (2000)

-- SPI 连接
如果(AR1.PowerOn (1、1000、0、0)= 0)则
WriteToLog ("上电成功\n"、"绿色环保")
其他
WriteToLog ("上电失败\n"、"红色")
结束
RSTD.SLEEP (1000)

--射频加电
如果(AR1.RfEnable()==0)那么
WriteToLog ("RF Enable Successn"、"绿色环保")
其他
WriteToLog ("RF Enable Failure\n"、"red")
结束
RSTD.SLEEP (1000)


--
IF (AR1.ChanNAdcConfig (1、1、0、1、1、1、 1、1、2、1、0)==0)
WriteToLog ("ChanNAdcConfig 成功\n"、"绿色环保")
其他
WriteToLog ("ChanNAdcConfig 失败\n"、"红色")
结束
RSTD.SLEEP (1000)

如果(PartID = 1642)则
如果(AR1.LPModConfig (0、1)= 0)、则
WriteToLog ("LPModConfig 成功\n"、"绿色环保")
其他
WriteToLog ("LPModConfig Failure\n"、"red")
结束
其他
如果(AR1.LPModConfig (0、0)= 0)则
WriteToLog ("regualar mode Cfg Success\n"、"绿色环保")
其他
WriteToLog ("regualar mode Cfg failure\n"、"red")
结束
结束
RSTD.SLEEP (2000)

如果(AR1.RfInit()==0)则
WriteToLog ("RfInit 成功\n"、"绿色环保")
其他
WriteToLog ("RfInit Failure\n"、"red")
结束
RSTD.SLEEP (1000)

如果(AR1.DataPathConfig (1、1、0)= 0)、则
WriteToLog ("DataPathConfig 成功\n"、"绿色环保")
其他
WriteToLog ("DataPathConfig 失败\n"、"红色")
结束
RSTD.SLEEP (1000)

如果(AR1.LvdsClkConfig (1、1)= 0)、则
WriteToLog ("LvdsClkConfig 成功\n"、"绿色环保")
其他
WriteToLog ("LvdsClkConfig 失败\n"、"红色")
结束
RSTD.SLEEP (1000)

如果(PartID = 1642)则
IF (AR1.LVDSLaneConfig (0、1、1、0、0、 1、0、0)= 0)
WriteToLog ("LVDSLaneConfig 成功\n"、"绿色环保")
其他
WriteToLog ("LVDSLaneConfig 失败\n"、"红色")
结束
然后、ElseIf ((PartID ==1243)或(PartID =1443))
IF (AR1.LVDSLaneConfig (0、1、1、1、1、1、 1、0、0)= 0)
WriteToLog ("LVDSLaneConfig 成功\n"、"绿色环保")
其他
WriteToLog ("LVDSLaneConfig 失败\n"、"红色")
结束
结束
RSTD.SLEEP (1000)

如果(PartID = 1642)则
if (ar1.ProfileConfig (0、77、100、6、60、 0、0、0、0、0、 0、29.982、0、256、5000、 0、0、30)= 0)然后
WriteToLog ("ProfileConfig 成功\n"、"绿色环保")
其他
WriteToLog ("ProfileConfig Failure\n"、"red")
结束
然后、ElseIf ((PartID ==1243)或(PartID =1443))
if (ar1.ProfileConfig (0、77、100、6、60、 0、0、0、0、0、 0、29.982、0、256、10000、 0、0、30)= 0)然后
WriteToLog ("ProfileConfig 成功\n"、"绿色环保")
其他
WriteToLog ("ProfileConfig Failure\n"、"red")
结束
结束
RSTD.SLEEP (1000)

IF (AR1.ChirpConfig (0、0、0、0、0、0、 0、0、1、1、0)==0)
WriteToLog ("ChirpConfig 成功\n"、"绿色环保")
其他
WriteToLog ("ChirpConfig 失败\n"、"red")
结束
RSTD.SLEEP (1000)

IF (AR1.FrameConfig (0、0、8、128、40、 0、1)==0)、那么
WriteToLog ("FrameConfig Success\n"、"绿色环保")
其他
WriteToLog ("FrameConfig Failure\n"、"red")
结束
RSTD.SLEEP (1000)

--选择设备类型
如果(AR1.SelectCaptCaptureDevice ("DCA1000")=0)则
WriteToLog ("SelectCaptCaptCaptureDevice Success\n"、"绿色环保")
其他
WriteToLog ("SelectCaptCaptCaptureDevice Failure\n"、"RED")
结束
RSTD.SLEEP (1000)

数据采集卡 API
如果(ar1.CaptureCardConfig_EthInit("192.168.33.30"、"192.168.33.180"、"12:34:56:78:90:12"、4096、4098)== 0")则
WriteToLog ("CaptureCardConfig_EthInit 成功\n"、"绿色环保")
其他
WriteToLog ("CaptureCardConfig_EthInit Failure\n"、"red")
结束
RSTD.SLEEP (1000)

-AR12xx 或 AR14xx-1、AR16xx-2 (第二个参数表示器件类型)
如果(PartID = 1642)则
IF (AR1.CaptureCardConfig_Mode (1、2、1、2、3、 30)==0)那么
WriteToLog ("CaptureCardConfig_Mode Success\n"、"绿色环保")
其他
WriteToLog ("CaptureCardConfig_Mode Failure\n"、"RED")
结束
然后、ElseIf ((PartID ==1243)或(PartID =1443))
IF (AR1.CaptureCardConfig_Mode (1、1、1、2、3、 30)==0)那么
WriteToLog ("CaptureCardConfig_Mode Success\n"、"绿色环保")
其他
WriteToLog ("CaptureCardConfig_Mode Failure\n"、"RED")
结束
结束
RSTD.SLEEP (1000)


如果(AR1.CaptureCardConfig_PacketDelay (50)=0)、则
WriteToLog ("CaptureCardConfig_PacketDelay 成功\n"、"绿色环保")
其他
WriteToLog ("CaptureCardConfig_PacketDelay 失败\n"、"RED")
结束
RSTD.SLEEP (1000)
-- PacketDelay를 50으로 해줘야 PostProcessing에서 MWMCR:관련 빨간글씨 error가 안나옴 μ H

--------------

--Start Record ADC data (开始记录 ADC 数据)
AR1.CaptureCardConfig_StartRecord (ADC_DATA_PATH、1)
RSTD.SLEEP (1000)

触发帧
ar1.StartFrame ()
RSTD.SLEEP (2000)

--Packet reorder 实用程序处理 Raw_ADC_data
WriteToLog ("请等待几秒钟以进行数据包重新排序实用程序处理..... !!!! "n"、"绿色")
AR1.PacketReorderZeroFill (Raw_data_path、adc_data_path、pkt_log_path)
RSTD.SLEEP (10000)
WriteToLog ("数据包重新排序实用程序处理完成.....。 !!!! "n"、"绿色")

-对捕获原始 ADC 数据进行后处理
--ar1.StartMatlabPostProc (adc_data_path)
--WriteToLog ("请等待几秒钟以进行 MATLAB 后处理..... !!!! "n"、"绿色")
-RSTD.SLEEP (10000)

如果 I = 1、3、请执行
-temp_adc_data_path= a[i]
AR1.CaptureCardConfig_StartRecord (A[i]、1)
RSTD.SLEEP (1000)

触发帧
ar1.StartFrame ()
RSTD.SLEEP (2000)

--ar1.CaptureCardConfig_StopRecord()
--Packet reorder 实用程序处理 Raw_ADC_data
WriteToLog ("请等待几秒钟以进行数据包重新排序实用程序处理..... !!!! "n"、"绿色")
AR1.PacketReorderZeroFill (b[i]、a[i]、c[i])
RSTD.SLEEP (10000)
--WriteToLog ("数据包重新排序实用程序处理完成.....。 !!!! "n"、"绿色")
RSTD.SLEEP (4000)
结束

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

    您好、这里:

    您使用的是哪个版本的 mmWave Studio?   如果您使用的是最新版本02.01.01.00、请删除最后几行。 并检查 ADC_DATA_Raw_0.bin 的大小。   

    --ar1.CaptureCardConfig_StopRecord()
    --Packet reorder 实用程序处理 Raw_ADC_data
    WriteToLog ("请等待几秒钟以进行数据包重新排序实用程序处理..... !!!! "n"、"绿色")
    AR1.PacketReorderZeroFill (b[i]、a[i]、c[i])
    RSTD.SLEEP (10000)
    --WriteToLog ("数据包重新排序实用程序处理完成.....。 !!!! "n"、"绿色")
    RSTD.SLEEP (4000)

    由于您有 for 循环、您可能可以在 startFrame 后增加睡眠时间

    触发帧
    ar1.StartFrame ()
    RSTD.SLEEP (3000)

    最棒的

    Zigang

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

    首先,我很抱歉迟才回复你的意见。

    我应用您的意见(在 AR1.StartFrame ()之后添加延迟时间),我可以获得一致的数据大小。

    我想在你的答覆中提出几点。
    您提到了 mmWave Studio 的版本。
    我听说几乎有经理推荐最新版本的 mmWave Studio (2.1.0.0)。
    但是、我将 mmWave Studio 用作1.0.0.0版本。
    此时、旧版本中是否存在严重错误?
    (我认为任何版本的传感结果都没有差异。)

    2.我发现、感应的差异会导致定制代码(lua)和 mmWave studio (GUI)。

    使用这两种 sesning 方法来获取 bin 文件、并使用 readDCA1000解释 bin 文件(来自 mmWave Studio 用户指南)。

    在振幅方面、自定义代码的结果是 GUI 结果的两倍。

    如果您知道此问题的原因、请告诉我。

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

    您好、Kim:

    1) 1)您需要查看每个版本的 mmWave Studio 的发行说明、并查看是否支持该版本的器件。  每个 mmWave Studio 版本的发行说明可在  以下位置找到:C:\ti\mmwave_studio_xx_xx_xx_xx\docs\mmwave_studio_release_notes.pdf

    2) 2)您需要确保 mmWave Studio 和 LUA 脚本的配置完全按照相同的方式对器件进行编程。   

    最棒的

    Zigang

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

    我知道 GUI 和 LUA 脚本之间没有区别。

    感谢您的努力。