You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by an...@apache.org on 2022/09/14 10:52:41 UTC
[mynewt-nimble] 08/09: nimble/phy/nrf5x: Adjust scheduling offset for FEM turn on
This is an automated email from the ASF dual-hosted git repository.
andk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git
commit eaa56fa7e7a90522109e097d34be06a4b65013ee
Author: Andrzej Kaczmarek <an...@codecoup.pl>
AuthorDate: Mon Sep 12 16:37:11 2022 +0200
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 757bb80f..829514b4 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 <syscfg/syscfg.h>
+
#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 \