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.

uart3 can't work on dm814x

 I am trying to connect to bt modules on dm814x board using UART3 interface.

I try the cmd : "#echo 1111111111111111 >> /dev/ttyO0 ",  oscilloscope can grasp signal  from uart0-tx pin, 

I try the cmd : "#echo 1111111111111111 >> /dev/ttyO3 ",but none signal oscilloscope can grasp from uart3-tx pin, 

when boot board,the following msg print

omap_uart.0: ttyO0 at MMIO 0x48020000 (irq = 72) is a OMAP UART0
omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5

when i have the problem ,i try to fix it use following process,but it does not help.

#if 0 
omap_up.uartclk = clk_get_rate(uart_clk);
#else
omap_up.uartclk = OMAP24XX_BASE_BAUD * 16;
#endif

uart pinmux config is ok on uboot,because i can grasp signal use oscilloscope when i send msg  use uart3 on uboot

 why I try the cmd : "#echo 1111111111111111 >> /dev/ttyO3 ",

but none signal oscilloscope can grasp from uart3-tx pin, 

who can help me?

tks!

  • Hello,

    UART0 and UART3 works on different clocks, that might be the issue here. See the below e2e threads for more info:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/191218/712451.aspx#712451

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/253307.aspx

    See also the below wiki page, might be in help:

    http://processors.wiki.ti.com/index.php/TI81xx_PSP_Porting_Guide#Using_different_UART_than_the_default_EVM_configuration_as_console

    Regards,
    Pavel

  • thanks  for you reply.

    i have reference  following 2 Forum to change uart3 functional clock   from sysclk8_ck (192MHz) to sysclk10_ck (48 MHz),but it does not work.

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/191218/712451.aspx#712451

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/253307.aspx

    The UART3 pins are muxed with UART0 pins on our board.And i try to set up to use UART0 pins as UART3 pins by:

     static struct omap_board_mux board_mux[] __initdata = {
            TI814X_MUX(UART0_DSRN, OMAP_MUX_MODE1), /* Set up pin as TXD */  
            TI814X_MUX(UART0_DCDN, OMAP_MUX_MODE1), /* Set up pin as RXD */
    
            /* More entries for other peripheral pins .... */
    
            { .reg_offset = OMAP_MUX_TERMINATOR },
     };

    But when I check the uart0_dcdn & uart0_dsrn val ,they are still  TI81XX_MUX_MODE5 ,is it right????

    # mount -t debugfs none /mnt
    # cd /mnt/omap_mux/
    # cat uart0_dcdn
    name: uart0_dcdn.i2c2_scl_mux0 (0x48140924/0x924 = 0x60020), b NA, t NA
    mode: TI814X_PIN_INPUT_PULL_UP | TI81XX_MUX_MODE5
    signals: uart0_dcdn | uart3_rxd_mux0 | NA | NA | spi0_cs3 | i2c2_scl_mux0 | mmc1_pow | gpio1_2
    # cat uart0_dsrn
    name: uart0_dsrn.i2c2_sda_mux0 (0x48140928/0x928 = 0x60020), b NA, t NA
    mode: TI814X_PIN_INPUT_PULL_UP | TI81XX_MUX_MODE5
    signals: uart0_dsrn | uart3_txd_mux0 | NA | NA | spi0_cs2 | i2c2_sda_mux0 | mmc1_sdwp | gpio1_3
    #

    Uart3 still does not work,

    please help me!

  • thanks , for your answer, i fix the problem ,and uart3 can work now.

    The way to make a fix for me was modify arch\arm\mach-omap2\devices.c

    static void __init ti81xx_video_mux(void)

    {

    ....................................

    #if 0   //
    omap_mux_init_signal("i2c2_scl_mux0",
    TI814X_PULL_UP | TI814X_INPUT_EN);
    omap_mux_init_signal("i2c2_sda_mux0",
    TI814X_PULL_UP | TI814X_INPUT_EN);
    #endif

    .................

    }

    make sure pin mux setting is right to use UART0 pins as UART3 pins ,not i2c2

    excuse my english is pool , ^_^