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.

IWR6843AOP: 在使用mmwave sdk进行开发时 配置了ADCBUF 则获取的ADC原始数据格式是什么样的?在哪个手册可以看到?

Part Number: IWR6843AOP

在使用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;
    }
}