big白菜的个人空间 https://blog.eetop.cn/1489722 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

天线耦合测试只check max power 的客制化方法

已有 603 次阅读| 2017-9-8 16:39 |系统分类:硬件设计

(以下代码基于1428 版本修改)

1.GSM 测试只check max power

METACalibrationLibrary_GSM_NSFT文件中

修改TxCheck()API

bool CGsmNsftClass::TxCheck(int eFreqBand, int channel) throw (E_METACalibrationLibrary_STATUS_CODE)
{
MCL_LOG(metaHandle, "CGsmNsftClass::TxCheck()");
bool bCheckFail = false;
bool bLocalCheckFail = false;
bool CheckFailMod[MOD_TEST_POINT_NUM];
bool CheckFailModAbs[MOD_TEST_POINT_NUM];
char temp[128];
char Buff[512];
int i;
int Index_to_PCL;
int pcl;
const int PCL_Number = (eFreqBand == FrequencyBand850 || eFreqBand == FrequencyBand900) ?
TOTAL_GSM_PCL_NUM : TOTAL_DCS_PCL_NUM;
int RxLevelMin, RxLevelMax;
if(calibrationHandle->m_rCommonCfg.ggeNsftItems.b_gge_nsft_gmsk == 1)
{
for(pcl = 0; pcl < PCL_Number; pcl++)
{
if(m_sTCH_ARFCN_PCL[eFreqBand][channel][pcl] == -1 )
{
break;
}
//Power
if(eFreqBand == FrequencyBand850 || eFreqBand == FrequencyBand900)
{
Index_to_PCL = PCL_Number - m_sTCH_ARFCN_PCL[eFreqBand][channel][pcl] + 4;
}
else
{
Index_to_PCL = PCL_Number - m_sTCH_ARFCN_PCL[eFreqBand][channel][pcl] - 1;
}

MCL_LOG(metaHandle, "");
MCL_LOG(metaHandle, "PCL : %d", m_sTCH_ARFCN_PCL[eFreqBand][channel][pcl]);

//output report
calibrationHandle->AddFormattedReport(ReportSection, "BCH Arfcn, %d, TCH Arfcn, %d, PCL, %d",
m_sTCH_ARFCN[eFreqBand][channel], m_sTCH_ARFCN[eFreqBand][channel],
m_sTCH_ARFCN_PCL[eFreqBand][channel][pcl]);

bLocalCheckFail = false;
if( !(m_dTxPowMinGMSK[eFreqBand][Index_to_PCL] <
m_sGmskResult[eFreqBand][channel][pcl].txp_result.tx_power &&
m_sGmskResult[eFreqBand][channel][pcl].txp_result.tx_power < m_dTxPowMaxGMSK[eFreqBand][Index_to_PCL]) )
{
bCheckFail = true;
bLocalCheckFail = true;
}

MCL_LOG(metaHandle, "Power : %f Wanted Power = %f Min Power = %f Max Power = %f %s",
m_sGmskResult[eFreqBand][channel][pcl].txp_result.tx_power
, m_dWANTED_P[eFreqBand][Index_to_PCL]
, m_dTxPowMinGMSK[eFreqBand][Index_to_PCL]
, m_dTxPowMaxGMSK[eFreqBand][Index_to_PCL]
, (bLocalCheckFail ? "FAIL" : "PASS")
);
calibrationHandle->AddFormattedReport(ReportSection, "Power, %f, Wanted Power, %f, Min Power, %f, Max
Power, %f, %s",
m_sGmskResult[eFreqBand][channel][pcl].txp_result.tx_power
, m_dWANTED_P[eFreqBand][Index_to_PCL]
, m_dTxPowMinGMSK[eFreqBand][Index_to_PCL]
, m_dTxPowMaxGMSK[eFreqBand][Index_to_PCL]
, (bLocalCheckFail ? "FAIL" : "PASS")
);
}
}
return bCheckFail;
}

2. WCDMA 测试只check max power
修改METACalibrationLibrary_WCDMA_NSFT.cpp StartTxCheck() 以及StartMaxPowerCheck() API
修改如下

(1) 将StartTxCheck() 改为
bool CWcdmaNsftClass::StartTxCheck(int index)
{
MCL_LOG(metaHandle, "----StartTxCheck_%d----", index + 1);
bool CheckFail = false;
if(StartMaxPowerCheck(index))
{
MCL_LOG(metaHandle, ">>FAIL: StartMaxPowerCheck_%d", index);
CheckFail = true;
}
/*
if(StartMinPowerCheck(index))
{
MCL_LOG(metaHandle, ">>FAIL: StartMinPowerCheck_%d", index);
CheckFail = true;
}
if(m_asWCDMA_NSFT_ILPC_SEQ[index].length() > 0)
{
if(StartIlpcCheck(index))
{
MCL_LOG(metaHandle, ">>FAIL:StartIlpcCheck_%d", index);
CheckFail = true;
} }
*/
return CheckFail;
}

