UART configuration and operation for LPC55S16

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

UART configuration and operation for LPC55S16

Jump to solution
1,053 Views
yangao
Contributor III

Hi,

I am using the LPC55S16 evaluation board. In our design, there is a UART that needs to be configured for half-duplex operation. It should normally function in RX mode, but when receiving data, it should switch to TX mode to send a response back. Later, at some point, we need to convert the UART to full-duplex operation. Is this achievable? If so, how can it be done?

Regards,

Winston

 

0 Kudos
Reply
1 Solution
1,023 Views
Harry_Zhang
NXP Employee
NXP Employee

HI @yangao 

Yes, you can configure the UART on the LPC55S16 for both half-duplex and full-duplex operation.

Configure UART initially for receiving (RX)

    USART_GetDefaultConfig(&config);
    config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
    config.enableTx     = false;
    config.enableRx     = true;

    USART_Init(DEMO_USART, &config, DEMO_USART_CLK_FREQ);

Configure UART for full-duplex (TX and RX enabled)

    USART_GetDefaultConfig(&config);
    config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
    config.enableTx     = true;
    config.enableRx     = true;

    USART_Init(DEMO_USART, &config, DEMO_USART_CLK_FREQ);

 

BR

Hang

View solution in original post

0 Kudos
Reply
2 Replies
1,005 Views
yangao
Contributor III

Hi,

Follow up question, when  the UART works in half duplex mode, actually I need to set it as one-wire UART - the TX and RX are in the same line. When the UART works in full duplex mode, the TX and RX are separate lines. Is there a solution for this kind of settings?

Regards,

Winston

0 Kudos
Reply
1,024 Views
Harry_Zhang
NXP Employee
NXP Employee

HI @yangao 

Yes, you can configure the UART on the LPC55S16 for both half-duplex and full-duplex operation.

Configure UART initially for receiving (RX)

    USART_GetDefaultConfig(&config);
    config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
    config.enableTx     = false;
    config.enableRx     = true;

    USART_Init(DEMO_USART, &config, DEMO_USART_CLK_FREQ);

Configure UART for full-duplex (TX and RX enabled)

    USART_GetDefaultConfig(&config);
    config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
    config.enableTx     = true;
    config.enableRx     = true;

    USART_Init(DEMO_USART, &config, DEMO_USART_CLK_FREQ);

 

BR

Hang

0 Kudos
Reply