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

AWR1642BOOST: 关于SRRdemo中EDMA设置问题

Part Number:AWR1642BOOST

TI的专家,您好。我目前使用的是mmwave_automotive_toolbox_3_6_0\labs\lab0002_short_range_radar这个demo,目前我在学习他的EDMA搬移,我不是很能理解它从ADCbuff搬移数据时的配置。具体如下:

我使用的时默认配置,应该是80m的配置。

其关键参数位ADC采样点为256复数采样点。然后我看到该代码文件中dss_data_path.c的关于其配置的代码

我认为其ADCBUFF有两块,他是pingpong复用的,它使用pingEDMA传输偶数RXchirp,用pong传输奇数RXchirp,示意图如下,只有这样我认为才能和其EDMA配置代码对的上,

但是我又看到他有一个参数是chirpThreshold是1,我认为他的作用是配置ADCBUFF存够多少个chirp就切换到另一个ADCBUFF,那么我感觉有一些冲突,我认为只有chirpthreshold配置为4才能和EDMA的配置对的上,这个地方不太明白。

int32_t MmwDemo_dataPathConfigEdma(MmwDemo_DSS_DataPathObj *obj)
{OBJ_OBERVER=obj;uint32_t eventQueue;uint16_t shadowParam = EDMA_NUM_DMA_CHANNELS;int32_t retVal = 0;uint8_t chId;uint8_t subframeIndx;uint32_t numChirpTypes = 1;uint32_t ADCBufferoffset = (32 * 1024)/4;for (subframeIndx = 0; subframeIndx < NUM_SUBFRAMES; subframeIndx++, obj++)//NUM_SUBFRAMES=2{numChirpTypes = 1;if (obj->processingPath == MAX_VEL_ENH_PROCESSING)//VEL_ENH have two chirps{numChirpTypes = 2;}/****************************************************** EDMA configuration for getting ADC data from ADC buffer* to L2 (prior to 1D FFT)* For ADC Buffer to L2 use EDMA-A TPTC =1*****************************************************/eventQueue = 0U;/* Ping - copies chirp samples from even antenna numbers (e.g. RxAnt0 and RxAnt2) */if (subframeIndx == 0){chId = SRR_SF0_EDMA_CH_1D_IN_PING;}else{chId = SRR_SF1_EDMA_CH_1D_IN_PING;}retVal =EDMAutil_configType1(obj->edmaHandle[EDMA_INSTANCE_B],(uint8_t *)(&obj->ADCdataBuf[0]),(uint8_t *)(SOC_translateAddress((uint32_t)&obj->adcDataIn[0], SOC_TranslateAddr_Dir_TO_EDMA, NULL)),chId,false,shadowParam++,obj->numAdcSamples * BYTES_PER_SAMP_1D,MAX(obj->numRxAntennas / 2, 1),ADCBufferoffset * 2,0,eventQueue,NULL,(uintptr_t)obj);if (retVal < 0){return -1;}if (subframeIndx == 0){chId = SRR_SF0_EDMA_CH_1D_IN_PONG;}else{chId = SRR_SF1_EDMA_CH_1D_IN_PONG;}/* Pong - copies chirp samples from odd antenna numbers (e.g. RxAnt1 and RxAnt3)* Note that ADCBufferoffset is in bytes, but ADCdataBuf is in cmplx16ReIm_t.* There are four bytes in one cmplx16ReIm_t*/watch_adcbuf_offset1=(ADCBufferoffset>>2);retVal =EDMAutil_configType1(obj->edmaHandle[EDMA_INSTANCE_B],(uint8_t *)(&obj->ADCdataBuf[(ADCBufferoffset>>2)]),(uint8_t *)(SOC_translateAddress((uint32_t)(&obj->adcDataIn[obj->numRangeBins]), SOC_TranslateAddr_Dir_TO_EDMA, NULL)),chId,false,shadowParam++,obj->numAdcSamples * BYTES_PER_SAMP_1D,MAX(obj->numRxAntennas / 2, 1),ADCBufferoffset * 2,0,eventQueue,NULL,(uintptr_t)obj);if (retVal < 0){return -1;}

Shine:

请看一下下面的帖子。https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/637593/awr1642-about-adc-buffer-chirp-threshold-configuration-in-sdk1-1-02-mmw-demo

赞(0)
未经允许不得转载:TI中文支持网 » AWR1642BOOST: 关于SRRdemo中EDMA设置问题
分享到: 更多 (0)