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.

C6748 DMA



请问,MCASP通过DMA发送,是不是不管发送几路都只用一个DMA通道?

  • 对,区别在于一个事件发送的数据为elementSize*ChannelCount,即ACNT在一个通道时为一个element,多通道时为几个element.

  • 您好,Tony Tang


    我使用了 C6748 和 8DA Audio CODECs,想根据官方mcasp例程,修改为2路AXRn输出。

    关于McASP和DMA我进行如下操作,但不成功。修改前一路AXR有输出,修改后都没输出。您看有什么问题。

    static struct EDMA3CCPaRAMEntry const txDefaultPar =
    {
    (unsigned int)(EDMA3CC_OPT_DAM | (0x02 << 8u)), /* Opt field */
    (unsigned int)loopBuf, /* source address */
    (unsigned short)(BYTES_PER_SAMPLE), /* aCnt */ // 这里修改为 aCnt * 2
    (unsigned short)(NUM_SAMPLES_LOOP_BUF), /* bCnt */
    (unsigned int) SOC_MCASP_0_DATA_REGS, /* dest address */
    (short) (BYTES_PER_SAMPLE), /* source bIdx */
    (short)(0), /* dest bIdx */
    (unsigned short)(PAR_TX_START * SIZE_PARAMSET), /* link address */
    (unsigned short)(0), /* bCnt reload value */
    (short)(0), /* source cIdx */
    (short)(0), /* dest cIdx */
    (unsigned short)1 /* cCnt */
    };

    static void McASPI2SConfigure(void){

    ...

    McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);

    McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, 12);

    McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AXR(MCASP_XSER_TX) | MCASP_PIN_AXR(12));

    ...

    }

    发送数组大小修改 *2