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.

TMS320F28388D: SPI使用DMA進行不定大小傳輸

Part Number: TMS320F28388D

Dear everyone:

想請問一下使用DMA來進行SPI的傳輸,能夠不要重新設定DMA transfer就改變傳輸資料的大小嗎?

以及例如我使用了範例的SPI loopback,第一次傳輸128的byte接收完全沒問題,在第二次傳輸前重新config transfer成64byte,但這樣中間會有一整段是空白的是為什麼呢?

以上,謝謝

  • 你好,

    第一次傳輸128的byte接收完全沒問題,在第二次傳輸前重新config transfer成64byte

    第一次是没有对例程做改动,第二次做了改动是吗?你的改动在什么地方能否说明一下?

  • 您好 謝謝您的回覆,

    其實我主要是想要問說在code運作的途中,DMA的傳輸大小是可變動的嗎?有沒有相關的範例可以參考一下。

    為了測試能不能更改傳輸的大小,我才做了以下實驗

    我在進行第二次傳輸前,修改了transfer的size,但這樣接收的資料會有問題。

    改動如下面的code

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    for(j=0;j<2;j++){
    for(i = 0; i < 128; i++)
    {
    sData[i] = i*(j+1);
    rData[i]= 0;
    }
    done = 0;
    DMA_startChannel(mySPI0_TX_DMA_BASE);
    DMA_startChannel(mySPI0_RX_DMA_BASE);
    while(!done);
    DMA_configTransfer(mySPI0_TX_DMA_BASE, 8U, 0, 1);
    DMA_configTransfer(mySPI0_RX_DMA_BASE, 8U, 0, 1);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    以上, 謝謝

  • 我查看下相关资料后回复您。