(2) 将StartMaxPowerCheck() 改为
/**
* Descriptions: WDMA NSFT Check procedure (Max power)
* @return check failed: true/check pass: false
*/
bool CWcdmaNsftClass::StartMaxPowerCheck(int index)
{
bool CheckFail = false;
calibrationHandle->AddFormattedReport(ReportSection, "Max Power (dBm), %f, Lower Limit (dBm), %f, Upper
Limit (dBm), %f, %s",
r99TestResult[index].maxPower.m_dUEPower,
m_dWCDMA_NSFT_MAX_PWR_AVG_LOW[index],
m_dWCDMA_NSFT_MAX_PWR_AVG_HIGH[index],
(!(m_dWCDMA_NSFT_MAX_PWR_AVG_HIGH[index] < r99TestResult[index].maxPower.m_dUEPower ||
m_dWCDMA_NSFT_MAX_PWR_AVG_LOW[index] > r99TestResult[index].maxPower.m_dUEPower)) ? "PASS" : "FAIL"
);
if(m_dWCDMA_NSFT_MAX_PWR_AVG_HIGH[index] < r99TestResult[index].maxPower.m_dUEPower ||
m_dWCDMA_NSFT_MAX_PWR_AVG_LOW[index] > r99TestResult[index].maxPower.m_dUEPower)
{
CheckFail = true;
}
return CheckFail;
}

3. TDSCDMA 测试只check maxpower
修改METACalibrationLibrary_TDSCDMA_AST_NSFT.cpp 的FetchTxTest() 和Internal_TD_NSFT_TPC_Organize_Result()
API
(1)修改FetchTxTest()
tpc_check_items.bTCP = true;
tpc_check_items.bTOBW = true; // not check this items
tpc_check_items.bTACL = true;
tpc_check_items.bCLP = true;
tpc_check_items.bOOP = true;
tpc_check_items.bTSEM = true;
tpc_check_items.bTWQ = true;
改为
tpc_check_items.bTCP = true;
tpc_check_items.bTOBW = false; // not check this items
tpc_check_items.bTACL = false;
tpc_check_items.bCLP = false;
tpc_check_items.bOOP = false;
tpc_check_items.bTSEM = false;
tpc_check_items.bTWQ = false;

(2)修改Internal_TD_NSFT_TPC_Organize_Result()

将以下代码去掉
if(p_result->d_min_avg_pwr < p_rTdaNsftCfg->m_dTDA_NSFT_MIN_PWR_AVG_HIGH[index])
{
bPass =true ;
}
else
{
bPass = false;
bAllPass = false;
}
sprintf_s(log_msg_buf, sizeof(log_msg_buf), " Min Avg. Power (dBm): %-6.3f (< %-6.3f), ", p_result-
>d_min_avg_pwr,
p_rTdaNsftCfg->m_dTDA_NSFT_MIN_PWR_AVG_HIGH[index]);
as_log = log_msg_buf + Internal_TDSCDMA_NSFT_PassOrFail(bPass);
p_td_nsft_report_file->AddMesg(as_log);
// output report file
g_MCLHA[meta_handle].AddFormattedReport(ReportSection, "Min Avg. Power (dBm), %-6.3f, Limit, %-6.3f,
%s",
p_result->d_min_avg_pwr, p_rTdaNsftCfg->m_dTDA_NSFT_MIN_PWR_AVG_HIGH[index],
(bPass?"PASS":"FAIL") );

4,lte项目

LTE可以直接在CFG文件中取消。如下
####################################################
;[LTE NSFT Test Case_1]
TRX Power Measurement peration = 0
MCS Mode = 4
BAND Indicator = BAND1

; RX test
Downlink Frequency(100Khz) = 21400
Downlink Power (dBm) = -70,;这里设置下行测试时的功率最多设置5个点

BER Test Bit Map = 1,1,1,1,1,;这里与上面设置的下行功率对于,为1,表示check,为0,表示取消
RSRP Test Bit Map = 1,1,1,1,1,;同上
RSRQ Test Bit Map = 1,1,1,1,1,;同上
RSSI Test Bit Map = 1,1,1,1,1,;同上

; TX test
Uplink Frequency(100Khz) = 19500
Uplink Power (dBm) = 18,20,22;这里设置上行测试时的功率最多设置8个点
RB ffset = 0,0,0,0,0,0,0,0
RB Length = 25,25,25,25,25,25,25,25  MTK平台

Tx Power Test Bit Map = 1,1,1,1,1,1,1,1;这里与上面设置的上行功率对于,为1,表示check,为0,表示取消
EVM Test Bit Map = 1,1,1,1,1,1,1,1;同上
ACLR Test Bit Map = 1,1,1,1,1,1,1,1;同上
SEM Test Bit Map = 1,1,1,1,1,1,1,1;同上
Flatness Test Bit Map = 1,1,1,1,1,1,1,1;同上
Gain Error Test Bit Map = 1,1,1,1,1,1,1,1;同上
Phase Error Test Bit Map = 1,1,1,1,1,1,1,1;同上



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 5

    评论
  • 1269

    访问数

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 08:16 , Processed in 0.010866 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部