Why can't we get ESB intervals below 12 ms?

Recently, we decided we would try ESB, since the power consumption is similar to BLE, but the intervals are much shorter, and we could greatly benefit from this.

I've seen tons of forum posts about people getting low single digit intervals pretty easily using ESB, however, the sample provided by Nordic, when run on our boards, it refuses to go lower than 12 ms.

Even when we mess with the k_sleep interval in the PRX sample, k_sleep(K_MSEC(2)) and k_sleep(K_MSEC(6)) both result in 12 ms intervals.

Our board is using a 32.768 kHz crystal, is this precise enough for the HF clock ESB requires? I thought the nRF52840 didn't have an HF clock, like USB doesn't work well without an external crystal.

We've tried tons of different configurations, but 12 ms seems like the floor, no matter what board we use (including DK). How can we get ~3 ms intervals, based on the PTX and PRX ESB samples?

Related