Part Number:AWR2243BOOSTOther Parts Discussed in Thread:DCA1000EVM,
雷达配置参数基本为mmwaveconfig.txt中的默认参数,只修改了framecount=10,具体如下:
# #For detailed view of mmWave Radar configuration structure #please refer #ti\control\mmwavelink\docs\doxygen\html\index.html # # #Global configuration #Advanced frame test enable/disable; 1 - Advanced frame; 0 - Legacy frame #Continuous mode test enable/disable; 1 - Enable; 0 - Disable #Dynamic chirp test enable/disable; 1 - Enable; 0 - Disable; This should not be enabled if Advanced chirp test is enabled #Dynamic profile test enable/disable; 1 - Enable; 0 - Disable #Advanced chirp test enable/disable; 1 - Enable; 0 - Disable; The legacy chirp API is not required if this is enabled #Firmware download enable/disable; 1 - Enable; 0 - Disable #mmWaveLink logging enable/disable; 1 - Enable; 0 - Disable #Calibration enable/disable; To perform calibration store/restore; 1 - Enable; 0 - Disable #Calibration Store/Restore; If CalibEnable = 1, then whether to store/restore; 1 - Store; 0 - Restore #Transport mode; 1 - I2C; 0 - SPI #Flash connected enable/disable; 1 - Enable; 0 - Disable # LinkAdvanceFrameTest=0; LinkContModeTest=0; LinkDynChirpTest=1; LinkDynProfileTest=0; LinkAdvChirpTest=0; EnableFwDownload=1; EnableMmwlLogging=0; CalibEnable=0; CalibStoreRestore=1; TransferMode=0; IsFlashConnected=1; #END # #power on master arguments, please modify if needed. #rlClientCbs_t: crcType 0:16Bit/1:32Bit/2:64Bit, ackTimeout # crcType=1; ackTimeout=1000; #END # #channel config parameters, please modify if needed. #rlChanCfg_t # channelTx=3; channelRx=15; cascading=0; #END # #ADC out config parameters, please modify if needed. #rlAdcOutCfg_t # adcBits=2; adcFormat=2; #END # #DATA format config parameters, please modify if needed. #rlDevDataFmtCfg_t # rxChanEn=15; adcBitsD=2; adcFmt=1; iqSwapSel=0; chInterleave=0; #END # #Low power config Paramters, please modify if needed. #rlLowPowerModeCfg_t # anaCfg=0; lpAdcMode=0; #END # #Data Path config parameters, please modify if needed #rlDevDataPathCfg_t # intfSel=1; transferFmtPkt0=1; transferFmtPkt1=0; cqConfig=2; cq0TransSize=64; cq1TransSize=64; cq2TransSize=64; #END # #LVDS clock config parameters, please modify if needed #rlDevDataPathClkCfg_t # laneClk=1; dataRate=1; #END # #SET HSI clock parameters, please modify if needed. #rlDevHsiClk_t # hsiClk=9 #END # #LANE config parameters, please modify if needed. #rlDevLaneEnable_t # laneEn=15; #END # #LVDS Lane Config parameters, please modify if needed. #rlDevLvdsLaneCfg_t # laneFmtMap=0; laneParamCfg=1; #END # #Programmable Filter config parameters, please modify if needed. #rlRfProgFiltConf_t # profileId=0; coeffStartIdx=0; progFiltLen=14; progFiltFreqShift=100; #END # #Profile config parameters, please modify if needed. #rlProfileCfg_t # profileId=0; pfVcoSelect=2; startFreqConst=1439117143; idleTimeConst=1000; adcStartTimeConst=600; rampEndTime=6000; txOutPowerBackoffCode=0; txPhaseShifter=0; freqSlopeConst=621; txStartTime=0; numAdcSamples=256; digOutSampleRate=10000; hpfCornerFreq1=0; hpfCornerFreq2=0; rxGain=30; #END # #Profile config parameters, please modify if needed. #rlProfileCfg_t # profileId=1; pfVcoSelect=2; startFreqConst=1439117143; idleTimeConst=1000; adcStartTimeConst=700; rampEndTime=6000; txOutPowerBackoffCode=0; txPhaseShifter=0; freqSlopeConst=621; txStartTime=0; numAdcSamples=256; digOutSampleRate=10000; hpfCornerFreq1=0; hpfCornerFreq2=0; rxGain=30; #END # #Profile config parameters, please modify if needed. #rlProfileCfg_t # profileId=2; pfVcoSelect=2; startFreqConst=1439117143; idleTimeConst=1000; adcStartTimeConst=800; rampEndTime=6000; txOutPowerBackoffCode=0; txPhaseShifter=0; freqSlopeConst=621; txStartTime=0; numAdcSamples=256; digOutSampleRate=10000; hpfCornerFreq1=0; hpfCornerFreq2=0; rxGain=30; #END # #Profile config parameters, please modify if needed. #rlProfileCfg_t # profileId=3; pfVcoSelect=2; startFreqConst=1439117143; idleTimeConst=1000; adcStartTimeConst=900; rampEndTime=6000; txOutPowerBackoffCode=0; txPhaseShifter=0; freqSlopeConst=621; txStartTime=0; numAdcSamples=256; digOutSampleRate=10000; hpfCornerFreq1=0; hpfCornerFreq2=0; rxGain=30; #END # #Chirp Configuration parameters, please modify if needed. #rlChirpCfg_t # chirpStartIdx=0; chirpEndIdx=63; profileIdCPCFG=0; startFreqVar=0; freqSlopeVar=0; idleTimeVar=0; adcStartTimeVar=0; txEnable=1; #END # #Chirp Configuration parameters, please modify if needed. #rlChirpCfg_t # chirpStartIdx=64; chirpEndIdx=127; profileIdCPCFG=0; startFreqVar=0; freqSlopeVar=0; idleTimeVar=0; adcStartTimeVar=0; txEnable=2; #END # #Frame configuration parameters, please modify if needed. #rlFrameCfg_t # chirpStartIdxFCF=0; chirpEndIdxFCF=127; frameCount=10; loopCount=1; periodicity=20000000; triggerDelay=0; numAdcSamples=512; triggerSelect=1; #END # #Advance Frame configuration parameters, please modify if needed. numOfSubFrames=4; forceProfile=0; numFrames=100; loopBackCfg=0; triggerSelect=1; frameTrigDelay=0; #end # #4th sub Frame configuration parameters, please modify if needed. forceProfileIdx=0; chirpStartIdxAF=0; numOfChirps=1; numLoops=8; burstPeriodicity=5000000; chirpStartIdxOffset=0; numOfBurst=1; numOfBurstLoops=1; subFramePeriodicity=5000000; numAdcSamplesAF=256 numChirpsInDataPacket=1 #end # #3rd sub Frame configuration parameters, please modify if needed. forceProfileIdx=0; chirpStartIdxAF=0; numOfChirps=1; numLoops=8; burstPeriodicity=5000000; chirpStartIdxOffset=0; numOfBurst=1; numOfBurstLoops=1; subFramePeriodicity=5000000; numAdcSamplesAF=256 numChirpsInDataPacket=1 #end # #2nd sub Frame configuration parameters, please modify if needed. forceProfileIdx=0; chirpStartIdxAF=0; numOfChirps=1; numLoops=8; burstPeriodicity=5000000; chirpStartIdxOffset=0; numOfBurst=1; numOfBurstLoops=1; subFramePeriodicity=5000000; numAdcSamplesAF=256 numChirpsInDataPacket=1 #end # #1st sub Frame configuration parameters, please modify if needed. forceProfileIdx=0; chirpStartIdxAF=0; numOfChirps=1; numLoops=8; burstPeriodicity=5000000; chirpStartIdxOffset=0; numOfBurst=1; numOfBurstLoops=1; subFramePeriodicity=5000000; numAdcSamplesAF=256 numChirpsInDataPacket=1 #end # #Continuous mode config parameters #startFreqConst=1435384036; #txOutPowerBackoffCode=0; #txPhaseShifter=0; #digOutSampleRate=10000; #hpfCornerFreq1=0; #hpfCornerFreq2=0; contModeRxGain=30; vcoSelect=3388; #end # #Advanced chirp config parameters AdvChirp_chirpParamIdx=0; AdvChirp_resetMode=0; AdvChirp_deltaResetPeriod=0; AdvChirp_deltaParamUpdatePeriod=0; AdvChirp_sf0ChirpParamDelta=0; AdvChirp_sf1ChirpParamDelta=0; AdvChirp_sf2ChirpParamDelta=0; AdvChirp_sf3ChirpParamDelta=0; AdvChirp_lutResetPeriod=4; AdvChirp_lutParamUpdatePeriod=1; AdvChirp_lutPatternAddressOffset=0; AdvChirp_numPatterns=4; AdvChirp_lutBurstIndexOffset=0; AdvChirp_lutSfIndexOffset=0; AdvChirp_lutChirpParamSize=0; AdvChirp_lutChirpParamScale=0; AdvChirp_maxTxPhShifIntDither=0; #end # #Advanced chirp Profile config LUT parameters #Each data parameter is 4 bits AdvChirpLUT_ProfileConfig_LUTAddrOff=0; AdvChirpLUT_ProfileConfig_Data1=0; AdvChirpLUT_ProfileConfig_Data2=1; AdvChirpLUT_ProfileConfig_Data3=2; AdvChirpLUT_ProfileConfig_Data4=3; #end # #Advanced chirp Start Freq config LUT parameters #The Start Freq data is in GHz #Each data parameter is 1 or 2 or 4 bytes depending on ParamSize # ParamSizeSize in bytes #04 #12 #21 AdvChirpLUT_StartFreqConfig_LUTAddrOff=4; AdvChirpLUT_StartFreqConfig_ParamSize=1; AdvChirpLUT_StartFreqConfig_ParamScale=0; AdvChirpLUT_StartFreqConfig_Data1=-0.000001; AdvChirpLUT_StartFreqConfig_Data2=0.000000; AdvChirpLUT_StartFreqConfig_Data3=0.000001; AdvChirpLUT_StartFreqConfig_Data4=-0.000001; #end # #Advanced chirp Freq Slope config LUT parameters #The Freq Slope data is in MHz/us #Each data parameter is 1 byte AdvChirpLUT_FreqSlopeConfig_LUTAddrOff=12; AdvChirpLUT_FreqSlopeConfig_Data1=-0.050; AdvChirpLUT_FreqSlopeConfig_Data2=0.000; AdvChirpLUT_FreqSlopeConfig_Data3=-0.050; AdvChirpLUT_FreqSlopeConfig_Data4=0.050; #end # #Advanced chirp Idle time config LUT parameters #The Idle time data is in us #Each data parameter is 1 or 2 bytes depending on ParamSize # ParamSizeSize in bytes #02 #11 AdvChirpLUT_IdleTimeConfig_LUTAddrOff=16; AdvChirpLUT_IdleTimeConfig_ParamSize=0; AdvChirpLUT_IdleTimeConfig_ParamScale=0; AdvChirpLUT_IdleTimeConfig_Data1=0.01; AdvChirpLUT_IdleTimeConfig_Data2=0.02; AdvChirpLUT_IdleTimeConfig_Data3=0.00; AdvChirpLUT_IdleTimeConfig_Data4=0.01; #end # #Advanced chirp ADC time config LUT parameters #The ADC start time data is in us #Each data parameter is 1 or 2 bytes depending on ParamSize # ParamSizeSize in bytes #02 #11 AdvChirpLUT_ADCTimeConfig_LUTAddrOff=24; AdvChirpLUT_ADCTimeConfig_ParamSize=0; AdvChirpLUT_ADCTimeConfig_ParamScale=0; AdvChirpLUT_ADCTimeConfig_Data1=0.02; AdvChirpLUT_ADCTimeConfig_Data2=0.01; AdvChirpLUT_ADCTimeConfig_Data3=0.00; AdvChirpLUT_ADCTimeConfig_Data4=0.01; #end # #Advanced chirp Tx Enable config LUT parameters #Each data parameter is 4 bits #b0:TX0 ; b1:TX1; b2:TX2 AdvChirpLUT_TxEnConfig_LUTAddrOff=32; AdvChirpLUT_TxEnConfig_Data1=7; AdvChirpLUT_TxEnConfig_Data2=3; AdvChirpLUT_TxEnConfig_Data3=1; AdvChirpLUT_TxEnConfig_Data4=2; #end # #Advanced chirp BPM Enable config LUT parameters #Each data parameter is 4 bits #b0:TX0 ; b1:TX1; b2:TX2 AdvChirpLUT_BpmEnConfig_LUTAddrOff=36; AdvChirpLUT_BpmEnConfig_Data1=7; AdvChirpLUT_BpmEnConfig_Data2=3; AdvChirpLUT_BpmEnConfig_Data3=1; AdvChirpLUT_BpmEnConfig_Data4=2; #end # #Advanced chirp Tx0 Phase Shifter config LUT parameters #The phase shifter data is in degrees #Each data parameter is 1 byte AdvChirpLUT_Tx0PhShiftConfig_LUTAddrOff=40; AdvChirpLUT_Tx0PhShiftConfig_Data1=5.625; AdvChirpLUT_Tx0PhShiftConfig_Data2=11.250; AdvChirpLUT_Tx0PhShiftConfig_Data3=16.875; AdvChirpLUT_Tx0PhShiftConfig_Data4=16.875; #end # #Advanced chirp Tx1 Phase Shifter config LUT parameters #The phase shifter data is in degrees #Each data parameter is 1 byte AdvChirpLUT_Tx1PhShiftConfig_LUTAddrOff=44; AdvChirpLUT_Tx1PhShiftConfig_Data1=0.000; AdvChirpLUT_Tx1PhShiftConfig_Data2=5.625; AdvChirpLUT_Tx1PhShiftConfig_Data3=0.000; AdvChirpLUT_Tx1PhShiftConfig_Data4=5.625; #end # #Advanced chirp Tx2 Phase Shifter config LUT parameters #The phase shifter data is in degrees #Each data parameter is 1 byte AdvChirpLUT_Tx2PhShiftConfig_LUTAddrOff=48; AdvChirpLUT_Tx2PhShiftConfig_Data1=5.625; AdvChirpLUT_Tx2PhShiftConfig_Data2=0.000; AdvChirpLUT_Tx2PhShiftConfig_Data3=5.625; AdvChirpLUT_Tx2PhShiftConfig_Data4=0.000; #end
关于DCA1000EVM配置相关的cf.json文件内容如下:
{"DCA1000Config": {"dataLoggingMode": "raw","dataTransferMode": "LVDSCapture","dataCaptureMode": "ethernetStream","lvdsMode": 1,"dataFormatMode": 3,"packetDelay_us": 25,"ethernetConfig": {"DCA1000IPAddress": "192.168.33.180","DCA1000ConfigPort": 4096,"DCA1000DataPort": 4098},"ethernetConfigUpdate": {"systemIPAddress": "192.168.33.30","DCA1000IPAddress": "192.168.33.180","DCA1000MACAddress": "12.34.56.78.90.12","DCA1000ConfigPort": 4096,"DCA1000DataPort": 4098},"captureConfig": {"fileBasePath": "C:\\ti\\mmwave_studio_03_00_00_14\\mmWaveStudio\\CaptureData","filePrefix": "capture_data","maxRecFileSize_MB": 1024,"sequenceNumberEnable": 1,"captureStopMode": "infinite","framesToCapture": 10},"dataFormatConfig": {"MSBToggle": 0,"laneFmtMap": 3,"reorderEnable": 0,"dataPortConfig": [{"portIdx": 0,"dataType": "complex"},{"portIdx": 1,"dataType": "complex"},{"portIdx": 2,"dataType": "complex"},{"portIdx": 3,"dataType": "complex"},{"portIdx": 4,"dataType": "complex"}]}} }
在对采集到的数据进行2DFFT处理时,在图像上出现了多普勒扩散现象,测试环境内没有运动的物体,2DFFT结果如下:
我们尝试在相同的参数下,用mmwavestudio采集了相同环境下的数据,并没有出现多普勒扩散现象。请问这种现象会是什么原因造成的呢?
Chris Meng:
你好,
请问你使用的是C:\ti\mmwave_dfp_02_02_03_01\ti\example\mmWaveLink_SingleChip_Example这个例程么?默认的配置文件的可编程滤波器有打开,建议关闭后再尝试。
默认值:
##Programmable Filter config parameters, please modify if needed.#rlRfProgFiltConf_t#profileId=0;coeffStartIdx=0;progFiltLen=14;progFiltFreqShift=100;#END
关闭参考配置:
profileId=0;coeffStartIdx=0;progFiltLen=0;progFiltFreqShift=45;
,
zihan yang:
感谢您的回复,我用的是mmWaveLink_Singlechip_Example这个例程,我按照您所建议的关掉了滤波器,但是结果还是有明显的多普勒扩散,并且10个frame的数据相差也比较大,从后5个frame中取出任意一组数据进行二维FFT处理,结果看起来像是直接对一个方波进行了fft,用singleChip进行采集的数据似乎并不合理,麻烦帮我分析一下这会是什么方面的问题?
上图是我抽取的第8个frame后画出的2DFFT,图像与后五个frame画出的都类似;
下图是我抽取的第4个frame后画出的2DFFT,可以代表前五个frame画出的图像;
期待您的回复
,
Chris Meng:
zihan yang 说:10个frame的数据相差也比较大
请问是TI的AWR2243boost板么?请问是在空旷的环境下测试的静止目标么?
,
zihan yang:
是的,我们用的是TI的AWR2243BOOST开发版,目前测试环境是在室内,没有运动物体。我们之前在相同配置参数下用studio在同一环境下采集过数据,postprocessing的结果图似乎是合理的,如下图所示。
,
Chris Meng:
你好,
mmwave studio使用的配置和mmwaveconfig.txt完全一致么?
,
Chris Meng:
你好,
你说的配置一样是哪些部分一样?
mmwave studio采集的数据你有使用自己的matlab代码来处理吗?
,
zihan yang:
我理解的配置一样是指:都是2发4收天线配置,发射的chirp数都是128/frame,总共发射10个frame,periodicity=20000000*5ns=0.1s,采样点数为256,采样速率为10Mhz,hpfCornerFreq1=175khz,hpfCornerFreq2=350khz,idletime=100us,adcstarttime=6us,rampendtime=60us等。studio采集的数据我也用自己的matlab代码画了,如下图所示:
关于两个发射天线部分,mmwaveconfig里定义的是channelTx=3;我查阅了doxygen中的配置,3对应的应该是011,但是cmd里显如下,这似乎是指启动了三个发射天线111?
,
Chris Meng:
你好,
请至少对比下面的参数:
Profile config
chirp config
frame config
frame是由chirp组成的,chripcfg里会配置使能的发射天线。channelcfg里配置的是全局使能。
,
zihan yang:
好的,我会再认真对比主要的参数,尝试解决frame之间数据相差大的问题。另外,请问您觉得多普勒扩散这种现象会是frame、chirp这些参数配置不当引起的吗?还是mmwaveconfig.txt中的可编程滤波器#rlRfProgFiltConf_t部分?
,
Chris Meng:
你好,
在空旷的环境下,测试静止目标,多帧间的结果差异应该是很小的。请问你使用的5V电源的电流是否有大于2.5A?
,
zihan yang:
我现在使用的是5V2.4A的电源。
我将mmwaveconfig.txt和cf.json的所有参数恢复为初始的参数,没有修改任何一个参数,重新进行了测试。初始文件里,frame的个数是50,我对每个通道的每一帧的接收数据进行处理,并对每个chirp都画了一维FFT图像,得到距离FFT结果图。我发现:前5帧的所有chirp绘制的FFT都是合理的,从第六帧开始,对前49个chirp处理的一维FFT都没有有效信息,从第50个chirp开始又是正常的。
通过图像来说明,对第4个frame中的所有chirp绘制了一维FFT,画在同一张图上,结果如下:
但是第5个frame开始,绘制的一维FFT结果大致如下:图左是所有chirp叠加的结果,图右是第1个chirp到第49个chirp绘制的一维fft的大致形状:
,
zihan yang:
你好,
我现在可以得到合理的帧的数据了,我将mwaveconfig.txt中的LinkDynChirpTest改成了0,现在每一帧数据得到的距离维FFT都是相似的。
就是现在还是不能避免非常明显的多普勒扩散情况,我会尝试去空旷的环境或者微波暗室里进行测试。
,
Chris Meng:
你好,
能否修改配置文件里的LinkDynChirpTest=1;为LinkDynChirpTest=0;再尝试?
还有配置文件里只使能了两根发射天线,你在mmwave studio里不知道使用了几根发射天线。还有adc位数和格式是否一致。
##channel config parameters, please modify if needed.#rlChanCfg_t#channelTx=3;channelRx=15;cascading=0;#END
##ADC out config parameters, please modify if needed.#rlAdcOutCfg_t#adcBits=2;adcFormat=2;#END
,
zihan yang:
你好,
您的建议非常有用,我修改了LinkDynChirpTest=0,现在一维多普勒是正常的。
我是用DataCaptureDemo_xWR.lua脚本文件配置的studio,似乎这个脚本中初始只使能了一根发射天线,我在mmwaveconfig.txt里使能了两根发射天线,adc位数都是16bit,adcFormat设置的是2,但我没有在参数说明文件annotated.htm中的找到adcFormat的说明,所以我不了解这个格式的含义。
,
zihan yang:
您好,
我修改了mmwaveconfig.txt中使能的发射天线个数,改成了使能一根发射天线,再用我的matlab处理就没有任何多普勒扩散现象了。所以会出现多普勒扩散的原因是我按照一发四收的天线配置去处理了两发四收的天线接收信号。接下来我会自己修改MTALAB代码,寻求合适的解决办法。
感谢您对帖子的跟进和宝贵的建议!
祝您生活愉快!
,
Chris Meng:
zihan yang 说:adcFormat设置的是2,但我没有在参数说明文件annotated.htm中的找到adcFormat的说明,所以我不了解这个格式的含义。
你可以参考C:\ti\mmwave_dfp_02_02_03_01\docs\mmWave-Radar-Interface-Control.pdf里的相关内容,2代表complex 2x。