UART0 with UART_ASYNC_API not working after migrating from SDK2.6.0 to 2.9.0

Hello,

currently I'm migrating a project from connect SDK 2.6.0 to 2.9.0. After some changes according to the migration guides the project builds fine and also runs. 

As hardware I am using a Nordic Nrf9160DK Revision 1.0.1.

For 2.6.0 everything worked fine but for 2.9.0 UART0 is not working at all. I use the UART0 interface to communicate with another MCU and disabled all the logging features.

I was looking at my prj.conf and saw some issues with the configuration for "CONFIG_UART_ASYNC_API" which stated that there are some missing dependencies "SERIAL_SUPPORT_ASYNC && SERIAL". In this case SERIAL is y and SERIAL_SUPPORT_ASYNC is not active.

Also activating "UART_NRFX" is not possible because the dependency "DT_HAS_NORDIC_NRF_UARTE_ENABLED=n". If I got this right, the dependency is automatically set if UARTE is enabled via device tree. I looked up both zephyr.config files from the build directory and saw that from 2.6.0 to 2.9.0 literally everything changed. For 2.6.0 I see that there are several configurations like "CONFIG_DT_HAS_NORDIC_NRF_UARTE_ENABLED=y" but for 2.9.0 there is not configuration with DT_HAS at all.

What am I missing or what could be the problem ?

  • Hello,

    I was looking at my prj.conf and saw some issues with the configuration for "CONFIG_UART_ASYNC_API" which stated that there are some missing dependencies "SERIAL_SUPPORT_ASYNC && SERIAL". In this case SERIAL is y and SERIAL_SUPPORT_ASYNC is not active

    You may need to enable it (CONFIG_SERIAL_SUPPORT_ASYNC) in the prj.conf file.

    Try adding all of these

    CONFIG_SERIAL_SUPPORT_ASYNC=y
    CONFIG_SERIAL=y
    CONFIG_UART_ASYNC_API=y
    The default pins for UART0 are  P0.26-P0.29. Are these set properly on your application?
    Also activating "UART_NRFX" is not possible because the dependency "DT_HAS_NORDIC_NRF_UARTE_ENABLED=n"

    Because this ''DT_HAS_NORDIC_UARTE__ENABLED=n'' indicates UARTE is not enabled in the device tree. Try enabling this 

    CONFIG_NRFX_UARTE0=y in the prj.conf file.

  • Hello Kazi,

    thanks for your time looking into this.

    I found the the root cause of my problems which is not related to the new SDK version.

    The problem was that some of the configuration was done via the vs code Kconfig GUI from the nrf connect plugin and those where lost when I ported the project to 2.9.0.

    I added the following lines to my proj.conf and UART works again:

    CONFIG_UART_USE_RUNTIME_CONFIGURE=y
    CONFIG_UART_0_NRF_HW_ASYNC=y
    CONFIG_UART_0_NRF_HW_ASYNC_TIMER=2
    Best regards
    David
  • Hello David,

    Great that you have found he way to solve the issues. Thanks for letting us know.

    BR

    Kazi

Related