From 312e093208777de66cbc084c3bfc3dd710cfcd61 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Thu, 12 May 2011 14:23:18 +0200 Subject: cesar/cp, cesar/hal/phy, cesar/mac/pbproc: use delta external, refs #572 When frequency error is known, use external delta. This means: - RESYS program must be patched, - change delta accumulation coefficients register, - store computed delta in hardware register. --- cesar/hal/phy/inc/context.h | 2 ++ cesar/hal/phy/inc/phy_params.txt | 3 ++- cesar/hal/phy/inc/regs.h | 1 + cesar/hal/phy/inc/resys.h | 8 ++++++++ 4 files changed, 13 insertions(+), 1 deletion(-) (limited to 'cesar/hal/phy/inc') diff --git a/cesar/hal/phy/inc/context.h b/cesar/hal/phy/inc/context.h index ee999c7f54..0a21e76b77 100644 --- a/cesar/hal/phy/inc/context.h +++ b/cesar/hal/phy/inc/context.h @@ -70,6 +70,8 @@ struct phy_t uint resys_gil_table[PHY_GIL_NB]; /** Start PBDMA on RESYS interrupt. */ bool pbdma_start_on_resys_it; + /** Whether frequency error is synchronised. */ + bool freq_error_sync; /** CAP activation mask. */ u8 cap_mask; /** Phy stats. */ diff --git a/cesar/hal/phy/inc/phy_params.txt b/cesar/hal/phy/inc/phy_params.txt index a82fd6a67d..81b7e02324 100644 --- a/cesar/hal/phy/inc/phy_params.txt +++ b/cesar/hal/phy/inc/phy_params.txt @@ -10,7 +10,8 @@ rx_fec_param__tcc_dyn_stop = 1 rx_fec_param__tcc_ber_period = 1 rx_fec_param__tcc_threshold = 0 channel_estim_coef__coef_preamble = 0 -channel_estim_coef__coef_res_delta = 32 +channel_estim_coef__coef_res_delta_internal = 32 +channel_estim_coef__coef_res_delta_external = 26 resys_threshold__nb_syncp_1 = 1995 resys_threshold__nb_syncp_2 = 2379 detect_param_1__lambda = 49152 diff --git a/cesar/hal/phy/inc/regs.h b/cesar/hal/phy/inc/regs.h index 8d5934a609..fb38df84ae 100644 --- a/cesar/hal/phy/inc/regs.h +++ b/cesar/hal/phy/inc/regs.h @@ -272,6 +272,7 @@ typedef u32 uint32_t; /* PHY_DSPSS_MACACKE_DELTA_USED */ #define PHY_DSPSS_MACACKE_DELTA_USED__VALUE 16, 0 #define PHY_DSPSS_MACACKE_DELTA_USED__INTERNAL 24, 24 +# define PHY_DSPSS_MACACKE_DELTA_USED__VALUE__RHO_Q 27 /* TX_GUARD_LENGTH */ # define PHY_DSPSS_TX_GUARD_LENGTH__VALUE_FC_10 192 diff --git a/cesar/hal/phy/inc/resys.h b/cesar/hal/phy/inc/resys.h index f40037accc..dc29b21228 100644 --- a/cesar/hal/phy/inc/resys.h +++ b/cesar/hal/phy/inc/resys.h @@ -20,4 +20,12 @@ void phy_resys_load (phy_t *ctx); +/** + * Patch RESYS program to switch between internal or external program. + * \param ctx phy context + * \param external true for external program + */ +void +phy_resys_patch (phy_t *ctx, bool external); + #endif /* hal_phy_inc_resys_h */ -- cgit v1.2.3