Hi Everyone,
I changed my old app_uart library for the new libuarte, which works really well whithout a SoftDevice.
Now I am struggling to make it work in my final application which runs a SoftDevice.
I looked into previous topics but none of them is actually fixing my issue:
https://devzone.nordicsemi.com/f/nordic-q-a/41215/general-libuarte-questions
And especially this one which is very close https://devzone.nordicsemi.com/f/nordic-q-a/56916/bluetooth-softdevice-high-speed-uart-libuarte
What I understood so far is that the SoftDevice is using RTC0 & TIMER0 instances which I cannot use for libuarte. On my app, I am also using app_timer library in order to use multiple timers. app_timer is using TIMER1 instance.
Libuarte requires 2 timers and one RTC. I tried many different configurations, but I can't make it work as expected
#using TIMER2, TIMER3 and RTC2 NRF_LIBUARTE_ASYNC_DEFINE(libuarte, 0, 2, 2, 3, 255, 3);
In this case I get UART error 0x10000 on every RX event
#using TIMER2 and app_timer (RTC1) NRF_LIBUARTE_ASYNC_DEFINE(libuarte, 0, 2, NRF_LIBUARTE_PERIPHERAL_NOT_USED, NRF_LIBUARTE_PERIPHERAL_NOT_USED, 255, 3);
In this case I get random UART errors on every RX event
Before initalizing UART communication, I first enable softdevice and app_timer_init()
Note that I am not using any legacy drivers, only nrfx.
Is there any sdk_config or init specific requirements to make libuarte work with a softdevice?
Best regards