一 射频器件配置分析
本小节专注于如何通过高通日志分析射频器件(如 PA、ASM、Tuner)的底层配置状态
以下是详细拆解:
1.1 射频器件日志掩码
这一部分介绍了如何开启和过滤射频器件的特定消息:
打印机制:底层使用 RFDEVICE_LOG_MSG_X(X 代表参数数量)API 将消息打印到“Message Packets”中。
示例log:
RFDEVICE_LOG_MSG_6(LOG_RFA_DEVICE_ASM_C, MSG_LEGACY_HIGH, "[ASM] enable(): Called with rx_tx=%d,mode=%d, band=%d, sig_path=%d, exec_type=%d, timing=%d",asm_cfg_p->asm_rx_tx,asm_cfg_p->mode,asm_cfg_p->band.lte_band,asm_cfg_p->rfm_path.sig_path,dev_action,script_timing);RFDEVICE_LOG_MSG_6 print the log message in ‘Message Packets’ by ‘RF Device’ type. This API will print 6 items. If onlyneed to print 2 items, use RFDEVICE_LOG_MSG_2.

示例:RFDEVICE_LOG_MSG_6(LOG_RFA_DEVICE_ASM_C, MSG_LEGACY_HIGH)
过滤与识别:日志可以通过 Log ID 进行过滤,例如 LOG_RFA_DEVICE_ASM_C(天线开关)或 LOG_RFA_DEVICE_PA_C(功率放大器)。

示例:RFDEVICE_LOG_MSG_6(LOG_RFA_DEVICE_ASM_C, MSG_LEGACY_HIG)
日志级别:
MSG_LEGACY_HIGH:必选日志,记录 API 进入、端口号使用及休眠/唤醒投票。
MSG_LEGACY_LOW:包含大部分详细信息,用于深度调试。
1.2 天线开关配置日志
ASM 日志记录了射频卡(RFC)中定义的逻辑路径与物理端口的映射关系。
实战分析:通过日志可以确认特定频段(如 LTE B1)的 PRx(主接收)、DRx(分集接收)和 Tx(发射)分别使用了哪个 ASM 端口。
示例:在 B1 配置中,
Rx, LTE, B1, path 0: ASM port 9
Rx, LTE, B1, path 1: ASM port 4, QASM port 49
Tx, LTE, B1, path 0: ASM port 0

1.3 PAPM 与 PA 配置日志
此部分涉及功率放大器及其电源管理芯片(PAPM)的配置。
关键参数:记录了 Xpt_mode(传输模式,如 APT 模式、ET 模式或 Bypass 模式)和 bias(偏置电压)。
配置追踪:日志会显示 PA 关联的物理端口号、信令路径以及对应的 NV 容器索引。

