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.

UART

Other Parts Discussed in Thread: AM3359

Any ideas on what I am missing to get UART2 to work? I believe I have modified the following three functions correctly to get UART2 working. Is there some other clock I need to enable? This is on my own board that is wired to use UART2 ---- this is not EVM or Beagle

UART0ModuleClkConfig

UARTPinMuxSetup

UARTStdioInitExpClk

Thanks

  • Turns out that CONTROL_CONF_UART_RXD(n) and  CONTROL_CONF_UART_TXD(n)   don't give the correct offset for UART2 and UART3. Have to use the offsets

    CONTROL_CONF_MII1_TXCLK

    CONTROL_CONF_MII1_RXCLK

    CONTROL_CONF_MII1_RXD2

    CONTROL_CONF_MII1_RXD3

  • Hello Brad,

    I see that you have targeted the right functions to change to port to UART2 instance. I suppose you are referring to these two files:

    • utils/uartStdio.c
    • platform/evmAM335x/uartConsole.c

     The changes that need to be made are:

    • UART0ModuleClkConfig:

    This function has to be ported to UART2 instance. Note that UART0 is in Wake-up domain and  UART2 is in Peripheral domain. You have to refer to Control Module chapter in AM335x TRM to find the registers relevant to UART2 and set the appropriate bits. 

    • UARTPinMuxSetup:

    As it is obvious, the StaterWare package has not provided the code to pin multiplex UART2 pins. The UART2 pins namely UART2_TXD and UART2_RXD are available on different pins and in different Mux modes. The offset addresses of each of these pins are different.

    To give you an example:

    ‘uart2_rxd_mux2’  and  ‘uart2_txd_mux2’ pins are available with offset addresses 0x0900 and 0x0904 respectively. The multiplexing mode is Mode3.

    ‘uart2_rxd_mux1’ and ‘uart2_txd_mux1’ pins are available with offset addresses 0x090C and 0x0910 respectively. The multiplexing mode is Mode6.

     You have carefully do the correct pin multiplexing.

    • UARTStdioInitExpClk() :

    This function need not be changed. The file ‘uartConsole.c’ mentioned above uses the UART0 Base address for the various UART functions.

    #define UART_CONSOLE_BASE                    (SOC_UART_0_REGS)

    You have to change the right-hand macro to SOC_UART_2_REGS to use UART2 registers.

    Please revert if you have any queries.

     

    Thanks and Regards.

    Gurudutt.

  • Hi,
    I am using ICE AM3359. I am new to this board and struggling with ADC sample project that comes with sdk. In this project UART0 is used to connect to the serial console. Can it be changed to UART5, because in ICE v2 block diagram UART to USB converter is connected using UART5 .

    Thanks & Regards
    Rohan
  • Rohan,

    Could you please take a look at the .pdf posted at the bottom of this thread? It might provide some guidance on changing the UART instance along with the pin-mux settings.

    Lali