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.

[参考译文] RTOS/TMS320C5534:乒乓模式下的 I2S/DMA 传输问题

Guru**** 1554590 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/665035/rtos-tms320c5534-i2s-dma-transfer-in-ping-pong-mode-issue

器件型号:TMS320C5534

工具/软件:TI-RTOS

您好!

我正在尝试设置一个从传入 I2S 流(I2S1)到缓冲器的 DMA 传输以进行处理。 我想使用乒乓模式、但不幸的是、我无法这样做。

正常的 DMA 传输工作正常、数据在我的缓冲区中正确显示。 但是、无论我尝试了什么不同的组合、都只使用缓冲器的一半。

这是我对 DMA 的设置(我使用 CSL 3.0.8)

// I2S0 (编解码器 I2S 端口)
//通道0:从 I2S 到 PP_CodecUL
//(允许的通道0..3 - DMA0)


dmaConfig.pingPongMode = CSL_DMA_PING_PON_ENABLE;
dmaConfig.autoMode = CSL_DMA_AUTORELOAD_ENABLE;
dmaConfig.burstLen = CSL_DMA_TXBUST_1WORD;
dmaConfig.trigger = CSL_DMA_EVENT_TRIGGER;
dmaConfig.dmaInt = CSL_DMA_INTERRUPT_ENABLE;
dmaConfig.dataLen = PP_SIZE;
dmaConfig.trfType = CSL_DMA_TRANSIT_IO_MEMORY;

dmaConfig.chanDir = CSL_DMA_READ;
dmaConfig.dmaEvt = CSL_DMA_EVT_I2S0_RX; // I2S1上的麦克风(CSL_DMA_EVT_I2S0_RX)
dmaConfig.srcAddr =(UINT32)(0x2828);// I2S0接收左侧数据0寄存器
dmaConfig.destAddr =(uint32) PP_codecUL;

hDMA_CodecUL = DMA_open (CSL_DMA_CHAN0、&dmaCodecUL_Obj、&STATUS);
dma_config (hdma_CodecUL、&dmaConfig);

lengh PP_size 等于乒乓缓冲器的总长度(以字节为单位)、但似乎仅使用缓冲器的前半部分。

当在第一个 DMA 中断处中断时、我清楚地看到缓冲区的前半部分被占用、所以我希望看到第二个部分在第二个时被填满

DMA 中断、不正确。 只有上半部分会不断重复使用。

有什么想法吗?

谢谢、

Jacques

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已通知软件团队。 他们将直接在此处发布反馈。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    雅克

    您是否能够使独立的 pong-pong 示例正常工作?
    C:\ti\c55_lp\c55_CSL_3.08\ccs_v6.x_examples\dma\CSL_dma_PingPoongExamples\CSL_dma_PingPoongExample.c

    Lali
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是的、这可以正常工作、这是我首先测试的东西。 我看到的唯一区别是、在我的情况下、我正在进行转账

    从 I2S 传输到存储器。

    此致

    Jacques

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    所以它最终起作用了... I2S 和 DMA setimgs 的组合、它们将紧密匹配