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.

IWR6843ISK: EDMA各类型是否会从触发pingpong传输的问题

Part Number: IWR6843ISK


您好,  

      EDMAutil_configType1关于这种EDMA我已经确定其会在传输完成ping之后自动调用pong。我想请问一下:EDMAutil_configType2a,DMAutil_configType2b,EDMAutil_configType3这几种是否也会自动ping传输完成后自动调用pong。

    下面是我以前提问所得到的答案的网址。IWR6843ISK: 关于EDMA搬移的问题 - 传感器论坛 - 传感器 - E2ETm 设计支持 (ti.com)。 

                                                                                                                                                                                                                                                                                                                                                谢谢您!

  • 你好,

    从下面的代码里,我看到在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);
    }
    }

    ...

  • 我想问一下,您第一次标黄的EDMAstar,在没有开始真正的EDMA搬移的时候为什么他会触发一次呢?

  • 你好,

    进入MmwDemo_processChirp的时候,adc数据已经在adc buffer里了。第一个EDMA触发就是开始从adc buffer里把数据搬移到L2,然后DSP在L2上数据上做FFT,FFT的结果再由EDMA搬移到L3.