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.

Configuring DMA for UART1

Other Parts Discussed in Thread: OMAP3530

Hi

I am using OMAP3530 UART in polling mode.Here is how I set uart register values


     M_UART_REG_LCR(ul_base_addr_of_uart) = 0xBF; //pg 2752 (selected configuration mode:B)
     M_UART_REG_EFR(ul_base_addr_of_uart) |= (1 << 4);
     M_UART_REG_LCR(ul_base_addr_of_uart) = (uc_data | (uc_stop << 2) | (uc_parity << 3) | 0x80);
     M_UART_REG_MCR(ul_base_addr_of_uart) = (1 << 6); //set this bit to access TLR register.
     M_UART_REG_FCR(ul_base_addr_of_uart) = 0x0F;   /* 8 byte RX FIFO and 8 byte TX FIFO */ //DMA enabled
     M_UART_REG_DLL(ul_base_addr_of_uart) = (0xFF & Aus_uart_baudrate[us_baudrate]);      //Least Significant part of divisor
     M_UART_REG_DLH(ul_base_addr_of_uart) = (0xFF & (Aus_uart_baudrate[us_baudrate] >> 8)); //Most Significant part of the divisor
     M_UART_REG_LCR(ul_base_addr_of_uart) &= 0x7F;
     M_UART_REG_IIR(ul_base_addr_of_uart);
     M_UART_REG_IER(ul_base_addr_of_uart) = 0x00;
     M_UART_REG_MDR1(ul_base_addr_of_uart) = 0x00;

I want to receive and transfer data through DMA and I want to know how to use SDMA registers for UART operations.Please suggest me if something wrong here as I am not able to receive and transmit data through UART.

  • Hi Avinash,

    You could verify the configuration of the UART registers in the Technical reference manual - chapter 17.5.1 UART Programming Model at the link below:

    http://www.ti.com/lit/ug/spruf98x/spruf98x.pdf

    BR

    Tsvetolin Shulev

  • Hi Cvetolin Shulev,

    I want to know  SDMA configuration for transferring data(For instance 1KB)through UART  with the above mentioned configuration of UART registers.Here is the SDMA configuration done by me along with above mentioned configuration of UART registers.I couldn't find proper explanation for the SDMA register bits.

    M_DMA4_GCR  = 0x00000040;
     M_DMA4_CSDP |= 0x00000002;
     M_DMA4_CEN  = buf_len;/*Number of elements with in a frame...Transmitting the entire data with in a frame*/
     M_DMA4_CFN  = 1;  /*Number of frames with in a block*/
     M_DMA4_CSSA = (U32 *)data_buf;
     M_DMA4_CDSA = (U32 *)uart_addr; /*Address of UART THR register*/
     M_DMA4_CCR  = 0x030002A0;

    BR

    Avinash