⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maui_cal.h

📁 Atheros AP Test with Agilent N4010A source code
💻 H
📖 第 1 页 / 共 2 页
字号:
/* maui_cal.h - Maui calibration header definitions */

/* Copyright (c) 2000 Atheros Communications, Inc., All Rights Reserved */

#ifndef __INCmauicalh
#define __INCmauicalh
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* === Macro Definitions === */
#define WARNINGS_ON 0

// defines

#define MAX_RATES		8

#define INVALID_INDEX	9999

// unique EEPROM header maps defines
#define EEPROM_SIZE_16K  1

#define EEPROM_MAJOR_VERSION ART_VERSION_MAJOR
#define EEPROM_MINOR_VERSION ART_VERSION_MINOR

#define SENS11A_48 (-69)
#define SENS11A_54 (-68)

#define EEPBLK0      0
#define EEPBLK1      1
#define NUMEEPBLK    2

// Cardtypes as denoted by subsystem id value
#define ATHEROS_CB10 0x1010 // NOT SUPPORTED
#define ATHEROS_CB11 0x1011 // NOT SUPPORTED
#define ATHEROS_MB10 0x2010 // NOT SUPPORTED

#define ATHEROS_CB20 0x1020	 
#define ATHEROS_CB21 0x1021
#define ATHEROS_CB22 0x1022
#define ATHEROS_MB20 0x2020  // NOT SUPPORTED
#define ATHEROS_MB21 0x2021  // NOT SUPPORTED
#define ATHEROS_MB22 0x2022
#define ATHEROS_MB23 0x2023

#define ATHEROS_CB21G 0x1025
#define ATHEROS_CB22G 0x1026
#define ATHEROS_MB21G 0x2025
#define ATHEROS_MB22G 0x2026

#define ATHEROS_MB31G_DESTUFF     0x2030     
#define ATHEROS_MB32AG            0x2031     
#define ATHEROS_MB22G_DESTUFF     0x2027     
#define ATHEROS_MB22AG_SINGLE     0x2029     
#define ATHEROS_MB23_JAPAN        0x2024     
#define ATHEROS_CB31G_DESTUFF     0x1030     
#define ATHEROS_CB32AG            0x1031     
#define ATHEROS_CB22G_DESTUFF     0x1027     
#define ATHEROS_CB22AG_SINGLE     0x1029     
#define ATHEROS_AP30              0xa032     
#define ATHEROS_AP30_040          0xa034
#define ATHEROS_AP48              0xa048
#define ATHEROS_AP41              0xa041
#define ATHEROS_AP43              0xa043
#define ATHEROS_MB42              0x2042
#define ATHEROS_MB41              0x2041
#define ATHEROS_MB43              0x2043
#define ATHEROS_MB44              0x2044
#define ATHEROS_CB41              0x1041
#define ATHEROS_CB42              0x1042
#define ATHEROS_CB43              0x1043
#define ATHEROS_CB51              0x1051
#define ATHEROS_CB51_LITE         0x1052
#define ATHEROS_MB51              0x2051
#define ATHEROS_MB51_LITE         0x2052
#define ATHEROS_USB_UB51          0xb051
#define ATHEROS_USB_UB52          0xb052
#define ATHEROS_MB62              0x2062
#define ATHEROS_MB62_LITE         0x2063
#define ATHEROS_CB62              0x1062
#define ATHEROS_CB62_LITE         0x1063
#define ATHEROS_AP51_FULL         0xa051
#define ATHEROS_AP51_LITE         0xa052

#define ATHEROS_AP21 0xa021


#define devID_CB20   0x0011 
#define devID_CB21   0x0012
#define devID_CB22   0x0012
#define devID_AP21   0x0011
#define devID_MB22   0x0012
#define devID_MB23   0x0012

#define SPEC_MASK_20MHZ          0x0001
#define SPEC_MASK_DSRC_20MHZ     0x0002
#define SPEC_MASK_DSRC_10MHZ     0x0004
#define SPEC_MASK_DSRC_5MHZ      0x0008


#define MODE_11g	   0
#define MODE_11b	   1
#define MODE_11a	   2

#define BASE			0
#define TURBO			1

#define TEST_NORMAL_MODE 0x0001
#define TEST_TURBO_MODE 0x0002
#define TEST_HALF_MODE  0x0004
#define TEST_QUARTER_MODE 0x0008
#define CHANNEL_TEST_HALF_RATE   0x01
#define CHANNEL_TEST_QUART_RATE  0x02

// Setup files
//#define CALSETUP_FILE "calsetup.txt"
#define MACID_FILE    "macid.txt"

//#ifdef PREDATOR_BUILD
//#define EEP_FILE      "atheros-usb-eep.txt"
//#else
//#define EEP_FILE      "atheros-eep.txt"
//#define EEP_FILE      "atheros-usb-eep.txt"
//#endif

#define UART_PCI_CFG_FILE      "atheros-uart-pcicfg-eep.txt"