PAPM and PA are configured.LTE, B1, path 0: PAPM port 8, APT_MODE, bias=3700Xpt_mode typedef enum{RFDEVICE_BYPASS_MODE,RFDEVICE_APT_MODE,RFDEVICE_ET_MODE,RFDEVICE_LDO_MODE,RFDEVICE_MAX_MODE,RFDEVICE_NO_PT_MODE,RFDEVICE_STANDBY_MODE,RFDEVICE_PAPM_ENABLE_MODE, // Used for trigger type onlyRFDEVICE_PAPM_DISABLE_MODE, // Used for trigger type onlyRFDEVICE_PAPM_MODE_MAX,RFDEVICE_PAPM_MODE_INVALID = RFDEVICE_PAPM_MODE_MAX} rfdevice_papm_mode_type;LTE B1, path 0: QPA port 57.RFM device 6, sig_path 0, ant_swith_path 0, NV container 0
1.4 天线调谐器配置日志
记录天线调谐器的运行状态。
加载逻辑:如果未设置调谐器 NV,系统会自动加载默认的 Tuner Code。
技术模式枚举:日志中使用数字代表不同的制式(Mode),
例如 Mode 2 代表 GSM (RFM_EGSM_MODE),Mode 8 代表 LTE (RFM_LTE_MODE)。
typedef enum{RFM_PARKED_MODE, /*!< Parked/sleep mode */RFM_IMT_MODE, /*!< WCDMA @todo depricate this enum @deprecated */RFM_EGSM_MODE, /*!< GSM @todo depricate this enum @deprecated */RFM_1X_MODE, /*!< 1X Mode */RFM_GPS_MODE, /*!< GPS Mode @todo depricate this enum @deprecated */RFM_1XEVDO_MODE, /*!< HDR Rev 0, A, and B modes */RFM_SVDO_MODE, /*!< Mode to support simultaneous 1x and HDR transmit on a single device. */RFM_GNSS_MODE, /*!< Global navigation systems mode. */RFM_LTE_MODE, /*!< UMTS Long Term Evolution mode. */RFM_LTE_FTM_MODE, /*!< UMTS Long Term Evolution FTM Mode */RFM_TDSCDMA_MODE, /*!< TDSCDA mode */RFM_TDSCDMA_MODE_FTM=14,/*!< TDSCDMA FTM NSmode */RFM_EGSM_MODE_2, /*!< Second GSM mode for DSDA case for RF-MCPM interface */RFM_EGSM_MODE_3, /*!< Third GSM mode for TSTS/TSDA case for RF-MCPM interface */RFM_WLAN_MODE, /*!< WLAN Mode */#ifndef FEATURE_TABASCO_MODEMRFM_IMT_MODE_2, /*!< Second WCDMA in W+W mode*/#endifRFM_NUM_MODES, /*!< Total number of supported Modes */RFM_INVALID_MODE = RFM_NUM_MODES, /*!< Invalid RFM Mode */RFM_ALL_MODES = 0x7FFFFFFF, /*!< Wildcard to indicate all Modes */RFM_NA_MODE = 0xFFFFFFFF /*!< Defines mode not applicable */} rfm_mode_enum_type;

例如TUNER NV未设置如下所示:

通过上述步骤确保硬件路径在底层的正确开启。
二 LTE 信令链路性能分析
以下是详细拆解:
2.1 日志掩码配置
在进行信令分析前,需开启特定的日志项目:
Message Packets:需勾选 Radio Frequency 下从 Low 到 Fatal 的所有级别。

Log Packets:重点关注 LTE 目录下的 0x184C (Tx AGC) 和 0x1849 (FBRX)。

2.2 最大发射功率限制 (MTPL)
这部分揭示了手机“最大功率”背后的复杂计算逻辑:
开启调试:通过设置 NV67108 为 0x10 可在日志中直接观察 RFTXPLIM 限制过程。

rflte_core_txpl.c 11973 rflte_core_txpl_get_max_pwr_from_nv_in_db10: Ant Switch Path for Tx:255 Matched NV Buf Idx:rflte_core_txpl.c 12016 rflte_core_txpl_get_max_pwr_from_nv_in_db10:dB10_max_tx_power_val = 230, db10_lim_adj_vs_freq_vs_temp = 0, dB10_max_tx_power_limit_adjust_val = 0rflte_core_txpl.c 12029 rflte_core_txpl_get_max_pwr_from_nv_in_db10:dB10_max_tx_power_val = 230, dB10_max_tx_power_limit_adjust_val = 0, nv_match_found 1rflte_core_txpl.c 11596 rflte_core_get_pemax_adj_from_nv_in_db10:db10_pemax_adj = 0rflte_core_txpl.c 06970 rflte_core_compute_mpr_single_cell_singlecluster: NV based: 0, MPR: 10, carrier: 0, rb_block: 50, bw_tx: 3, mod: 1, tx_channel: 18300rflte_core_txpl.c 04435 RFTXPLIM-NORM: rflte_core_txpl_calc_target_power:pcmax 220, sar_limit 330,sgsar 32000, coex 32000, overheat 330, coex wlan 330, vbatt_backoff 32000, target_pwr_limit 220rflte_core_txpl.c 04435 RFTXPLIM-NORM: rflte_core_txpl_calc_target_power:pcmax 220, sar_limit 330,sgsar 32000, coex 32000, overheat 330, coex wlan 330, vbatt_backoff 32000, target_pwr_limit 220rflte_core_txpl.c 04435 RFTXPLIM-NORM: rflte_core_txpl_calc_target_power:pcmax 220, sar_limit 330,sgsar 32000, coex 32000, overheat 330, coex wlan 330, vbatt_backoff 32000, target_pwr_limit 220rflte_core_txpl.c 04435 RFTXPLIM-NORM: rflte_core_txpl_calc_target_power:pcmax 220, sar_limit 330,sgsar 32000, coex 32000, overheat 330, coex wlan 330, vbatt_backoff 32000, target_pwr_limit 220rflte_core_txpl.c 10372 RFTXPLIM-NORM: carrier_idx = 0, num_active_clusters = 1, cluster_iter = 0, [INPUT] - rb_start = 0, rb_block = 50, [P_CMAX_UPDATE] - start_rbs = 0, num_rbs = 50rflte_core_txpl.c 10372 RFTXPLIM-NORM: carrier_idx = 0, num_active_clusters = 1, cluster_iter = 1, [INPUT] - rb_start = 0, rb_block = 0, [P_CMAX_UPDATE] - start_rbs = 0, num_rbs = 0rflte_core_txpl.c 10384 RFTXPLIM-NORM: Current ant pos = 0, DTPL default pos = 220, DTPL swap pos = 220,MTPL default pos = 220, MTPL swap pos = 220rflte_core_txpl.c 11101 RFTXPLIM-NORM: SF: 6,curr_ul_carrier_config: 0, Carrier: 0, Slot: 0, Tx handle: 5, Mod: 1,rflte_core_txpl.c 11108 RFTXPLIM-NORM: Cluster0 rb_start: 0, Cluster0 rb_block: 50, Cluster1 rb_start: 0, Cluster1 rb_block: 0rflte_core_txpl.c 11117 RFTXPLIM-NORM: ul_carr_config type: 0, NS type: 0, NS value: 1, P emax: 240, P cmax: 220, DTPL: 220, MTPL: 220, Combined
通过 RFTXPLIM 过滤日志,然后可以看到 PCMAX=220(以 dB10 为单位),MTPL=220(以 dB10 为单位),MPR=10(以 dB10 为单位),AMPR=0(以 dB10 为单位),NS=1 等等。
PC-MAX = NV 限制功率 - MPR - AMPR = 230-10-0 = 220(以 dB10 为单位)
MTPL = MIN(PC-MAX, PE-MAX) = MIN(220,240) = 220(以 dB10 为单位)
Target_pwr_limit = MIN(MTPL, SAR, SGSAR, COEX, OVERHEAT, COEX_WLAN, VBATT_BACKOFF) = 220(以 dB10 为单位)
核心公式:PC-MAX = NV 限制功率 - MPR (3GPP 减额) - AMPR (额外减额)。MTPL = MIN(PC-MAX, PE-MAX)。
最终目标功率限制:取 MTPL 与 SAR(人体辐射限制)、热保护、WLAN 共存限制等多个因子的最小值。
2.3 LTE TxAGC 日志 (0x184C)
实时监控发射链路的状态机 :
关键参数:可查看当前子帧的 PA State、XPT Mode(如 ET 包络跟踪或 APT 模式)、UE Power Class 以及 RGI 增益索引 。
功率判定:实际发射功率通过比较 Slot 功率、MTPL 和 SAR 等限制值,取其最小者 。

PA状态 = 1
XPT模式 = ET
MTPL = 220
实际发射功率 = MIN(时隙功率实际220, MTPL 220, SAR MTPL 330,…) = 220 (dB10)
用户设备功率类别 = POWER_CLASS3

RGI指数 = 44
PA ICQ = 32639
2.4 LTE FBRX 日志 (0x1849)
反馈接收机(FBRX)用于实现功率的精准闭环控制 :
误差补偿:日志记录了 ft_err(增益误差),如果该值为 0,表示当前功率非常准确 。
更新逻辑:新功率值 l_new 由旧值 l_old 减去误差 ft_err 计算得出 。
部分参数说明:
txagc: TxAGC for which FBRx gain is computed; target tx power. It is -20dBm in this log.
ft_err: FBRx filtered gain error in dB10 unit for current TxAGC; actual applied correctionthe. 0 means tx power is accurate. ft_err get input value from either hardware gain error or firmware gain error.
h_gn_err: Current hardware gain error result; hardware Gdelta value as an integer.
h_db: The hardware gain error in dB10 unit for current TxAGC.
fw_gn: Current firmware gain estimate result; firmware G value as an integer.
f_gn_err: Current firmware gain error result; firmware Gdelta value as an integer.
f_db: The firmware gain error in dB10 unit for current TxAGC.
l_old: TxAGC value prior to lin update
l_new: New TxAGC value after lin update

2.5 LTE RX AGC 日志 (0xB111, 0xB193)
分析下行链路质量的哨兵 :
0xB111:展示各天线(Rx0, Rx1)的 Total RSSI 强度 。

0xB193:详细报告服务小区(PCell)和辅小区(SCell)在各天线上的 RSRP 指标 。

《Q库全书:高通射频实战录》持续更新,喜欢的小伙伴可以点赞(鼓励一下小编)+ 关注(防止错过后面更新哦)




夜雨聆风