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

The achievable shortest CPU blocking time and longest interval while being detectable by other BLE devices

Assuming the system is composed of one device using nRF51822 and iPhone/PC, If we want nRF51822 detectable by iPhone/PC so that iPhone/PC can connect nRF51822 when they want, how short CPU blocking time and how long interval between two blocking time can we achieve?

Thanks!

Parents
  • The CPU will be blocked for each radio event, either an advertising event or a connection event. These happen with user configurable intervals, advertising events every advertising interval and connection events every connection interval. The advertising interval will determine how fast it is possible to create a connection, while the connection interval will set a limit for maximum throughput.

    The length of an advertising interval will be dependent on the size of the advertisement packet, and whether or not someone sends a scan request, which will be responded to with a scan response. The minimum time should be around 2 ms.

    The length of a connection interval will be dependent on the data transmitted and the accuracy of low frequency crystal on both Central and Peripheral. If no data is transmitted and 20 ppm crystals are used, the time for a connection event should be a little less than 1 ms.

    Edit: Logic analyzer screenshots added, for code that does a continuous GPIO toggle in the main loop, thereby essentially showing the blocking time. Advertising data is ~28 B, no data transmitted in the connection event. Time to run between advertising channels is ~0.2 ms, blocking time ~0.8 ms. Block in prepare is ~0.1 ms, block time last channel ~1 ms.

    Connection interval is 500 ms, Central device is Master Control Panel. Main blocking is ~1 ms, prepare is ~0.1 ms.

    Please note that this should be considered experimental data and not specification, just an example of how this can work in a specific application.

    advertising_event.png

    connected-event.png

  • Hi Ole, I have one more question:) I saw "Table 14 Radio Notification timing ranges" in <S110_SoftDevice_Specification v1.1.pdf>. t_evnt is: 550 to 1300us Advertiser - 0 to 31 bytes payload, 3 channels). P is: <=150 us. According to this, for an advertising event, the blocking time can be P+t_event: 700us ~1450us. The minimum 700us is less than 2ms. Does your 2ms count a scan response in? or I have some misunderstanding here? Thanks.

Reply
  • Hi Ole, I have one more question:) I saw "Table 14 Radio Notification timing ranges" in <S110_SoftDevice_Specification v1.1.pdf>. t_evnt is: 550 to 1300us Advertiser - 0 to 31 bytes payload, 3 channels). P is: <=150 us. According to this, for an advertising event, the blocking time can be P+t_event: 700us ~1450us. The minimum 700us is less than 2ms. Does your 2ms count a scan response in? or I have some misunderstanding here? Thanks.

Children
No Data
Related