在使用mmwave sdk进行开发时 配置了ADCBUF 则获取的ADC原始数据格式是什么样的?在哪个手册可以看到?
通过函数ADCBuf_getChanBufAddr获取到ADC数据地址后 该地址下对应数据格式及有效数据长度该如何确定?
如下为adcbuf配置:
在这里我的mmwave配置的为:16位1x复数采样 ADC采样数96 RX开启4个 TX开启3个 TX为TDM-MIMO模式 一帧下有96个chirps
for (channel = 0; channel < SYS_COMMON_NUM_RX_CHANNEL; channel++)
{
rxChanConf.channel = channel;
retVal = ADCBuf_control(MMWave_Global_Params.handle.adcbuf_handle, ADCBufMMWave_CMD_CHANNEL_ENABLE, (void *)&rxChanConf);
if (retVal < 0)
{
System_printf ("Error: ADCBuf Channel Enable failed\n");
}
rxChanConf.offset += 128 * 4 * chirpThresholdVal; //chanDataSize * chirpThresholdVal;
// 128*4的原因是16位复数采样 就是16*2 换算过来就是4byte 然后ADC只采96个 但要按2^N也就是128对齐 所以每个RX通道第96个byte后面的都是0
}
如下为我获取ADC数据的函数 在chirp有效回调中进行(SOC_XWR68XX_MSS_CHIRP_AVAIL_IRQ)
void MMWave_chirpIntCallback(uintptr_t arg)
{
int32_t errCode;
uint8_t channel=0;
uint32_t add=0;
for(channel=0;channel<4;channel++)
{
add = ADCBuf_getChanBufAddr(MMWave_Global_Params.handle.adcbuf_handle,channel,&errCode);
memset(&L3_RAM_Buf[chirp_updata_flag*2048+channel*512],0,512);
memcpy(&L3_RAM_Buf[chirp_updata_flag*2048+channel*512],(void *)add,512);
}
chirp_updata_flag++;
if(chirp_updata_flag==96)
{
chirp_updata_flag=0;
}
}