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.

TMS320F28377S: McBSPs Slave模式透過DMA直接回傳記憶體內容

Part Number: TMS320F28377S

請問McBSPs能否過透,DMA直接回傳記憶體內容?

如:
DR寫 0x1,透過DMA讀取0x1+offset回傳Dx資料

DR寫 0x2,透過DMA讀取0x2+offset回傳Dx資料

  • 已将您的问题升级到E2E英文论坛,一旦得到回复会立刻回复给您

  • 我认为这应该是可能的;您只是想让 DMA 永远这样做,还是在传输一定数量后停止?我们可以相应地设置源/目标地址,如果每次都只是少量数据,它可能发生在一次Burst和 0 传输中;并使用 CONTINUOUS 位使 DMA 重新准备/重新加载原始地址并等待下一个传入数据。

  • 您只是想让 DMA 永远这样做,还是在传输一定数量后停止?

    永遠這樣做。

    我们可以相应地设置源/目标地址。

    可以根據輸入的DR資料,回傳對應的設定位址嗎?


    DR=0x1,回傳 (0x1+設定的位址) 的資料
    DR=0x2,回傳 (0x2+設定的位址) 的資料

  • 已为您联系TI资深工程师,您也可以访问https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1201294/tms320f28377s-mcbsps-slave-mode-directly-returns-memory-content-through-dma关注最新进展

  • 您能以表格形式给出数据读/写的例子吗?不太清楚return(0x1+address set)是什么意思,您的意思是写回0x1以及0x1写入的地址吗?

  •   Fixed address set 0x100
    C2000 Slaver
    N DR Dx
    1 0x1 x
    2 x Data(address 0x1+0x100)
    3 0x2 x
    4 x Data(address 0x2+0x100)

    這樣清楚嗎?

  • 我相信我明白了。所以,我认为如果您不要求将数据值写入内存,这很容易做到;即当接收到数据时,DMA 将其从接收缓冲区复制到发送缓冲区,这样就行了。

    如果我们也需要写入内存,则需要 2 个 DMA 资源。 一个DMA将 DR 数据写入 RAM,然后从第一个 DMA ISR 触发另一个 DMA,将数据写回 DX。 DMA 应保持同步,并使用更多或仅 1 个字的内存。