forked from gatsby/datalink_repo
bugfix: correct coarse frequency formulation.
This commit is contained in:
@@ -666,18 +666,18 @@ double Phy_GetCoarseFreqEst(PHY_INST *instPtr)
|
|||||||
return INFINITY; // FIXME
|
return INFINITY; // FIXME
|
||||||
}
|
}
|
||||||
regValue = PhyRead(instPtr, COASE_FREQEST);
|
regValue = PhyRead(instPtr, COASE_FREQEST);
|
||||||
acqFreqIdx = (regValue >> COASE_FREQEST_ACQ_SHIFT) && COASE_FREQEST_ACQ_MASK;
|
acqFreqIdx = (regValue & COASE_FREQEST_ACQ_MASK) >> COASE_FREQEST_ACQ_SHIFT;
|
||||||
acqFreqIdx = 80 - acqFreqIdx;
|
syncFreqIdx = (regValue & COASE_FREQEST_SYNC_MASK) >> COASE_FREQEST_SYNC_SHIFT;
|
||||||
syncFreqIdx = (regValue >> COASE_FREQEST_SYNC_SHIFT) && COASE_FREQEST_SYNC_MASK;
|
|
||||||
syncFreqIdx = 8 - syncFreqIdx;
|
|
||||||
if (frameType >= L1_200KBPS_5MS_FRAME)
|
if (frameType >= L1_200KBPS_5MS_FRAME)
|
||||||
{
|
{
|
||||||
freqEst = (double)acqFreqIdx * (250e3 / 4);
|
// 1.5M Rc
|
||||||
|
freqEst = (double)(80 - acqFreqIdx) * (31.25e3 / 4);
|
||||||
freqEst += (double)syncFreqIdx * 1.5e6 / 64 / 128;
|
freqEst += (double)syncFreqIdx * 1.5e6 / 64 / 128;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
freqEst = acqFreqIdx * (250e3 / 4);
|
// 12M Rc
|
||||||
|
freqEst = (double)(8 - acqFreqIdx) * (250e3 / 4);
|
||||||
freqEst += (double)syncFreqIdx * 12e6 / 64 / 128;
|
freqEst += (double)syncFreqIdx * 12e6 / 64 / 128;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -225,8 +225,8 @@
|
|||||||
#define COASE_FREQEST_ACQ_SHIFT 0
|
#define COASE_FREQEST_ACQ_SHIFT 0
|
||||||
#define COASE_FREQEST_ACQ_WIDTH 8
|
#define COASE_FREQEST_ACQ_WIDTH 8
|
||||||
#define COASE_FREQEST_ACQ_MASK 0x000000FFU
|
#define COASE_FREQEST_ACQ_MASK 0x000000FFU
|
||||||
#define COASE_FREQEST_SYNC_SHIFT 0
|
#define COASE_FREQEST_SYNC_SHIFT 8
|
||||||
#define COASE_FREQEST_SYNC_WIDTH 16
|
#define COASE_FREQEST_SYNC_WIDTH 8
|
||||||
#define COASE_FREQEST_SYNC_MASK 0x000FF00U
|
#define COASE_FREQEST_SYNC_MASK 0x000FF00U
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user