//EEPROM related parameters
#define NUM_BAND_EDGES					8
#define	NUM_TARGET_POWER_CHANNELS		8
#define	NUM_TARGET_POWER_CHANNELS_11b	2
#define	NUM_TARGET_POWER_CHANNELS_11g	3
#define	NUM_PIERS						10
#define	NUM_PIERS_2p4					3
#define NUM_TEST_CHANNELS				32  // max # of test channels

#define NUM_CORNER_FIX_CHANNELS 4

#define CAL_FORMAT_GEN2			0
#define CAL_FORMAT_GEN3			1
#define CAL_FORMAT_GEN5			2  //++JC++

#define SWAP_BYTES16(x) ((((x) >> 8) & 0xFF) | (((x) << 8) & 0xFF00))

#define INVALID_FG   10

#define NUM_VERIFY_DATA_PATTERNS  8
#define LEN_VERIFY_DATA_PATTERNS  8
//#define VERIFY_DATA_PACKET_LEN    3000

#define NO_CHIP_IDENTIFIER 0xffffffff

#define PCI_EXPRESS_CONFIG_PTR  0x80
#define READ_CONFIG             0xffffffff

typedef struct {
	A_UINT32   pciConfigLocation;
	A_UINT32   eepromLocation_MSB;
	A_UINT32   eepromLocation_LSB;
} EEPROM_PCICONFIG_MAP;


typedef struct golenParams_t {
	A_UINT16 channelStart;
	A_UINT16 channelStop;
	A_UINT16 channelStep;

	A_UINT16 measurementStep;

	A_UINT16 pcdacStart;
	A_UINT16 pcdacStop;
	A_UINT16 pcdacStep;

	A_UINT16 numIntercepts;
#ifdef LINUX
	A_UINT16 pInterceptPercentages[11];
#else
	A_UINT16 pInterceptPercentages[11];
#endif

} GOLDEN_PARAMS ;
	
typedef struct ftpDownloadInfo {
	A_BOOL		downloadRequired;
	A_CHAR		hostname[256];
	A_CHAR		username[256];
	A_CHAR		password[256];
	A_CHAR		remotefile[256];
	A_CHAR		localfile[256];
} FTP_DOWNLOAD_INFO;

