Does anyone use UART3 of MX53 WinCE7.0 ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Does anyone use UART3 of MX53 WinCE7.0 ?

1,175 Views
Oceanblue
Contributor III

Hello,  I'm working to test UART3 of MX535 based on WinCE7,  i have used the different pins as RXD and TXD pin on customer board (originally on Freescale board, treat PATA_CS_1 as RXD, and PATA_CS_0 as TXD, now on our customer board, EIM_D25 as RXD, and EIM_D24 as TXD), though I have modifed IOMUX in the file of bspserial.c (changed PATA_CS_1 as EIM_D25, and PATA_CS_0 as EIM_D24), but I still failed, does anyone succeed it and share your experience?   Thx.

Labels (1)
Tags (3)
0 Kudos
Reply
4 Replies

955 Views
MichaelOConnor
Contributor I

I am using the MX51 with Linux but this functionality may be similar. I add the following code to the setup_uart() function in mx51_bbg.c in the U-Boot section of LTIB -

     mxc_request_iomux(MX51_PIN_EIM_D25, IOMUX_CONFIG_ALT3);  // uart3 rx
     mxc_iomux_set_pad(MX51_PIN_EIM_D25, pad | PAD_CTL_SRE_FAST);

     mxc_request_iomux(MX51_PIN_EIM_D26, IOMUX_CONFIG_ALT3);  // uart3 tx
     mxc_iomux_set_pad(MX51_PIN_EIM_D26, pad | PAD_CTL_SRE_FAST);

0 Kudos
Reply

955 Views
Oceanblue
Contributor III

Michael, thanks for comments, we are working with WinCE7 , and Linux is working well when use your similar setting. thanks.

0 Kudos
Reply

955 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Check Catalog Item, Third Party -> BSP -> Freescale <Target Platform>: ARMV7 -> Device Drivers -> Serial ->

UART3 serial port support

Also, BSP environment variable BSP_SERIAL_UART3 =1

Please remember that UART3 TX pin is used as DEVELOP_MODE_SW pin and RX pin is used as LVDS1 CABC_EN1 function.

More information  on the section 23 of the Wince BSP reference manual

955 Views
Oceanblue
Contributor III

Thanks for Bio_TICFSL comment, because UART3 TX pin is used as DEVELOP_MODE_SW pin and RX pin is used as LVDS1_CABC_EN1, so we IOMUX them to EIM_D25 as UART3 RXD pin and EIM_D24 as UART3 TXD bin, and modify IOMUX in bspserial.c file as below:

   

  case CSP_BASE_REG_PA_UART3:
            // DCE mode
            //DDKIomuxSetPinMux(DDK_IOMUX_PIN_PATA_CS_1, DDK_IOMUX_PIN_MUXMODE_ALT4, DDK_IOMUX_PIN_SION_REGULAR);//RXD
            //DDKIomuxSetPadConfig(DDK_IOMUX_PAD_PATA_CS_1, DDK_IOMUX_PAD_SLEW_FAST, DDK_IOMUX_PAD_DRIVE_HIGH, DDK_IOMUX_PAD_OPENDRAIN_DISABLE,DDK_IOMUX_PAD_PULL_UP_100K, DDK_IOMUX_PAD_HYSTERESIS_DISABLE,DDK_IOMUX_PAD_VDOEN_NULL,DDK_IOMUX_PAD_OUTVOLT_NULL);
            //DDKIomuxSelectInput(DDK_IOMUX_SELECT_INPUT_UART3_IPP_UART_RXD_MUX, 0x3);

            //DDKIomuxSetPinMux(DDK_IOMUX_PIN_PATA_CS_0, DDK_IOMUX_PIN_MUXMODE_ALT4, DDK_IOMUX_PIN_SION_REGULAR);//TXD
            //DDKIomuxSetPadConfig(DDK_IOMUX_PAD_PATA_CS_0, DDK_IOMUX_PAD_SLEW_FAST, DDK_IOMUX_PAD_DRIVE_HIGH, DDK_IOMUX_PAD_OPENDRAIN_DISABLE,DDK_IOMUX_PAD_PULL_UP_100K,DDK_IOMUX_PAD_HYSTERESIS_DISABLE,DDK_IOMUX_PAD_VDOEN_NULL,DDK_IOMUX_PAD_OUTVOLT_NULL);         

DDKIomuxSetPinMux(DDK_IOMUX_PIN_EIM_D25, DDK_IOMUX_PIN_MUXMODE_ALT2, DDK_IOMUX_PIN_SION_REGULAR);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_EIM_D25, DDK_IOMUX_PAD_SLEW_FAST, DDK_IOMUX_PAD_DRIVE_HIGH, DDK_IOMUX_PAD_OPENDRAIN_DISABLE,DDK_IOMUX_PAD_PULL_UP_100K,DDK_IOMUX_PAD_HYSTERESIS_DISABLE,DDK_IOMUX_PAD_VDOEN_NULL,DDK_IOMUX_PAD_OUTVOLT_NULL);
DDKIomuxSelectInput(DDK_IOMUX_SELECT_INPUT_UART3_IPP_UART_RXD_MUX, 0x3);

DDKIomuxSetPinMux(DDK_IOMUX_PIN_EIM_D24, DDK_IOMUX_PIN_MUXMODE_ALT2, DDK_IOMUX_PIN_SION_REGULAR);//TXD
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_EIM_D24, DDK_IOMUX_PAD_SLEW_FAST, DDK_IOMUX_PAD_DRIVE_HIGH, DDK_IOMUX_PAD_OPENDRAIN_DISABLE,DDK_IOMUX_PAD_PULL_UP_100K, DDK_IOMUX_PAD_HYSTERESIS_DISABLE,DDK_IOMUX_PAD_VDOEN_NULL,DDK_IOMUX_PAD_OUTVOLT_NULL);                          
            break;

       also i set BSP environment varialbe BSP_SERIAL_UART3=1, but UART3 is still not working, and UART1 and UART2 are working well. do you know anywhere else we need modify too? thx.

0 Kudos
Reply