Other Parts Discussed in Thread: AWR1843, DCA1000EVM
您好,我完成了上个相关问题进行原始数据采集的步骤,但是在利用mmwave_studio进行RUN文件DataCaptureDemo_xWR.lua的时候,在downloading MSS的时候一直加载为0,等待了十几分钟一直如此。请问该如何解决呢。我再认为终止程序之后,显示MSS FW Download failure的报错

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.
您好,我完成了上个相关问题进行原始数据采集的步骤,但是在利用mmwave_studio进行RUN文件DataCaptureDemo_xWR.lua的时候,在downloading MSS的时候一直加载为0,等待了十几分钟一直如此。请问该如何解决呢。我再认为终止程序之后,显示MSS FW Download failure的报错

没有尝试运行修改之前的代码。修改之后代码如下,我是用的板子是AWR1843,可以正常运行driver vital sign的程序并出现结果;参考原问题找到的相关步骤,我只按照driver vital sign的xwr1642_profile_VitalSigns_20fps_Front文件修改了ar1.ProfileConfig,ar1.ChirpConfig,ar1.FrameConfig的参数
--BSS and MSS firmware download
info = debug.getinfo(1,'S');
file_path = (info.source);
file_path = string.gsub(file_path, "@","");
file_path = string.gsub(file_path, "DataCaptureDemo_xWR.lua","");
fw_path = file_path.."..\\..\\rf_eval_firmware"
--Export bit operation file
bitopfile = file_path.."\\".."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
if(efuseES2ES3Device == 0) then
if (bit_and(efuseES1device, 3) == 0) then
partId = 1243
elseif (bit_and(efuseES1device, 3) == 1) then
partId = 1443
else
partId = 1642
end
elseif(efuseES2ES3Device == 0xE0 and (bit_and(efuseES1device, 3) == 2)) then
partId = 6843
ar1.frequencyBandSelection("60G")
--if part number is non-zero then those are ES12 and ES3 devices
else
if(efuseES2ES3Device == 0x20 or efuseES2ES3Device == 0x21 or efuseES2ES3Device == 0x80) then
partId = 1243
elseif(efuseES2ES3Device == 0xA0 or efuseES2ES3Device == 0x40)then
partId = 1443
elseif(efuseES2ES3Device == 0x60 or efuseES2ES3Device == 0x61 or efuseES2ES3Device == 0x04 or efuseES2ES3Device == 0x62 or efuseES2ES3Device == 0x67) then
partId = 1642
elseif(efuseES2ES3Device == 0x66 or efuseES2ES3Device == 0x01 or efuseES2ES3Device == 0xC0 or efuseES2ES3Device == 0xC1) then
partId = 1642
elseif(efuseES2ES3Device == 0x70 or efuseES2ES3Device == 0x71 or efuseES2ES3Device == 0xD0 or efuseES2ES3Device == 0x05) then
partId = 1843
elseif(efuseES2ES3Device == 0xE0 or efuseES2ES3Device == 0xE1 or efuseES2ES3Device == 0xE2 or efuseES2ES3Device == 0xE3 or efuseES2ES3Device == 0xE4) then
partId = 6843
ar1.frequencyBandSelection("60G")
else
WriteToLog("Inavlid Device part number in ES2 and ES3 devices\n" ..partId)
end
end
--ES version
res, ESVersion = ar1.ReadRegister(0xFFFFE218, 0, 31)
ESVersion = bit_and(ESVersion, 15)
--ADC_Data file path
data_path = file_path.."..\\PostProc"
adc_data_path = data_path.."\\adc_data.bin"
-- Download Firmware
if(partId == 1642) then
BSS_FW = fw_path.."\\radarss\\xwr16xx_radarss.bin"
MSS_FW = fw_path.."\\masterss\\xwr16xx_masterss.bin"
elseif(partId == 1243) then
BSS_FW = fw_path.."\\radarss\\xwr12xx_xwr14xx_radarss.bin"
MSS_FW = fw_path.."\\masterss\\xwr12xx_xwr14xx_masterss.bin"
elseif(partId == 1443) then
BSS_FW = fw_path.."\\radarss\\xwr12xx_xwr14xx_radarss.bin"
MSS_FW = fw_path.."\\masterss\\xwr12xx_xwr14xx_masterss.bin"
elseif(partId == 1843) then
BSS_FW = fw_path.."\\radarss\\xwr18xx_radarss.bin"
MSS_FW = fw_path.."\\masterss\\xwr18xx_masterss.bin"
elseif(partId == 6843) then
BSS_FW = fw_path.."\\radarss\\xwr68xx_radarss.bin"
MSS_FW = fw_path.."\\masterss\\xwr68xx_masterss.bin"
else
WriteToLog("Invalid Device partId FW\n" ..partId)
WriteToLog("Invalid Device ESVersion\n" ..ESVersion)
end
-- 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 (partId == 1642) then
if (ar1.LPModConfig(0, 1) == 0) then
WriteToLog("LPModConfig Success\n", "green")
else
WriteToLog("LPModConfig failure\n", "red")
end
else
if (ar1.LPModConfig(0, 0) == 0) then
WriteToLog("Regualar mode Cfg Success\n", "green")
else
WriteToLog("Regualar mode Cfg failure\n", "red")
end
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((partId == 1642) or (partId == 1843) or (partId == 6843)) then
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
elseif ((partId == 1243) or (partId == 1443)) then
if (ar1.LVDSLaneConfig(0, 1, 1, 1, 1, 1, 0, 0) == 0) then
WriteToLog("LVDSLaneConfig Success\n", "green")
else
WriteToLog("LVDSLaneConfig failure\n", "red")
end
end
if (ar1.SetTestSource(4, 3, 0, 0, 0, 0, -327, 0, -327, 327, 327, 327, -2.5, 327, 327, 0, 0, 0, 0, -327, 0, -327,
327, 327, 327, -95, 0, 0, 0.5, 0, 1, 0, 1.5, 0, 0, 0, 0, 0, 0, 0) == 0) then
WriteToLog("Test Source Configuration Success\n", "green")
else
WriteToLog("Test Source Configuration failure\n", "red")
end
if((partId == 1642) or (partId == 1843)) then
if(ar1.ProfileConfig(0, 77, 7, 6, 57, 0, 0, 70, 1, 200, 4000, 0, 0, 48) == 0) then
WriteToLog("ProfileConfig Success\n", "green")
else
WriteToLog("ProfileConfig failure\n", "red")
end
elseif((partId == 1243) or (partId == 1443)) then
if(ar1.ProfileConfig(0, 77, 7, 6, 57, 0, 0, 0, 0, 0, 0, 70.006, 1, 100, 2000, 0, 0, 40) == 0) then
WriteToLog("ProfileConfig Success\n", "green")
else
WriteToLog("ProfileConfig failure\n", "red")
end
elseif(partId == 6843) then
if(ar1.ProfileConfig(0, 77, 7, 6, 57, 0, 0, 0, 0, 0, 0, 70.006, 1, 100, 2000, 0, 0, 48) == 0) then
WriteToLog("ProfileConfig Success\n", "green")
else
WriteToLog("ProfileConfig failure\n", "red")
end
end
if (ar1.ChirpConfig(0, 0, 0, 0, 0, 0, 0, 1) == 0) then
WriteToLog("ChirpConfig Success\n", "green")
else
WriteToLog("ChirpConfig failure\n", "red")
end
if (ar1.EnableTestSource(1) == 0) then
WriteToLog("Enabling Test Source Success\n", "green")
else
WriteToLog("Enabling Test Source failure\n", "red")
end
if (ar1.FrameConfig(0, 0, 2, 0, 50, 1, 0) == 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 ((partId == 1642) or (partId == 1843) or (partId == 6843)) then
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
elseif ((partId == 1243) or (partId == 1443)) then
if (ar1.CaptureCardConfig_Mode(1, 1, 1, 2, 3, 30) == 0) then
WriteToLog("CaptureCardConfig_Mode Success\n", "green")
else
WriteToLog("CaptureCardConfig_Mode failure\n", "red")
end
end
if (ar1.CaptureCardConfig_PacketDelay(25) == 0) then
WriteToLog("CaptureCardConfig_PacketDelay Success\n", "green")
else
WriteToLog("CaptureCardConfig_PacketDelay failure\n", "red")
end
--Start Record ADC data
ar1.CaptureCardConfig_StartRecord(adc_data_path, 1)
RSTD.Sleep(1000)
--Trigger frame
ar1.StartFrame()
RSTD.Sleep(5000)
--Post process the Capture RAW ADC data
ar1.StartMatlabPostProc(adc_data_path)
WriteToLog("Please wait for a few seconds for matlab post processing .....!!!! \n", "green")
RSTD.Sleep(10000)
请先不要用Lua,按照下面网站上的步骤看一下能不能手动加载MSS firmware。
https://e2echina.ti.com/blogs_/b/the_process/posts/dca1000evm
您好,事实上,不论是用lua还是按照您说的步骤进行操作,load C:\ti\mmwave_studio_02_01_01_00\mmWaveStudio\Scripts\..\..\rf_eval_firmware\masterss\xwr18xx_masterss.bin都是可以成功的。
另外在不用lua,按照您给的操作步骤,在最后一步遇到了问题,即FPGA Version读取失败,详细报错如下。
我在进行了相关搜索之后,有人说是因为千兆网口才可以,我检查了自己的网口并不是千兆网口,是因为这个原因导致我FPGA Version读取失败么?又或者说正是因为这个原因导致我用lua的时候一直无法加载成功?
[10:30:38] [RadarAPI]: ar1.CaptureCardConfig_EthInit("192.168.33.30", "192.168.33.180", "12:34:56:78:90:12", 4096, 4098)
[10:30:38] [RadarAPI]: ar1.CaptureCardConfig_Mode(1, 2, 1, 2, 3, 30)
[10:30:38] [RadarAPI]: ar1.CaptureCardConfig_PacketDelay(25)
[10:30:38] [RadarAPI]: Sending fpga command to DCA1000
[10:30:48] [RadarAPI]:
[10:30:48] FPGA Configuration :
[10:30:48] Timeout Error! System disconnected
[10:30:49] [RadarAPI]: Sending record command to DCA1000
[10:30:59] [RadarAPI]:
[10:30:59] Configure Record :
[10:30:59] Timeout Error! System disconnected
[10:30:59] [RadarAPI]: ar1.GetCaptureCardFPGAVersion()
[10:30:59] [RadarAPI]: Sending fpga_version command to DCA1000
[10:31:09] [RadarAPI]:
[10:31:09]
[10:31:09] Unable to read FPGA Version. [error -5]需要千兆以太网,请看DCA1000EVM手册。
https://www.ti.com.cn/cn/lit/ug/spruij4a/spruij4a.pdf
• HOST PC configuration:
– Intel Core i5 2.5 GHz or above
– 8 GB RAM or above
– Windows 10 Pro operating system
– Static IP Address – 192.168.33.30
– 1-Gbps Ethernet port