新增:V1.1 硬件功率校准
This commit is contained in:
+99
-25
@@ -85,6 +85,26 @@ static const int32 we_power[]=
|
||||
1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000
|
||||
};
|
||||
|
||||
/* Hardware V1.1 VHF calibration, channels 2..13. */
|
||||
static const uint16 we_power_v1_1_v[]=
|
||||
{
|
||||
143,98,66,38,28,52,52,59,62,64,66,74
|
||||
};
|
||||
|
||||
/*
|
||||
* Hardware V1.1 UHF calibration, channels 14..83 (473..887 MHz).
|
||||
* Values are the raw WE register values measured with 563 MHz as 0 dB.
|
||||
* 1 raw step = 0.05 dB; 300 = 0 dB. Values at the upper end are
|
||||
* limited to WE_POWER_MAX (500).
|
||||
*/
|
||||
static const uint16 we_power_v1_1[]=
|
||||
{
|
||||
224,226,231,231,234,235,239,244,245,248,254,257,264,268,269,275,281,282,
|
||||
292,292,295,301,304,312,317,322,329,335,340,345,347,350,354,358,361,366,
|
||||
370,377,382,385,389,391,394,399,403,405,413,420,423,432,437,447,454,463,
|
||||
480,495,500,500,500,500,500,500,500,500,500,500,500,500,500,500
|
||||
};
|
||||
|
||||
/*auto ver
|
||||
{
|
||||
-405, -361, -349, -314, -332, -303, -295, -285, -172, -257,
|
||||
@@ -192,6 +212,7 @@ void e2rom_save_sys(S_SYSTEM_PARA *ppara)
|
||||
|
||||
c256_bytewrite(EEPROM_ADRV9009_ORX_MANU_GAIN, ppara->orx_manu_gain&0xff);
|
||||
c256_bytewrite(EEPROM_SPEC_ENABLE, ppara->spec_enable ? 1 : 0);
|
||||
c256_bytewrite(EEPROM_HARDWARE_VERSION, ppara->hardware_version);
|
||||
}
|
||||
void e2rom_save_power(S_RF_PARA *ppara)
|
||||
{
|
||||
@@ -398,18 +419,26 @@ void e2rom_save_wd(S_WD_PARA *ppara)
|
||||
c256_bytewrite(EEPROM_WD_ADDR+i,*pchar++);
|
||||
}
|
||||
}
|
||||
static uint16 e2rom_legacy_power_addr(void)
|
||||
{
|
||||
return (atsc_para.wl_para.exc_5x == 0) ?
|
||||
EEPROM_CH2_POWER_ADDR : EEPROM_CH1_POWER_ADDR;
|
||||
}
|
||||
|
||||
static uint16 e2rom_active_power_addr(void)
|
||||
{
|
||||
if(atsc_para.system_para.hardware_version == HARDWARE_VERSION_V1_1)
|
||||
return EEPROM_CH_POWER_V1_1_ADDR;
|
||||
|
||||
return e2rom_legacy_power_addr();
|
||||
}
|
||||
|
||||
void e2rom_save_leak(uint32 ch, S_WE_PARA *ppara)
|
||||
{
|
||||
if(atsc_para.wl_para.exc_5x==0)
|
||||
{
|
||||
c256_bytewrite(EEPROM_CH2_POWER_ADDR+ch*2+0,ppara->power>>8);
|
||||
c256_bytewrite(EEPROM_CH2_POWER_ADDR+ch*2+1,ppara->power);
|
||||
}
|
||||
else
|
||||
{
|
||||
c256_bytewrite(EEPROM_CH1_POWER_ADDR+ch*2+0,ppara->power>>8);
|
||||
c256_bytewrite(EEPROM_CH1_POWER_ADDR+ch*2+1,ppara->power);
|
||||
}
|
||||
uint16 base = e2rom_active_power_addr();
|
||||
|
||||
c256_bytewrite(base+ch*2+0,ppara->power>>8);
|
||||
c256_bytewrite(base+ch*2+1,ppara->power);
|
||||
}
|
||||
void e2rom_save_we(S_WE_PARA *ppara)
|
||||
{
|
||||
@@ -1145,8 +1174,16 @@ void e2rom_read_system(S_SYSTEM_PARA *ppara)
|
||||
ppara->orx_manu_gain = orx_gain_max;
|
||||
|
||||
ppara->spec_enable = 1;
|
||||
ppara->hardware_version = c256_byteread(EEPROM_HARDWARE_VERSION);
|
||||
if(ppara->hardware_version >= HARDWARE_VERSION_END)
|
||||
{
|
||||
ppara->hardware_version = DEFAULT_HARDWARE_VERSION;
|
||||
c256_bytewrite(EEPROM_HARDWARE_VERSION, ppara->hardware_version);
|
||||
}
|
||||
|
||||
printf("load agc_att=%d %fdb adrv9009_att=%d orx_manu_gain=%d spec_enable=%d\n", ppara->agc_att, -0.5*ppara->agc_att, ppara->adrv9009_att, ppara->orx_manu_gain, ppara->spec_enable);
|
||||
printf("load agc_att=%d %fdb adrv9009_att=%d orx_manu_gain=%d spec_enable=%d hardware=V1.%d\n",
|
||||
ppara->agc_att, -0.5*ppara->agc_att, ppara->adrv9009_att,
|
||||
ppara->orx_manu_gain, ppara->spec_enable, ppara->hardware_version);
|
||||
}
|
||||
static void bak_e2rom_read_rf(S_RF_PARA *ppara)
|
||||
{
|
||||
@@ -2008,6 +2045,26 @@ static void e2rom_fac_power_rst_3x(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void e2rom_fac_power_rst_v1_1(void)
|
||||
{
|
||||
uint32 i;
|
||||
uint16 power;
|
||||
|
||||
for(i=FREQ_MIN_V1; i<=FREQ_MAX_V3; i++)
|
||||
{
|
||||
power = we_power_v1_1_v[i-FREQ_MIN_V1];
|
||||
c256_bytewrite(EEPROM_CH_POWER_V1_1_ADDR+i*2+0, power>>8);
|
||||
c256_bytewrite(EEPROM_CH_POWER_V1_1_ADDR+i*2+1, power);
|
||||
}
|
||||
|
||||
for(i=FREQ_MIN_U; i<=FREQ_MAX_U; i++)
|
||||
{
|
||||
power = we_power_v1_1[i-FREQ_MIN_U];
|
||||
c256_bytewrite(EEPROM_CH_POWER_V1_1_ADDR+i*2+0, power>>8);
|
||||
c256_bytewrite(EEPROM_CH_POWER_V1_1_ADDR+i*2+1, power);
|
||||
}
|
||||
}
|
||||
|
||||
static uint16 e2rom_read_fac_power_default_3x(uint32 chn)
|
||||
{
|
||||
uint16 power;
|
||||
@@ -2860,6 +2917,7 @@ void e2rom_load_default_param(unsigned char menu)
|
||||
atsc_para.system_para.gps = 0;
|
||||
atsc_para.system_para.test = TEST_OFF;
|
||||
atsc_para.system_para.spec_enable = 1;
|
||||
atsc_para.system_para.hardware_version = DEFAULT_HARDWARE_VERSION;
|
||||
//atsc_para.system_para.net = 1; //MFN;
|
||||
atsc_para.system_para.ctrl = CTRL_REMOTE; // remote
|
||||
|
||||
@@ -3243,6 +3301,7 @@ void e2rom_load_default_param(unsigned char menu)
|
||||
|
||||
case MENU_POWER:
|
||||
atsc_para.rf_para.power = RF_POWER_ZERO;
|
||||
e2rom_fac_power_rst_v1_1();
|
||||
if(atsc_para.wl_para.exc_5x==0)
|
||||
{
|
||||
atsc_para.rf_para.db = DEFAULT_RF_POWER_DB_3X;
|
||||
@@ -3270,27 +3329,41 @@ void e2rom_load_default_param(unsigned char menu)
|
||||
|
||||
void e2rom_read_leak(uint32 chn,S_WE_PARA *ppara)
|
||||
{
|
||||
uint8 data = 0;
|
||||
uint8 data;
|
||||
uint16 base = e2rom_active_power_addr();
|
||||
|
||||
if(atsc_para.wl_para.exc_5x==0)
|
||||
data = c256_byteread(base+chn*2+0);
|
||||
ppara->power = (data<<8)|c256_byteread(base+chn*2+1);
|
||||
|
||||
/*
|
||||
* Populate an upgraded unit's missing V1.1 entry from the measured
|
||||
* V1.1 defaults and persist it in the independent V1.1 EEPROM table.
|
||||
*/
|
||||
if((ppara->power>WE_POWER_MAX) &&
|
||||
(atsc_para.system_para.hardware_version == HARDWARE_VERSION_V1_1))
|
||||
{
|
||||
data = c256_byteread(EEPROM_CH2_POWER_ADDR+chn*2+0);
|
||||
ppara->power = (data<<8)|c256_byteread(EEPROM_CH2_POWER_ADDR+chn*2+1);
|
||||
|
||||
if(ppara->power>WE_POWER_MAX)
|
||||
if((chn>=FREQ_MIN_V1)&&(chn<=FREQ_MAX_V3))
|
||||
{
|
||||
ppara->power = e2rom_read_fac_power_default_3x(chn);
|
||||
ppara->power = we_power_v1_1_v[chn-FREQ_MIN_V1];
|
||||
}
|
||||
else if((chn>=FREQ_MIN_U)&&(chn<=FREQ_MAX_U))
|
||||
{
|
||||
ppara->power = we_power_v1_1[chn-FREQ_MIN_U];
|
||||
}
|
||||
|
||||
if(ppara->power<=WE_POWER_MAX)
|
||||
{
|
||||
c256_bytewrite(EEPROM_CH_POWER_V1_1_ADDR+chn*2+0,ppara->power>>8);
|
||||
c256_bytewrite(EEPROM_CH_POWER_V1_1_ADDR+chn*2+1,ppara->power);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
data = c256_byteread(EEPROM_CH1_POWER_ADDR+chn*2+0);
|
||||
ppara->power = (data<<8)|c256_byteread(EEPROM_CH1_POWER_ADDR+chn*2+1);
|
||||
|
||||
if(ppara->power>WE_POWER_MAX)
|
||||
{
|
||||
if(ppara->power>WE_POWER_MAX)
|
||||
{
|
||||
if(atsc_para.wl_para.exc_5x==0)
|
||||
ppara->power = e2rom_read_fac_power_default_3x(chn);
|
||||
else
|
||||
ppara->power = e2rom_read_fac_power_default_5x(chn);
|
||||
}
|
||||
}
|
||||
}
|
||||
extern void fpga_read_system(S_SYSTEM_PARA *ppara);
|
||||
@@ -3443,6 +3516,7 @@ void e2rom_read_all_para(void)
|
||||
e2rom_load_default_param(2);
|
||||
e2rom_load_default_param(3);
|
||||
|
||||
e2rom_fac_power_rst_v1_1();
|
||||
if(atsc_para.wl_para.exc_5x==0) //此处是将非当前标准的we功率也置为默认值.
|
||||
{
|
||||
e2rom_fac_power_rst_5x();
|
||||
|
||||
Reference in New Issue
Block a user