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

Get UART error

Hi,

I am using device as ble-Peripheral SDK nRF51_SDK_7.2.0_cf547b5 and softdevice version :s110_nrf51822_7.1.0_softdevice.

problem : I am receiving data on Nordic uart some time i got uart error and error source register contain below value. I using simple uart with interrupt enable.

NRF_UART0->ERRORSRC = 1;

How resolve this problem?

Regards, Himansu Donga

Parents
  • Hi Himansu, if ERRORSRC contains 1 then it appears you are getting an overrun error. This means a start bit was received while the 6-deep hardware RX FIFO is full, data is dropped and overrun is flagged.

    You'll have to figure out why this is happening, it may be due to processor unavailability during radio events or there could be some other reason. Nordic has typically recommended hardware flow control (RTS/CTS) as a solution to RX data loss associated with processor unavailability.

    According to the release notes, processor availability during radio events is improved in the S110 v8.0.0 softdevice with rev 3 devices.

  • @Himansu: SDK 8.0 supports S110 v8.0.0. I agree with Matt, ERRORSRC=1 means OVERRRUN. If you have your softdevice running and your chip is not version 3 chip, you will have maximum 6ms CPU blocking period when the softdevice is active. And you can easily run into the overrun issue if you don't use softdevice.

    On the new chip XLR3, the maximum blocking period is only 240us and allow baudrate to up to 192kbps without overrunning the UART 6 bytes buffer.

Reply
  • @Himansu: SDK 8.0 supports S110 v8.0.0. I agree with Matt, ERRORSRC=1 means OVERRRUN. If you have your softdevice running and your chip is not version 3 chip, you will have maximum 6ms CPU blocking period when the softdevice is active. And you can easily run into the overrun issue if you don't use softdevice.

    On the new chip XLR3, the maximum blocking period is only 240us and allow baudrate to up to 192kbps without overrunning the UART 6 bytes buffer.

Children
No Data
Related