nrfx_uarte_rx Bytes disappearing

Softdevice 6.1.1

SDK 15.3

We have been using the nrfx_uart driver but realized we need to have multiple instances on our new hardware so have changed to using nrfx_uarte driver and now we are losing bytes when Receiving.

Our UART messaging protocol is as follows: 

[Type] [Length] [Data]

We do either 1 of these 3 things on the event callback (depending on our state e.g. if we have Type we then get length, if we have Length we get remaining etc...)

1. nrfx_uart_rx(&instance, buffer, 1); -> get the Type of 1 byte

2. nrfx_uart_rx(&instance, buffer, 1); -> get the length of renaming data

3. nrfx_uart_rx(&instance, buffer, length); -> get remaining data

This was working perfectly using the nrfx_uart driver but does not work using nrfx_uarte

an example message would be sent from a Linux machine  and looks like this -> { 0x05, 0x0F, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, }

Message Type 5, has a length of 15

I think i don't have good enough understanding of the difference between nrfx_uart_rx and nrfx_uarte_rx?? what is the difference between the two? and why would i not be able to receive a message like the above? i find it happens with messages that are larger than 8 bytes

Any help would be appreciated.

Regards,

David Hutchinson

Related