update to superfemto v2.4

This commit is contained in:
Harald Welte 2012-10-27 19:22:57 +02:00
parent 079c61c3fb
commit 3c025df32c
1 changed files with 30 additions and 35 deletions

View File

@ -13,7 +13,7 @@
#include "gsml1const.h"
#define SUPERFEMTO_API(x,y,z) ((x << 16) | (y << 8) | z)
#define SUPERFEMTO_API_VERSION SUPERFEMTO_API(2,2,0)
#define SUPERFEMTO_API_VERSION SUPERFEMTO_API(2,4,0)
/****************************************************************************
* Const *
@ -168,7 +168,7 @@ typedef struct SuperFemto_ActivateRfReq
uint8_t u8UsePdtchMsgq; ///< Set to '1' to use a separate MSGQUEUE for PDTCH primitives
} msgq;
// TRX RF clock options
// RF options
struct
{
int iClkCor; ///< Clock correction value in PPB.
@ -177,13 +177,6 @@ typedef struct SuperFemto_ActivateRfReq
float fMaxTxPower; ///< Nominal maximum TX power in dBm
uint8_t u8UseExtAtten; ///< Use the external attenuator to control TX power (0:No, 1:Yes)
} rfTrx;
// RX RF clock options
struct
{
int iClkCor; ///< Clock calibration value in PPB.
SuperFemto_ClkSrcId_t clkSrc; ///< Clock source (0:None, 1:OCXO, 2:TCXO, 3:External, 4:GPS PPS, 5:TRX, 6:reserved, 7:Edge)
} rfRx;
} SuperFemto_ActivateRfReq_t;
@ -257,20 +250,13 @@ typedef struct SuperFemto_RfClockInfoReq
***************************************************************************/
typedef struct SuperFemto_RfClockSetupReq
{
// TRX RF clock options
// RF clock options
struct
{
int iClkCor; ///< Clock correction value in PPB.
SuperFemto_ClkSrcId_t clkSrc; ///< Clock source (0:None, 1:OCXO, 2:TCXO, 3:External, 4:GPS PPS, 5:reserved, 6:RX, 7:Edge)
} rfTrx;
// RX RF clock options
struct
{
int iClkCor; ///< Clock calibration value in PPB.
SuperFemto_ClkSrcId_t clkSrc; ///< Clock source (0:None, 1:OCXO, 2:TCXO, 3:External, 4:GPS PPS, 5:TRX, 6:reserved, 7:Edge)
} rfRx;
// RF clock calibration
struct {
SuperFemto_ClkSrcId_t clkSrc; ///< Reference clock source (0:Off, 1:OCXO, 2:TCXO, 3:External, 4:GPS PPS, 5:reserved, 6:reserved, 7:Edge, 8:NL)
@ -305,19 +291,12 @@ typedef struct SuperFemto_RfClockSetupCnf
***************************************************************************/
typedef struct SuperFemto_RfClockInfoCnf
{
// TRX RF clock options
// RF clock options
struct
{
int iClkCor; ///< Clock correction value in PPB.
SuperFemto_ClkSrcId_t clkSrc; ///< Clock source (0:None, 1:OCXO, 2:TCXO, 3:External, 4:GPS PPS, 5:reserved, 6:RX, 7:Edge)
} rfTrx;
// RX RF clock options
struct
{
int iClkCor; ///< Clock calibration value in PPB.
SuperFemto_ClkSrcId_t clkSrc; ///< Clock source (0:None, 1:OCXO, 2:TCXO, 3:External, 4:GPS PPS, 5:TRX, 6:reserved, 7:Edge)
} rfRx;
// RF clock calibration
struct {
@ -359,6 +338,8 @@ typedef struct SuperFemto_Layer1ResetCnf
} SuperFemto_Layer1ResetCnf_t;
/****************************************************************************
* Struct : SuperFemto_GetTxCalibTblReq_t
************************************************************************//**
@ -390,12 +371,14 @@ typedef struct SuperFemto_GetTxCalibTblCnf
GsmL1_Status_t status;
GsmL1_FreqBand_t freqBand; ///< GSM Frequency band
float fGain[80]; ///< Gain setting for output level from +50dBm to -29 dBm
float fGainCorrVsArfcn[374]; /**< Gain correction (in dBm) for each ARFCN
float fTxGainGmsk[80]; ///< Gain setting for GMSK output level from +50dBm to -29 dBm
float fTx8PskCorr; ///< Gain adjustment for 8 PSK (default to +3.25 dB)
float fTxExtAttCorr[31]; ///< Gain adjustment for external attenuator (0:@1dB, 1:@2dB, ..., 31:@32dB)
float fTxRollOffCorr[374]; /**< Gain correction for each ARFCN
for GSM-850 : 0=128, 1:129, ..., 123:251, [124-373]:unused
for GSM-900 : 0=955, 1:956, ..., 70:1, ..., 317:956, [318-373]:unused
for DCS-1800: 0=512, 1:513, ..., 373:885
for PCS-1900: 0=512, 1:513, ..., 298:810, [299-373]:unused */
for PCS-1900: 0=512, 1:513, ..., 298:810, [299-373]:unused */
} SuperFemto_GetTxCalibTblCnf_t;
/****************************************************************************
@ -413,12 +396,14 @@ typedef struct SuperFemto_SetTxCalibTblReq
{
GsmL1_FreqBand_t freqBand; ///< GSM Frequency band
float fGain[80]; ///< Gain setting for output level from +50dBm to -29 dBm
float fGainCorrVsArfcn[374]; /***< Gain correction (in dBm) for each ARFCN
float fTxGainGmsk[80]; ///< Gain setting for GMSK output level from +50dBm to -29 dBm
float fTx8PskCorr; ///< Gain adjustment for 8 PSK (default to +3.25 dB)
float fTxExtAttCorr[31]; ///< Gain adjustment for external attenuator (0:@1dB, 1:@2dB, ..., 31:@32dB)
float fTxRollOffCorr[374]; /**< Gain correction for each ARFCN
for GSM-850 : 0=128, 1:129, ..., 123:251, [124-373]:unused
for GSM-900 : 0=955, 1:956, ..., 70:1, ..., 317:956, [318-373]:unused
for DCS-1800: 0=512, 1:513, ..., 373:885
for PCS-1900: 0=512, 1:513, ..., 298:810, [299-373]:unused */
for PCS-1900: 0=512, 1:513, ..., 298:810, [299-373]:unused */
} SuperFemto_SetTxCalibTblReq_t;
/****************************************************************************
@ -467,13 +452,18 @@ typedef struct SuperFemto_GetRxCalibTblCnf
{
GsmL1_Status_t status;
GsmL1_FreqBand_t freqBand; ///< GSM Frequency band
uint8_t bUplink; ///< Direction (0:Downlink, 1:Uplink)
float fRssiCorrVsArfcn[374]; /***< RSSI correction (in dBm) for each ARFCN
uint8_t bUplink; ///< Direction (0:Downlink, 1:Uplink)
float fExtRxGain; ///< External RX gain
float fRxMixGainCorr; ///< Mixer gain error compensation
float fRxLnaGainCorr[3]; ///< LNA gain error compensation (1:@-12 dB, 2:@-24 dB, 3:@-36 dB)
float fRxRollOffCorr[374]; /***< Frequency roll-off compensation
for GSM-850 : 0=128, 1:129, ..., 123:251, [124-373]:unused
for GSM-900 : 0=955, 1:956, ..., 70:1, ..., 317:956, [318-373]:unused
for DCS-1800: 0=512, 1:513, ..., 373:885
for PCS-1900: 0=512, 1:513, ..., 298:810, [299-373]:unused */
uint8_t u8IqImbalMode; ///< IQ imbalance mode (0:off, 1:on, 2:auto)
uint16_t u16IqImbalCorr[4]; ///< IQ imbalance compensation
} SuperFemto_GetRxCalibTblCnf_t;
/****************************************************************************
@ -492,11 +482,16 @@ typedef struct SuperFemto_SetRxCalibTblReq
GsmL1_FreqBand_t freqBand; ///< GSM Frequency band
uint8_t bUplink; ///< Direction (0:Downlink, 1:Uplink)
float fRssiCorrVsArfcn[374]; /***< RSSI correction (in dBm) for each ARFCN
float fExtRxGain; ///< External RX gain
float fRxMixGainCorr; ///< Mixer gain error compensation
float fRxLnaGainCorr[3]; ///< LNA gain error compensation (1:@-12 dB, 2:@-24 dB, 3:@-36 dB)
float fRxRollOffCorr[374]; /***< Frequency roll-off compensation
for GSM-850 : 0=128, 1:129, ..., 123:251, [124-373]:unused
for GSM-900 : 0=955, 1:956, ..., 70:1, ..., 317:956, [318-373]:unused
for DCS-1800: 0=512, 1:513, ..., 373:885
for PCS-1900: 0=512, 1:513, ..., 298:810, [299-373]:unused */
uint8_t u8IqImbalMode; ///< IQ imbalance mode (0:off, 1:on, 2:auto)
uint16_t u16IqImbalCorr[4]; ///< IQ imbalance compensation
} SuperFemto_SetRxCalibTblReq_t;
/****************************************************************************