新增:扩展 V1.1 WE 校准范围

This commit is contained in:
2026-08-28 13:29:04 +08:00
parent 9763f09b4d
commit 46db56d45c
2 changed files with 19 additions and 6 deletions
+17 -6
View File
@@ -94,15 +94,15 @@ static const uint16 we_power_v1_1_v[]=
/*
* 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).
* 1 raw step = 0.05 dB; 300 = 0 dB. V1.1 may use values up to 720
* while V1.0 remains limited to 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
480,495,512,528,547,565,590,614,635,662,687,715,500,500,500,500
};
/*auto ver
@@ -419,6 +419,12 @@ void e2rom_save_wd(S_WD_PARA *ppara)
c256_bytewrite(EEPROM_WD_ADDR+i,*pchar++);
}
}
uint16 get_we_power_max(void)
{
return (atsc_para.system_para.hardware_version == HARDWARE_VERSION_V1_1) ?
WE_POWER_MAX_V1_1 : WE_POWER_MAX;
}
static uint16 e2rom_legacy_power_addr(void)
{
return (atsc_para.wl_para.exc_5x == 0) ?
@@ -436,6 +442,10 @@ static uint16 e2rom_active_power_addr(void)
void e2rom_save_leak(uint32 ch, S_WE_PARA *ppara)
{
uint16 base = e2rom_active_power_addr();
uint16 power_max = get_we_power_max();
if(ppara->power > power_max)
ppara->power = power_max;
c256_bytewrite(base+ch*2+0,ppara->power>>8);
c256_bytewrite(base+ch*2+1,ppara->power);
@@ -3331,6 +3341,7 @@ void e2rom_read_leak(uint32 chn,S_WE_PARA *ppara)
{
uint8 data;
uint16 base = e2rom_active_power_addr();
uint16 power_max = get_we_power_max();
data = c256_byteread(base+chn*2+0);
ppara->power = (data<<8)|c256_byteread(base+chn*2+1);
@@ -3339,7 +3350,7 @@ void e2rom_read_leak(uint32 chn,S_WE_PARA *ppara)
* 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) &&
if((ppara->power>power_max) &&
(atsc_para.system_para.hardware_version == HARDWARE_VERSION_V1_1))
{
if((chn>=FREQ_MIN_V1)&&(chn<=FREQ_MAX_V3))
@@ -3351,14 +3362,14 @@ void e2rom_read_leak(uint32 chn,S_WE_PARA *ppara)
ppara->power = we_power_v1_1[chn-FREQ_MIN_U];
}
if(ppara->power<=WE_POWER_MAX)
if(ppara->power<=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);
}
}
if(ppara->power>WE_POWER_MAX)
if(ppara->power>power_max)
{
if(atsc_para.wl_para.exc_5x==0)
ppara->power = e2rom_read_fac_power_default_3x(chn);
+2
View File
@@ -105,6 +105,7 @@
#define WE_POWER_ZERO 300 //we屏 0db对应值
#define WE_POWER_MIN 0
#define WE_POWER_MAX 500
#define WE_POWER_MAX_V1_1 720 //V1.1物理功率余量允许到+21dB
typedef enum
{
@@ -1369,6 +1370,7 @@ void e2rom_read_psts(S_PSTS_PARA *ppara);
extern void e2rom_read_leak(uint32 chn,S_WE_PARA *ppara);
extern void e2rom_save_leak(uint32 UI_ch, S_WE_PARA *ppara);
extern uint16 get_we_power_max(void);
extern void e2rom_save_ad(S_ADVANCE_PARA *ppara);
extern void e2rom_save_ad2(S_ADVANCE2_PARA *ppara);
extern void e2rom_save_ad3(S_ADVANCE3_PARA *ppara);