Part Number:IWR6843ISK
您好,
EDMAutil_configType1关于这种EDMA我已经确定其会在传输完成ping之后自动调用pong。我想请问一下:EDMAutil_configType2a,DMAutil_configType2b,EDMAutil_configType3这几种是否也会自动ping传输完成后自动调用pong。
下面是我以前提问所得到的答案的网址。IWR6843ISK: 关于EDMA搬移的问题 – 传感器论坛 – 传感器 – E2E 设计支持 (ti.com)。
谢谢您!
Chris Meng:
你好,
从下面的代码里,我看到在68xx_Sense_and_Direct_HVAC_Control这个的demo获取adc buffer的edma是调用函数来触发的。关于其他几个edma的API,我建议你通过代码来了解他们是如何使用的。另,建议下次提问题的时候说明一下你看的代码的出处。
68xx_Sense_and_Direct_HVAC_Control\src\dss\dss_data_path.c
…
void MmwDemo_processChirp(MmwDemo_DSS_DataPathObj *obj){ uint32_t antIndx, baseIdx; volatile uint32_t startTime;
if(obj->chirpCount > 1) //verify if ping(or pong) buffer is free for odd(or even) chirps { MmwDemo_dataPathWait1DOutputData (obj, pingPongId(obj->chirpCount)); }
/* Kick off DMA to fetch data from ADC buffer for first channel */ EDMA_startDmaTransfer(obj->edmaHandle[EDMA_INSTANCE_A], MMW_EDMA_CH_1D_IN_PING);
obj->rxAntennaCount = 0; baseIdx = obj->txAntennaCount * obj->numPhyRxAntennas * obj->numChirpsPerFrame;
/* 1d fft for first antenna, followed by kicking off the DMA of fft output */ for (antIndx = 0; antIndx < obj->numPhyRxAntennas; antIndx++) { /* kick off DMA to fetch data for next antenna */ if (antIndx < (obj->numPhyRxAntennas – 1)) { if (isPong(antIndx)) { EDMA_startDmaTransfer(obj->edmaHandle[EDMA_INSTANCE_A], MMW_EDMA_CH_1D_IN_PING); } else { EDMA_startDmaTransfer(obj->edmaHandle[EDMA_INSTANCE_A], MMW_EDMA_CH_1D_IN_PONG); } }
…
,
jian zhang:
好的,谢谢您
,
jian zhang:
我想问一下,您第一次标黄的EDMAstar,在没有开始真正的EDMA搬移的时候为什么他会触发一次呢?
,
Chris Meng:
你好,
进入MmwDemo_processChirp的时候,adc数据已经在adc buffer里了。第一个EDMA触发就是开始从adc buffer里把数据搬移到L2,然后DSP在L2上数据上做FFT,FFT的结果再由EDMA搬移到L3.