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

Increase UART Buffers

Hi,

We have a hardware application that prevents us from using flow control to interface with external hardware. We require the NRF51822 to be able to buffer up to 256 bytes of high speed UART information (around 256k bps) and software buffering is resulting in bit errors. Is it possible to get a ble firmware revision of the software stack that can provide this?

Parents
  • Do you have any way of knowing when these bursts of data will come? If so, you may be able to manipulate the connection parameters in some way so that these bursts come only when there will be no radio activity. Connection parameters are explained in this question.

    Normally, the CPU will be blocked for some time every connection event, which occurs every connection interval. If however you set slave latency, the MCU will be woken up every slave latency-th connection event. This means that if your application is to send all this data you receive over the air, you can try to time things such that you will have time in between blocking to receive the data.

    Say you receive these bursts every 4 seconds, and that they last for a full second. If you then have a connection interval of 500 ms, and slave latency of > 3, as long as you don't have any data queued before the burst, no wake-ups should occur, and you should be able to receive the data you need.

Reply
  • Do you have any way of knowing when these bursts of data will come? If so, you may be able to manipulate the connection parameters in some way so that these bursts come only when there will be no radio activity. Connection parameters are explained in this question.

    Normally, the CPU will be blocked for some time every connection event, which occurs every connection interval. If however you set slave latency, the MCU will be woken up every slave latency-th connection event. This means that if your application is to send all this data you receive over the air, you can try to time things such that you will have time in between blocking to receive the data.

    Say you receive these bursts every 4 seconds, and that they last for a full second. If you then have a connection interval of 500 ms, and slave latency of > 3, as long as you don't have any data queued before the burst, no wake-ups should occur, and you should be able to receive the data you need.

Children
No Data
Related