TI中文支持网
TI专业的中文技术问题搜集分享网站

AWR2944EVM: 传感器论坛

Part Number:AWR2944EVMOther Parts Discussed in Thread:AWR2944

工程师,你好

关于AWR2944的phaseshiftcalibration,有几点想请教一下。

1.使用工厂校准的方式是否需要将得到的phase shift LUT表格写入到flash中,再配置"calibData 0 1 0\r\n",使每次上电时restore factory calibration data,同时配置RF_INIT的相关校准使能为disable。在2243的支持文档”级联一致性和移相器校准应用手册"中提到需要将工厂校准数据restore.

2.校准的机理。在文档TI 毫米波雷达器件中的自校准功能 (Rev. B)中提到,自校准是通过射频环回结构校准移相器。请问校准的过程是否为求与当前实测的相位较近的index并将其修改为相应的index吗?例如,LSB=5.625°,当index为2时,实测为8°,理论值为11.25°,而index为3时的实测值为13°,是否将index修正为3?(仅是猜测)。或者他是怎么执行该校准过程的呢?移相器的步长是否可变呢?

谢谢

Susan Ren:

感谢您对TI产品的关注!为更加有效地解决您的问题,我需要多一些时间查看这款芯片,稍后会为您解答。

,

ZhiQiang Lin:

你好,

按照文档“级联一致性和移相器校准手册”中的描述,需要获得low,mid,heigh,3个温度范围内的相位校准数据。我现在想在调用函数MmwDemo_calibRestore()从flash中读取校准数据之前,先调用函数MmwDemo_getTemperatureReport(),获取设备的温度信息,但是该函数获取的是各发射天线和接收天线上各自的温度,我现在求了天线上的平均值,或者有别的函数可以直接获得temperture。另外函数rlRfTempMonConfig(),在文档中说可以周期性的获得report,但是在AWR2944的SDK里面并没有调用该函数,请问如果要调用,应该在什么地方调用呢?我调用了函数rlRfRunTimeCalibConfig(),用来配置运行时校准,配置的CALIB_MON_TIME_UNIT=2U,CALIBRATION_PERIODICITY=3,并且使能了reportEn,和enablePeriodicity,但是从程序的执行过程中,似乎只执行了一次oneTimeCalib,在该函数的异步事件RL_RF_AE_RUN_TIME_CALIB_REPORT_SB中每执行一次,gMmwMssMCB.stats.calibrationReports++;我打印出该值,一直为1。在上述的文档中提到要使能CalTempIdxOverrideEn=0x7,在文档“2043.mmWave-Radar-Interface-Control”中提到,CalTempIdxOverrideEn只支持 one time calibrations,是不是需要设置enablePeriodicity == false。

关于温度偏执范围的选择,需要在程序执行的过程中实时检测温度信息,我现在是在函数MmwDemo_transmitProcessedOutput()中每隔几帧调用函数MmwDemo_getTemperatureReport()获取温度,请问是否可行?根据温度的变化,判断是否需要改变温度偏置(low,mid,height),需要重新从flash中读取相应温度偏置的校准数据,或是一次读出3个偏置的信息,根据温度选择对应的校准数据,是否可行?还需要override TX、RX、LO DIST的温度指数,是不是修改结构体rlRunTimeCalibConf_t中相关的变量并调用函数rlRfRunTimeCalibConfig()即可,抑或可以在函数MmwDemo_transmitProcessedOutput()中调用该函数?在“级联一致性和移相器校准手册”中还提到了TX的温度矫正LUT(针对的是2243和1843),请问2944有相应的温度矫正LUT吗?包含在SDK里面还是要从别的地方获取?

谢谢

,

Susan Ren:

让我在内部与团队一起检查一下,然后回复您进行更新。

,

ZhiQiang Lin:

你好,

前几天使用AWR2944在暗室中对着信号源测试了phaseshifter的校准矩阵,解出来的相位没有按照5.625°递增,请问这和使用的不是角反而是信号源有关吗?测试所用的波形配置为  TDM模式,4TX,4RX enabled,共64组phaseshift Set,在测试过程中,我自己写了一个CLI命令,使用TI自己的visualizer给AWR2944发送命令,使phaseShiftindex++,相位配置的代码如下所示

rlRfPhaseShiftCfg_t my_phaseShiftCfg[4] ={{.chirpStartIdx = 0,.chirpEndIdx= 0,.tx0PhaseShift = phase_index,.tx1PhaseShift = 0,.tx2PhaseShift = 0,.tx3PhaseShift = 0,},{.chirpStartIdx = 1,.chirpEndIdx= 1,.tx0PhaseShift = 0,.tx1PhaseShift = phase_index,.tx2PhaseShift = 0,.tx3PhaseShift = 0,},{.chirpStartIdx = 2,.chirpEndIdx= 2,.tx0PhaseShift = 0,.tx1PhaseShift = 0,.tx2PhaseShift = phase_index,.tx3PhaseShift = 0,},{.chirpStartIdx = 3,.chirpEndIdx= 3,.tx0PhaseShift = 0,.tx1PhaseShift = 0,.tx2PhaseShift = 0,.tx3PhaseShift = phase_index,},};uint32_t my_chirpsetcount ;for(my_chirpsetcount=0;my_chirpsetcount<4;my_chirpsetcount++){if(MMWave_addPhaseShiftChirp ((MMWave_Handle*)ptrMMWaveMCB, &my_phaseShiftCfg[my_chirpsetcount], errCode)!=NULL){CLI_write("add phaseshift done\r\n");}else{CLI_write("add phaseshift failed\r\n");break;}}

