This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

[NRF51822QFAC][SDK11] How to recover Uart errors

Hi,

I'm trying to interface SIM808 with nrf51822 over uart using nrf_drv_uart. Everything works well for some time, but then uart starts reporting error code 1, NRF_UART_ERROR_PARITY_MASK, for all transactions on uart. Re-initializing the uart doesn't correct it. Also the time after which error starts appearing is also random, varies from 15 minutes to 1 hour. The problem is not with the module as when the error occurs, I can still communicate with the module using external uart to usb. Here is what I think is relevant information:

  • Baudrate is 115200
  • Tx is blocking
  • Listen to rx for 20ms
  • Max transaction size for rx is 10 bytes

I can upload the code, if necessary.

Hoping for a positive response and thanks in advance :)

Parents
  • The peer UART is command based, so if a command is completed, it will not broadcast, meaning peer UART is not broadcasting all the times. I have tried disabling and enabling using nrf_drv_uart_uninit and nrf_drv_uart_init functions, but it doesn't solve the issue, I haven't tried clearing the events though. One thing to mention is that I'm disabling/enabling the uart when all the events are complete, RX complete is ensured by using nrf_drv_uart_rx_abort. I am using SDK11, please share code snippet so that I can double check everything.

Reply
  • The peer UART is command based, so if a command is completed, it will not broadcast, meaning peer UART is not broadcasting all the times. I have tried disabling and enabling using nrf_drv_uart_uninit and nrf_drv_uart_init functions, but it doesn't solve the issue, I haven't tried clearing the events though. One thing to mention is that I'm disabling/enabling the uart when all the events are complete, RX complete is ensured by using nrf_drv_uart_rx_abort. I am using SDK11, please share code snippet so that I can double check everything.

Children
No Data
Related