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     \