请问这样配置发送chirp的相位是否正确?如果波形配置不正确,请问该如何配置波形?

能否通过在.cfg文件中修改profileCfg 的第7位txPhaseShifter来完成对发射的chirp的相位配置?

另外参考“级联一致性和移相器校准手册”,在测量校准矩阵时需要关闭所有的运行时校准,请问该运行时校准是否包括onetime和period校准,目前的测试结果是基于只disable period校准得到的。

谢谢

,

ZhiQiang Lin:

你好

通过matlab解相位,发现在每次sensorStop和sensorStart之间改变了移相器的index后,发射信号的初相也会改变,所以不能以0相移的帧作为参考,而直接使用其他的index的帧相减。现在拟考虑一次发射8个chirp,格式诸如 TX1'  TX1,前者为0相移的参考信号,后者为附带调相值的信号,使能4个TX,分时发送,代码如下

const rlRfPhaseShiftCfg_t my_phaseShiftCfg[4] ={{.chirpStartIdx = 0,.chirpEndIdx= 0,.tx0PhaseShift = 0,.tx1PhaseShift = 0,.tx2PhaseShift = 0,.tx3PhaseShift = 0,},{.chirpStartIdx = 1,.chirpEndIdx= 1,.tx0PhaseShift = chirp_index,.tx1PhaseShift = 0,.tx2PhaseShift = 0,.tx3PhaseShift = 0,},{.chirpStartIdx = 2,.chirpEndIdx= 2,.tx0PhaseShift = 0,.tx1PhaseShift = 0,.tx2PhaseShift = 0,.tx3PhaseShift = 0,},{.chirpStartIdx = 3,.chirpEndIdx= 3,.tx0PhaseShift = 0,.tx1PhaseShift = chirp_index,.tx2PhaseShift = 0,.tx3PhaseShift = 0,},{.chirpStartIdx = 4,.chirpEndIdx= 4,.tx0PhaseShift = 0,.tx1PhaseShift = 0,.tx2PhaseShift = 0,.tx3PhaseShift = 0,},{.chirpStartIdx = 5,.chirpEndIdx= 5,.tx0PhaseShift = 0,.tx1PhaseShift = 0,.tx2PhaseShift = chirp_index,.tx3PhaseShift = 0,},{.chirpStartIdx = 6,.chirpEndIdx= 6,.tx0PhaseShift = 0,.tx1PhaseShift = 0,.tx2PhaseShift = 0,.tx3PhaseShift = 0,},{.chirpStartIdx = 7,.chirpEndIdx= 7,.tx0PhaseShift = 0,.tx1PhaseShift = 0,.tx2PhaseShift = 0,.tx3PhaseShift = chirp_index,},};uint32_t my_chirpsetcount ;for(my_chirpsetcount=0;my_chirpsetcount<8;my_chirpsetcount++){if(MMWave_addPhaseShiftChirp ((MMWave_Handle*)ptrMMWaveMCB, &my_phaseShiftCfg[my_chirpsetcount], errCode)!=NULL){CLI_write("add phaseshift done\r\n");}else{CLI_write("add phaseshift failed\r\n");break;}}

CFG文件的配置如下

4TX_4RX.cfg

我使用如上配置dump出了1D FFT的数据并作2D FFT,从RDMAP上看数据是正常的,但是解出来的相位不对。

请问在这种配置下面出来的数据排布是什么样的,是如下所示

cmplx16ImRe_t x[numTXPatterns][numDopplerChirps][numRX][numRangeBins]
                                       8                           32                    4             256
谢谢

,

Annie Liu:

1) 通过修改 .cfg 文件中 profileCfg 的第 7 位 txPhaseShifter 来完成发出的 chirp 的相位配置。您可以先尝试为此字段提供一些非零值,看看是否观察到正确的值(根据字段中使用的配置)。

2)请注意,字段位需要正确填写。Bit 0 和 1 保留,应设置为零,而位 2 至 7 表示 TX0 相移值。同样,Bit 8和9应为零,第 10 至 15 位表示 TX1 相移值。请确保在配置文件 cfg API 以及 rlRfPhaseShiftCfg_t 结构中正确遵循这一点。

3)此外,对于配置文件配置中添加的phase,我们还可以使用 rlRfSetPhaseShiftConfig API 为phase添加更多抖动。一旦在配置文件 cfg 的单个设备案例中观察到正确的输出,您也可以尝试使用此 API 并检查正确的输出。

请注意,OOB demo还使用了 PhaseShiftConfig API,您也可以将其用作您的应用程序的参考。您可以在 mss_main.c 文件中查看它是如何在demo中实现的。

首先,您能否让我们知道上述 3 个步骤是否可以实现。一旦完成,进一步的措施将变得更容易。

赞(0)
未经允许不得转载:TI中文支持网 » AWR2944EVM: 传感器论坛
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1