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.

Mapping of SPI TX DMA REQ and TX DMA REQ to DMA Requests

I am setting up the SPI with the DMA.

I have set the SPIINT0 register's DMAREQENA to 1.

I have mapped the DMA controller to the SPIBUF register.

The TRM states:

The DMA request enable bit (DMA REQ EN) controls the assertion of requests to the DMA controller module. When a character is being transmitted or received, the SPI will signal the DMA via the DMA request signals, TX_DMA_REQ and RX_DMA_REQ. The DMA controller will then perform the required data transfer.

The SPI generates a request on the RX_DMA_REQ line each time the received data is copied to the SPIBUF.

I can find no reference to TX_DMA_REQ or RX_DMA_REQ in the TRM but from Table 4-3 in the TMS570 data sheet I assume that:

When SPI1 receives (i.e. SPIBUF is full) that a request is made to the DMA module on the zeroth DMA request line.

and

When SPI1 transmits (i.e. TXBUF is empty) that a request is made to the DMA module on the fisrt DMA request line.

Is this correct?

I notice that in TMS570 data sheet section 4.2:

The DMA controller on this device supports 16 channels and 32 request lines. Each of the 32 DMA
requests are assigned by default to one of the 32 available channels.

So are there 16 channels or 32 channels?

Steve

 

 

 

  • Steve Newnham said:

    I am setting up the SPI with the DMA.

    I have set the SPIINT0 register's DMAREQENA to 1.

    I have mapped the DMA controller to the SPIBUF register.

    Are you in SPI mode or MIBSPI mode? Looks like SPI mode.

    The TRM states:

    The DMA request enable bit (DMA REQ EN) controls the assertion of requests to the DMA controller module. When a character is being transmitted or received, the SPI will signal the DMA via the DMA request signals, TX_DMA_REQ and RX_DMA_REQ. The DMA controller will then perform the required data transfer.

    The SPI generates a request on the RX_DMA_REQ line each time the received data is copied to the SPIBUF.

    I can find no reference to TX_DMA_REQ or RX_DMA_REQ in the TRM but from Table 4-3 in the TMS570 data sheet I assume that:

    When SPI1 receives (i.e. SPIBUF is full) that a request is made to the DMA module on the zeroth DMA request line.

    Yes, the source is SPIBUF. Rx - DMA Request0, Tx - DMA request 1

    and

    When SPI1 transmits (i.e. TXBUF is empty) that a request is made to the DMA module on the fisrt DMA request line.

    Is this correct?

    Yes, the destination is SPIDAT1.

    I notice that in TMS570 data sheet section 4.2:

    The DMA controller on this device supports 16 channels and 32 request lines. Each of the 32 DMA
    requests are assigned by default to one of the 32 available channels.

    So are there 16 channels or 32 channels?

    16 chan

    Steve

     

     

     

  • Thanks Haixiao,

    but I 'm still not clear about:

     

    The DMA controller on this device supports 16 channels and 32 request lines. Each of the 32 DMA
    requests are assigned by default to one of the 32 available channels.

    So are there 16 channels or 32 channels?

    16 chan

    If there are 16 channels how can each of the 32 DMA request lines be assigned to one of the 32 available channels?

    Are the channels the first sentence refers to different to the channels that the second sentence refers to?

    Steve.

     


  • The datasheet should say:

    The DMA controller on this device supports 16 channels and 32 request lines. Each of the 32 DMA
    requests are assigned by default to one of the 16 available channels.

    It will be fixed in next release. Thanks for find that.

    Regards,

    Haixiao

  • Hi Haixiao,

    with that corection to the typographical error it now makes sense.

    Thank you for your help.  Consider the thread closed

    Steve