From eaa56fa7e7a90522109e097d34be06a4b65013ee Mon Sep 17 00:00:00 2001 From: Andrzej Kaczmarek Date: Mon, 12 Sep 2022 16:37:11 +0200 Subject: [PATCH] nimble/phy/nrf5x: Adjust scheduling offset for FEM turn on Radio enable takes 2 ticks, so if FEM turn on time is more than that we need to account for extra tick in scheduling offset. --- nimble/drivers/nrf5x/include/ble/xcvr.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/nimble/drivers/nrf5x/include/ble/xcvr.h b/nimble/drivers/nrf5x/include/ble/xcvr.h index 757bb80fa..829514b42 100644 --- a/nimble/drivers/nrf5x/include/ble/xcvr.h +++ b/nimble/drivers/nrf5x/include/ble/xcvr.h @@ -24,14 +24,23 @@ extern "C" { #endif +#include + #define XCVR_RX_RADIO_RAMPUP_USECS (40) #define XCVR_TX_RADIO_RAMPUP_USECS (40) -/* - * NOTE: we have to account for the RTC output compare issue. We want it to be - * 5 ticks. +/* We need to account for the RTC compare issue, we want it to be 5 ticks. + * In case FEM turn on time is more than radio enable (i.e. 2 ticks) we want + * to add 1 more tick to compensate for additional delay. + * + * TODO this file should be refactored... */ +#if (MYNEWT_VAL(BLE_LL_FEM_PA) && (MYNEWT_VAL(BLE_LL_FEM_PA_TURN_ON_US) > 60)) || \ + (MYNEWT_VAL(BLE_LL_FEM_LNA) && (MYNEWT_VAL(BLE_LL_FEM_LNA_TURN_ON_US) > 60)) +#define XCVR_PROC_DELAY_USECS (183) +#else #define XCVR_PROC_DELAY_USECS (153) +#endif #define XCVR_RX_START_DELAY_USECS (XCVR_RX_RADIO_RAMPUP_USECS) #define XCVR_TX_START_DELAY_USECS (XCVR_TX_RADIO_RAMPUP_USECS) #define XCVR_TX_SCHED_DELAY_USECS \