We are trying to implement UART driver that will work together with SoftDevice. We can't use UART or UARTE with single-byte buffers since high-priority task like SoftDevice will cause data loss.
The main idea is to use big RAM buffers for UARTE and switch them using short-cut ENDRX->STARTRX and calling periodically STOPRX task. The approach is very similar to libUARTE async library
The problem is that we see Framing errors when we call STOPRX (causing short-cut ENDRX->STARTRX). Framing error don't happen if we use just this big buffers and have they switched by filling up (do not call STOPRX task, n). We have lost a couple of bytes with framing error.
We checked the actual UART input using oscilloscope when such a framing error happened in software and it was perfectly fine, the only difference is that we were triggering STOPRX task periodicaly.
PS: As far as I read around here triggering STOPRX potentially can cause loss of data. Don't clearly understand why, but anyway. Is it possible to just switch buffers by other way?