PA = Power Amplifier(功率放大器)

PA 是射频芯片里把微弱信号放大到能通过天线发射出去的电路。LR20xx 内部有两路 PA:

                  ┌─────────────────────────────┐
                  │         LR20xx 芯片           │
调制信号 ──►      │                              │
 (小信号)         │    ┌─── LF PA (Sub-GHz) ──┐  │
  ~0 dBm          │    │ 400~950 MHz          │  │
                  │    │ pa_lf_slices = 7      │──┼──► 天线 (天线开关选通)
                  │    │ pa_lf_duty_cycle = 7  │  │    ~+22 dBm
                  │    └───────────────────────┘  │
                  │                              │
                  │    ┌─── HF PA (2.4GHz) ───┐  │
                  │    │ 2.4~2.5 GHz          │  │
                  │    │ pa_hf_duty_cycle = 16 │  │
                  │    └───────────────────────┘  │
                  └─────────────────────────────┘

如果不配置 PA,芯片输出的射频功率只有 ~0 dBm(1mW),空中距离可能只有几米。配置 PA 后能到 +22 dBm(~160mW)。

以LR2012芯片举例:
 

lr20xx_radio_common_pa_cfg_t pa_cfgs = {
    .pa_sel           = LR20XX_RADIO_COMMON_PA_SEL_LF,    // ① 选哪路 PA
    .pa_lf_mode       = LR20XX_RADIO_COMMON_PA_LF_MODE_FSM, // ② LF PA 工作模式
    .pa_lf_duty_cycle = 7,   // ③ LF PA 占空比
    .pa_lf_slices     = 7,   // ④ LF PA 电流片数
    .pa_hf_duty_cycle = 16,  // ⑤ HF PA 占空比
};

① pa_sel — 选低频还是高频 PA

含义
PA_SEL_LF用 Sub-GHz PA(400~950 MHz),868/915MHz 选这个
PA_SEL_HF用 2.4GHz PA,2.4G 选这个
PA_SEL_BOTH两路都用

你跑 850MHz,所以选 LF

② pa_lf_mode — LF PA 的工作模式

这是一个设计上有趣的地方。LR20xx 的 LF PA 有两种给电方式:

含义
PA_LF_MODE_FSM有限状态机模式(推荐) — 硬件自动管理 PA 的开关时序,效率高、省电
PA_LF_MODE_DIRECT直接控制模式 — 固件手动控制 PA 的各级开关

FSM 模式是新方案,解决了直接模式下的死区问题。E80 demo 用 FSM,你也应该用 FSM。

③ pa_lf_duty_cycle — 占空比

PA 内部有多个放大级,占空比控制每一级导通的时间比例。值越大 → 导通时间越长 → 平均功率越大。

  ┌──┐  ┌──┐  ┌──┐  ┌──┐    duty_cycle=7 (高功率)
  │  │  │  │  │  │  │  │
──┘  └──┘  └──┘  └──┘  └──

  ┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐    duty_cycle=3 (低功率)
  ││││││││││││││││
──┘└┘└┘└┘└┘└┘└┘└┘└┘
  • Sub-GHz 推荐值: 7
  • 范围 0~7,越大功率越高

④ pa_lf_slices — 电流片

PA 由多个并联的"电流源片"组成,就像多个水管并联。slices 控制打开几片

    ┌──────┐
slice0 │ 启用 │═╗
    └──────┘ ║
    ┌──────┐ ║
slice1 │ 启用 │═╬═══► 总电流 = 7片 × 每片电流
    └──────┘ ║
    ...      ║
    ┌──────┐ ║
slice6 │ 启用 │═╝
    └──────┘
  • 每片约等于一定的电流 → 一定的输出功率
  • Sub-GHz 推荐值: 7(最大,全开)
  • 范围 0~7,片数越多 PA 电流越大、输出功率越高

⑤ pa_hf_duty_cycle — 2.4G PA 占空比

pa_lf_duty_cycle 同理,但给 2.4GHz PA 用的。你用 Sub-GHz 时这个值实际上不起作用,但 E80 demo 仍写了 16(HF PA 的值范围是 0~31)。


最终输出功率是怎么来的

rf_freq            ──┐
pa_sel = LF         ─┤
pa_lf_duty_cycle = 7 ─┤──→ 芯片内部计算 PA 偏置电压
pa_lf_slices     = 7 ─┤
                     ─┘
                          ↓
tx_params.power = 0x2C    ──→ 设置 PA 输入信号幅度 单位0.5dBm
                          ↓
                    最终输出功率 ≈ +22 dBm (Sub-GHz, LF PA 全开)

pa_cfg 控制的是 PA 硬件的能力上限(放大能力),tx_params 的 power 值控制的是实际的发射功率档位。 两个都要配,缺一不可。

PA理解成功放,tx_params.power理解为在功放的基础上调整声音大小。

PA 管架构,power 管信号

                     PA (硬件放大器)                    输出到天线
输入信号 ──────────►│  放大器  │──────────────────────►
    ↑               │  ↑       ↑                       ↑
    │               │  │       │                       │
power_half_dbm      │  slices  duty_cycle              最终功率
控制信号幅度         │  控制放大器的物理能力                = 信号 × 放大
(精细调节)           │  (粗略调节)

类比:音响系统

手机音量 ──────────►  功放机 ──────────►  音箱
(power_half_dbm)     │                 │
                     功放增益旋钮        │
                     (slices/duty)      │
                                     最终响度
  • slices/duty_cycle = 功放机后面的增益旋钮 —— 决定了功放"最多能放多大"。旋钮拧到最大 = PA 能力全开
  • power_half_dbm = 手机音量滑块 —— 在 PA 的能力范围内,决定实际发多大的信号

只调 PA 不调 power,等于功放拧大了但手机音量是 0 → 没声音。只调 power 不调 PA,等于手机开满但功放是关的 → 信号到不了天线。
 

ramp_time — PA 功率爬升速度

射频发射时,PA 不能瞬间从 0 跳到满功率 —— 会产生频谱溅射,污染相邻信道:

ramp_time 短 (2µs):          ramp_time 长 (304µs):
功率                         功率
│   ┌────── 满功率             │         ╭────── 满功率
│  ╱                          │        ╱
│ ╱                           │      ╱
│╱                            │    ╱
└──────────► 时间             └──────────► 时间
  频谱脏 (谐波多)                频谱干净 ✓

lr20xx_radio_common_types.h:138-159

ramp_time频谱质量额外耗时
2 µs差,谐波严重几乎无
16 µs一般可忽略
128 µs轻微
304 µs最好每包多 0.3ms
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