作者:Chris Meng

本文基于xWR1642 OOB例程里接收通道饱和检测的功能,介绍了CQ2数据的含义及使用。相关的CQ2数据的信息也适用于其它TI毫米波传感器芯片。

一、CQ2数据简介

CQ2chirp quality数据里的一部分。主要提供的是每个接收通道(RX)的ADC/IF的饱和的信息。CQ2数据的监控是在ADC采样时间内以时间片为单位进行的。在每个时间片内,饱和事件会被记录和统计,所有使能监控的采集通道都会一起统计。统计数据的每个bit都表示一次饱和事件。每个时间片内统计事件量的最大值为2558-bit),统计的事件量超过255也记录为255

1   接收通道(RX)饱和监控的时间片

 

接收通道(RX)饱和监控的时间片分为主时间片(primary slice)和副时间片(secondary slice)。两者的个数相加N的最大值为127。其中主时间片为(N+1)/2个,副时间片为(N-1)/2个。

CQ2数据可以设置为16-bit14-bit或者12-bit存储。图2是以16-bit为例CQ2数据在内存中的排布。其它输出位数的内存排布请参考参考资料[1]里的相关内容。N表示主时间片和副时间片数量的总和。Pn表示主时间片n在监控期间所有监控RX通道的饱和事件的累加值。Sn表示副时间片n在监控期间所有监控RX通道的饱和事件的累加值。

2   16-bit CQ2数据在内存中的排布

OOB例程里面可以通过CQRxSatMonitor参数,对输出的CQ2进行配置。CQRxSatMonitor提供了profile, satMonSel, priSliceDuration, numSlices, rxChanMask四个参数接口。分别对应/control/mmwavelink/include/rl_monitoring.hrlRxSatMonConf_t结构体的相应内容。

1Profile参数指明了当前监控配置适用的profile id。这个profile ID必须要有一个匹配的profilecfg。也就是事先需要配置好这个profile id

2、SatMonSel,这个参数是接收饱和检测模式的设置。01表示仅仅使能对输入ADC的数据进行饱和检测。11表示是同时使能对于输入ADC和输入中频放大器(IFA1)的数据的饱和检测。具体的检测位置,请参考图3的信息。

3 毫米波前端框图

3、priSliceDuration,这个参数用于设定主时间片的持续时间。1 LSB = 0.16 us。

4、numSlices这个参数设定的是主时间片和副时间片的总个数N。

特别注意:根据图1的信息,总的主时间片时间(priSliceDuration*0.16us*(N+1)/2)必须小于Chirp配置的ADC采样时间。所以在设定priSliceDurationnumSlices的时候,必须要注意ADC采样时间的限制。

5、rxChanMask用于对接收通道是否屏蔽饱和监控的设置。

二、CQ2数据实例分析    

xWR1642 OOB demommWave SDK 2.1),默认CQ2的存储为16-bit。最终设置的是寄存器CQCFG1. CQDATAWIDTH

cqConfig.cqDataWidth = 0; /* 16bit for mmw demo */

默认配置文件profile_2d.cfg里面对CQ2监控的设置为:CQRxSatMonitor 0 3 4 127 0。表示使用Profile 0,同时监控ADC和中频放大器输入数据是否饱和,主时间片持续时间为4*0.16us*64=40.96 us,总时间片为127个,所有采集通道都进行监控。这个实例中一次获取的CQ2数据为1024 bytes

ptrDataPathObj->datapathCQ.satMonDataSizePerChirp = 128 N+1=127+1

ptrDataPathObj->numChirpsPerChirpEvent = 8

ptrDataPathObj->datapathCQ.satMonTotalSize =1024 128×8

OOB demo里面有利用EDMACQ2的数据复制到内存里,图4CQ2数据的实例。可以看到这个实例测试时候的时间片总数N0x7F,也就是127个,和配置匹配。图4a)中所有时间片上统计的饱和事件数为0,也就是采集的数据都是没有饱和的。图4b)中统计值出现了非0值,也就是采集中出现了饱和的情况。

(a)                                                                            (b)

   DSSEDMA复制出来的部分CQ2数据 CCS中)

三、数据饱和后的处理

如果在CQ2数据里面发现采集的数据饱和了,可以通过修改profile配置里的rxGain来减小增益。rxGain里面可以配置两个增益,一个是Rx增益,一个是发送的RF的目标增益。发射的RF目标增益可以设置三个值,26dB30dB36dB

如果修改rxGain后,还是检测出了饱和,还可以修改profile里面的TxOutPower参数,对发射功率做补偿,以减小最大发射天线功率。

参考资料:

C:\ti\mmwave_dfp_01_02_00_01\docs\AWR1xxx_Radar_Interface_Control.pdf

C:\ti\mmwave_sdk_02_01_00_04\docs\mmwave_sdk_user_guide.pdf

C:\ti\mmwave_sdk_02_01_00_04\packages\ti\control\mmwavelink\docs\doxygen\html\index.html


Anonymous