I need DMA support for UART Communication protocal

HI ,

I need dma support for the uart protocol but I can't seem to locate any examples of it being used with an uart. Can anyone give support on this?

regards ,

Goudam

Parents
  • Have you made any modifications to the sample/configuration?

    I didn't modify anything in the code. In Board DTS itself NRF_UARTE enable 

    I am noted one more thing CONFIG_UART_INTERRUPT_DRIVEN was enabled by default it makes any issue with ASYNC uart . If its a error means how to disable the CONFIG_UART_INTERRUPT_DRIVEN ?

    I am try to disable that in prj.conf file by adding

    CONFIG_UART_INTERRUPT_DRIVEN=n

  • You can only set a callback if the UART driver is configured in async mode, otherwise the function will return an error.

    Try adding "CONFIG_UART_ASYNC_API=y" to your prj.conf.

  • Reply Children
    • Try adding "CONFIG_UART_ASYNC_API=y" to your prj.conf.

      Already this one is added in prj.conf file.

       I found the issue in the driver code, where the macro UARTE_ANY_ASYNC was not enabled, so that user space API uart_callback_set(uart, uart_cb, NULL) will not able to set the callback. I also checked with the nrf52840dk board, which has the same code and has the macro UARTE_ANY_ASYNC enabled, but the xiao_ble board does not enabled.

    • How to enable this macro because if i enable this in prj.conf file i got some errors . In windows how to use west build commands for change kconfig file

      error: UART_0_NRF_UARTE (defined at drivers/serial/Kconfig.nrfx:38) is assigned in a configuration
      file, but is not directly user-configurable (has no prompt). It gets its value indirectly from other
      symbols. See http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_UART_0_NRF_UARTE and/or look
      up UART_0_NRF_UARTE in the menuconfig/guiconfig interface. The Application Development Primer,
      Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be
      helpful too.
      
      CMake Error at C:/ncs/v2.4.0/zephyr/cmake/modules/kconfig.cmake:339 (message):
        command failed with return code: 1
      Call Stack (most recent call first):
        C:/ncs/v2.4.0/nrf/cmake/modules/kconfig.cmake:29 (include)
        C:/ncs/v2.4.0/zephyr/cmake/modules/zephyr_default.cmake:115 (include)
        C:/ncs/v2.4.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
        C:/ncs/v2.4.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:97 (include_boilerplate)
        CMakeLists.txt:8 (find_package)
      
      
      -- Configuring incomplete, errors occurred!
      See also "D:/Projects/GE/Bluetooth_nRF2840/workspace/central_uart/build/CMakeFiles/CMakeOutput.log".
      See also "D:/Projects/GE/Bluetooth_nRF2840/workspace/central_uart/build/CMakeFiles/CMakeError.log".
      FAILED: build.ninja 
      C:\ncs\toolchains\31f4403e35\opt\bin\cmake.exe --regenerate-during-build -SD:\Projects\GE\Bluetooth_nRF2840\workspace\central_uart -BD:\Projects\GE\Bluetooth_nRF2840\workspace\central_uart\build
      ninja: error: rebuilding 'build.ninja': subcommand failed
      FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\31f4403e35\opt\bin\cmake.EXE' --build 'd:\Projects\GE\Bluetooth_nRF2840\workspace\central_uart\build'
      
      

    • Hi,

      Try:

      CONFIG_UART_ASYNC_API=y
      
      CONFIG_UART_0_INTERRUPT_DRIVEN=n
      CONFIG_UART_0_ASYNC=y

    • Hi sigurd

      I am thanks for your support now its working for me while add the CONFIG_UART_0_INTERRUPT_DRIVEN=n in prj.conf file

    Related