typedef struct calSetup_t {

	// keep all values 32-bit as needed by sscanf
	A_UINT32 benchId;
	A_BOOL   useInstruments;
    A_UINT32 subsystemID;
    A_UINT32 productID;
	A_UINT32 dutPromSize;
    A_UINT32 subVendorID;
	A_UINT32 countryOrDomain;
	A_UINT32 worldWideRoaming;
	A_UINT32 countryOrDomainCode;
    A_BOOL   calPower;
	A_BOOL	 useFastCal;   // power meter or golden unit
	A_BOOL   reprogramTargetPwr;
	A_BOOL   testOBW;
    A_BOOL   testSpecMask;
    A_BOOL   testTXPER;
    A_BOOL   testRXSEN;
	A_BOOL	 testTURBO;
	A_BOOL	 testHALFRATE;  // 10 MHz bandwidth
	A_BOOL	 testQUARTERRATE;  // 5 MHz bandwidth
	A_BOOL	 testTargetPowerControl[3]; // a/b/g mode
	double   targetPowerToleranceUpper;
	double   targetPowerToleranceLower;

    A_INT32  goldenPPM;
	A_UINT32 goldenPCDAC;
    double   goldenTXPower;
	A_UINT32 goldenPCDAC_2p4[2];
    double   goldenTXPower_2p4[2];
//** the following remarked by ccshiang
	/***
	A_UINT32 pmModel;
	A_UINT32 pmGPIBaddr;
	A_UINT32 saModel;
	A_UINT32 saGPIBaddr;
	A_UINT32 attModel;
	A_UINT32 attGPIBaddr;
	***/
//** the above remarked by ccshiang
//** the following added by ccshiang
	A_UINT32 pmModel;
	A_UINT32 saModel;
	A_UINT32 attModel;
//** the above added by ccshiang
    double   attenDutPM;
    double   attenDutSA;
    double   attenDutGolden;

    double   attenDutPM_2p4[2];
    double   attenDutSA_2p4[2];
    double   attenDutGolden_2p4[2];

	A_UINT32 numEthernetPorts;   // Number of Ethernet ports. Valid Only for APs
	A_UINT32 startEthernetPort;  // Begining ethernet port: AP38 has enet1 enabled but enet0 disabled

// Common parameters
	A_UINT32 turboDisable;
	A_UINT32 turboDisable_11g;
    A_UINT32 RFSilent;

	A_UINT32 deviceType;

	double TurboMaxPower_5G; 
	double TurboMaxPower_11g;
	A_UINT32 Amode;
	A_UINT32 Bmode;
	A_UINT32 Gmode;

	A_INT32 antennaGain5G;    // 8-bit signed value. 0.5 dB steps
	A_INT32 antennaGain2p5G;  // 8-bit signed value. 0.5 dB steps

// 11a parameters (5GHz)
    A_UINT32 switchSettling;
    A_UINT32 txrxAtten;
    A_UINT32 ob_1;
    A_UINT32 db_1;
    A_UINT32 ob_2;
    A_UINT32 db_2;
    A_UINT32 ob_3;
    A_UINT32 db_3;
    A_UINT32 ob_4;
    A_UINT32 db_4;
    A_UINT32 txEndToXLNAOn;
    A_UINT32 thresh62;           
    A_UINT32 txEndToXPAOff;  
    A_UINT32 txFrameToXPAOn; 
	A_UINT32 xpd; 
	A_UINT32 xgain; 
	A_UINT32 xlnaGain;
	A_INT32	 noisefloor_thresh;
	A_INT32  adcDesiredSize; // 8-bit signed value. 0.5 dB steps
	A_INT32  pgaDesiredSize; // 8-bit signed value. 0.5 dB steps
	A_UINT32 antennaControl[11];
	A_UINT32 fixed_bias[3]; 
	A_BOOL   do_iq_cal;
	A_UINT32 iqcal_i_corr[3];
	A_UINT32 iqcal_q_corr[3];

// 2.4 GHz parameters 
    A_UINT32 switchSettling_2p4[2];
    A_UINT32 txrxAtten_2p4[2];
    A_UINT32 ob_2p4[2];
    A_UINT32 db_2p4[2];
    A_UINT32 b_ob_2p4[2];
    A_UINT32 b_db_2p4[2];
    A_UINT32 txEndToXLNAOn_2p4[2];
    A_UINT32 thresh62_2p4[2];           
    A_UINT32 txEndToXPAOff_2p4[2];  
    A_UINT32 txFrameToXPAOn_2p4[2]; 
	A_UINT32 xpd_2p4[2]; 
	A_UINT32 xgain_2p4[2]; 
	A_UINT32 xlnaGain_2p4[2];
	A_INT32 noisefloor_thresh_2p4[2];
	A_INT32 adcDesiredSize_2p4[2]; // 8-bit signed value
	A_INT32 pgaDesiredSize_2p4[2]; // 8-bit signed value
	A_UINT32 antennaControl_2p4[2][11];

	A_BOOL   readFromFile; //flag to decide whether to read from file or make fresh measurements
	char     rawDataFilename[122]; // filename to read data from
	A_BOOL   customerDebug;
	A_BOOL   showTimingReport;

	A_BOOL   endTestOnFail;

	char     macidFile[122]; // filename to read the macIDs from
	char     logFilePath[122]; // path to logging directory

	A_BOOL   forcePiers ;
	A_UINT16 piersList[15];
	A_UINT32 numForcedPiers;

	A_BOOL   forcePiers_2p4[2] ;
	A_UINT16 piersList_2p4[2][15];
	A_UINT32 numForcedPiers_2p4[2];

	A_BOOL   useOneCal; // use 11g cal for 11b as well

	char     tgtPwrFilename[122];

	A_BOOL   readFromFile_2p4[2]; // 0 -> OFDM @ 2.4, 1 -> 11b
	char	 rawDataFilename_2p4[2][122];
    A_BOOL   testSpecMask_2p4[2];
    A_BOOL   testTXPER_2p4[2];
    A_BOOL   testRXSEN_2p4[2];
	A_BOOL   testTURBO_2p4[2];
	A_BOOL	 testTempMargin[3];
	A_BOOL	 test32KHzSleepCrystal;

	A_BOOL	 testDataIntegrity[3];
	A_BOOL	 testThroughput[3];

	A_BOOL   testTXPER_margin;

	A_INT32  targetSensitivity[3][NUM_TEST_CHANNELS];

	char		goldenIPAddr[132];
	A_UINT32	caseTemperature;
	A_UINT32	falseDetectBackoff[3];

	A_UINT32  perPassLimit;
	A_UINT32  senPassLimit;
	A_INT32   ppmMaxLimit;
	A_INT32   ppmMinLimit;
	A_INT32   ppmMaxQuarterLimit;
	A_INT32   ppmMinQuarterLimit;
	A_UINT32  maskFailLimit;

	double	 maxPowerCap[3];
	double   cck_ofdm_delta;
	double   ch14_filter_cck_delta;

	A_UINT32 maxRetestIters;
	A_UINT32 cal_fixed_gain[3];

	A_UINT32 eeprom_map;  // 0 for legacy 2nd gen cal format, 1 for 3rd gen cal format
//	A_UINT32 cal_single_xpd[3];
	A_UINT32 cal_mult_xpd_gain_mask[3]; 

	A_UINT32 EARStartAddr;
	A_UINT32 EARLen;
	A_UINT32 UartPciCfgLen;
	A_UINT32 TrgtPwrStartAddr;
	A_UINT32 calStartAddr;

	A_UINT32 numSensPackets[3];
	A_UINT32 txperBackoff;
	A_UINT32 Enable_32khz;  // indicates 32khz sleep crystal stuffed.
	A_UINT32 Enable_WOW;    // indicates Wake_On_WLAN support on the board.
	A_UINT32 rxtx_margin[3];
	double   ofdm_cck_gain_delta;

	A_UINT32 instanceForMode[3];  // ART cmd line parameter. 1 based
	A_UINT32 modeMaskForRadio[2]; // mask for supported modes for all radios

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -