This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

UART + DMA: how to ?

From the specification exert below, I understand, that setting FIFO enable to 1, enables also the DMA Mode. Does it mean the DMA Mode operates "automatically"? I cannot see a relationship, that I have to configure the DMA in some way. In other ways, how should I read the below specification regarding operating or not with DMA?

"UARTn FIFO Control Register

Bit    Symbol

0       FIFO Enable           1  Active high enable for both UARTn Rx and TX FIFOs and UnFCR[7:1] access.
                                              This bit must be set for proper UART operation. Any transition on this bit will
                                              automatically clear the related UART FIFOs.

3       DMA Mode             1 When the FIFO enable bit (bit 0 of this register) is set, this bit selects the DMA
                                               mode

4.6.1 DMA Operation
The user can optionally operate the UART transmit and/or receive using DMA. The DMA
mode is determined by the DMA Mode Select bit in the FCR register. This bit only has an
affect when the FIFOs are enabled via the FIFO Enable bit in the FCR register.


UART receiver DMA


In DMA mode, the receiver DMA request is asserted on the event of the receiver FIFO
level becoming equal to or greater than trigger level, or if a character timeout occurs."


UM10360
LPC17xx User manual
Rev. 01 — 4 January 2010

Parents
  • As others have suggested you definitely need to ask this sort of question on the device manufacturer's forum to get a specific reply.

    However just based on what the above spec quotes say, if you enable the UART FIFOs this then allows you to specify whether the UART then uses DMA requests to service the UART FIFOs, or else perhaps just uses interrupts to control FIFO access requests. These DMA requests, if enabled, will be generated when the UART FIFO contents pass trigger points indicating when data needs to be read from the RX FIFO or written to the TX FIFO, the aim then being to keep the FIFO contents updated to allow constant serial comms.

    As to what the FIFO trigger levels are, or what DMA request types might be generated, and how they might be configured, those are the details you would need to find elsewhere in the device's documentation, or by contacting the aforementioned manufacturer forums.

    I think that's about the most you could expect anyone here to determine based on the documentation segment. Hopefully it agrees with what you have understood, and what you subsequently get from the manufacturer's documentation or forums.

Reply
  • As others have suggested you definitely need to ask this sort of question on the device manufacturer's forum to get a specific reply.

    However just based on what the above spec quotes say, if you enable the UART FIFOs this then allows you to specify whether the UART then uses DMA requests to service the UART FIFOs, or else perhaps just uses interrupts to control FIFO access requests. These DMA requests, if enabled, will be generated when the UART FIFO contents pass trigger points indicating when data needs to be read from the RX FIFO or written to the TX FIFO, the aim then being to keep the FIFO contents updated to allow constant serial comms.

    As to what the FIFO trigger levels are, or what DMA request types might be generated, and how they might be configured, those are the details you would need to find elsewhere in the device's documentation, or by contacting the aforementioned manufacturer forums.

    I think that's about the most you could expect anyone here to determine based on the documentation segment. Hopefully it agrees with what you have understood, and what you subsequently get from the manufacturer's documentation or forums.

Children