This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

UART Question (Pull-up configuration)?

Hi,

We have some questions from one of our FW guys regarding the configuration of the UART pin:

I looked at the UARTE driver implementation, it configures the UART Rx line with a no-pull resistor configuration.

Questions:

  1. Why does the driver configure the UART RX line with a no-pull configuration?  If the UART port is left unconnected, this may cause the UART driver to report unexpected communication errors.
  2. When the UART port is left unconnected, does the driver expect the Rx line to be pulled up externally?
  3. Is it okay to modify the driver, i.e., the function apply_config, to configure the UART Rx with an internal pull-up resistor?

Reference:

I found a similar issue on Dev Zone:

https://devzone.nordicsemi.com/f/nordic-q-a/25591/uart-hits-communication-error/100873#100873

 

The goal is to have the UART work when connected but avoid errors when not connected. Can you guys address the questions and explain why the Nordic driver configures it that way?

Thanks!

Parents
  • Hi,

    I don't think it's normal to use a pull-up on the RX pin as it's expected that this is driven by the UART instance on the other side of the serial line. You can modify the driver as you would like, setting a pull-up on the RX line should in most cases be fine but there is a couple of consequences:

    1. You will see a higher current draw during UART activity as the current will flow from VDD through the resistor and down to GND. 
    2. The rise/fall time might be longer, which can result in errors or unstable communication on very high frequencies. This depends on the TX drive strength of the UART instance on the other line etc.

    regards

    Jared 

  • If there is no internal pull-up on the serial Rx line, how do you prevent communication errors (breaks and framing errors) on the Rx line when the serial port is left unconnected?  In some of our implementations, we do not know if the serial port is connected, not connected, or will be connected at some later time.  So, disabling the UART when not in use, is not a viable option.  For these situations, what do you recommend to prevent these communication errors from occurring?

  • The assumption in our examples is that it's indeed connected to something. Makes sense to use a pull in your use case. 

Reply Children
No Data
Related