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

How does the BLE link layer keep the connection by using 32.768K in power saving mode ?

Hi,

I am curious about how the connection is keep while using the 32.768K in BLE link layer in power saving mode. I know that the connection interval is based on multiple of 1.25ms. But the 1.25ms is not an integer multiple of 32.768K. How did it keep the connection with long deep sleep (such as in huge SlaveLatency) and wake up in the right RF channel ?

How did it do this? Is there something like time correction to do this ?

Anyone can tell me the algorithm ? Thanks a lot !

  • Hi

    The 32 kHz clock does have limited accuracy. For BLE connection, both connected devices need to know when to transmit or receive packets. The central sends a packet in a connection event and the peripheral needs to enabled the receiver at the same time in order to receive the packet sent by the central. The perhiperhal does however need to enable the receiver a little sooner than expected to compensate for inaccuracy of the 32kHz clock of both the central and peripheral, and perhaps to compensate as well for the 1/32.768=30 microsecond worst case delay from timer tick until expected connection event instant.

Related