射频芯片学习-PA = Power Amplifier(功率放大器)

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芯片举例:

cpp 复制代码
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)。


最终输出功率是怎么来的

cpp 复制代码
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
相关推荐
Amazing_Cacao1 小时前
CFCA精品可可产区风土体系(亚洲):彻底拒绝应试背诵,将感官复核作为检验真实物理差异的唯一铁律
学习
caimouse8 小时前
protoc-gen-c 支持 proto3 `optional` 关键字修改记录
c语言·学习
憧憬成为java架构高手的小白8 小时前
黑马八股--中间件学习之MQ(RabbitMQ)
学习·中间件
撩得Android一次心动9 小时前
Linux编程笔记4【个人用】
linux·笔记·学习
user-猴子10 小时前
让网页“活”过来 —— 用AI打造会自主学习的动态知识图谱
人工智能·学习·知识图谱
网络工程小王10 小时前
【HCIE-AI】10.pytorch模型迁移分析
人工智能·学习·华为·llama
魔城烟雨12 小时前
从零开始学习betaflight《3-硬件接口设计规范标准》
学习·设计规范
不言鹅喻14 小时前
HarmonyOS ArkTS 实战:实现一个单词背诵与英语学习应用
学习·华为·harmonyos
正经人_x14 小时前
学习日记42
学习
一只小菜鸡..15 小时前
南京大学 操作系统 (JYY) 学习笔记:导论与历史的轮回 (OS Introduction)
笔记·学习