nimble/phy: Ugly hack for TX/RX transition timing Calculated RX time after TX/RX transition seems to be too short for Coded PHY - not sure why, but adding extra 32us solves the problem.
This is temporary fix until we figure out what is really wrong. Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/5a8f5168 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/5a8f5168 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/5a8f5168 Branch: refs/heads/bluetooth5 Commit: 5a8f5168d264bf8c9e12eb4a2848cc85c1a5e6ea Parents: af6be36 Author: Andrzej Kaczmarek <[email protected]> Authored: Tue May 16 12:12:47 2017 +0200 Committer: Andrzej Kaczmarek <[email protected]> Committed: Wed May 17 11:56:17 2017 +0200 ---------------------------------------------------------------------- hw/drivers/nimble/nrf52/src/ble_phy.c | 8 ++++++++ 1 file changed, 8 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/5a8f5168/hw/drivers/nimble/nrf52/src/ble_phy.c ---------------------------------------------------------------------- diff --git a/hw/drivers/nimble/nrf52/src/ble_phy.c b/hw/drivers/nimble/nrf52/src/ble_phy.c index caf639e..094a5d4 100644 --- a/hw/drivers/nimble/nrf52/src/ble_phy.c +++ b/hw/drivers/nimble/nrf52/src/ble_phy.c @@ -494,6 +494,14 @@ ble_phy_wfr_enable(int txrx, uint32_t wfr_usecs) */ end_time = NRF_TIMER0->CC[2] + BLE_LL_IFS + ble_phy_mode_pdu_start_off(phy) + BLE_LL_JITTER_USECS; + + /* + * FIXME! + * on Coded PHY the time calculated above seems to be too short - adding + * extra 32us "solves" the problem (extra 16us, i.e. doubling the jitter + * is not enough). Need to figure out what is wrong here. + */ + end_time += 32; } else { /* CC[0] is set to when RXEN occurs. NOTE: the extra 16 usecs is jitter */
