射频芯片学习-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
相关推荐
小席是个热心肠2 小时前
AI相关的自我学习
java·人工智能·学习
何事误红尘5 小时前
Mqtt学习笔记(一):Mosquitto服务器搭建、MQTTX安装测试
学习
青山是哪个青山5 小时前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
那年窗外下的雪.7 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
蒸蒸yyyyzwd7 小时前
cpp选手备战后端学习笔记day6 秋招笔试题
笔记·学习
weixin_446260859 小时前
AVA-Encoder:面向智能体原生视频表征学习框架
学习·音视频
吃好睡好便好9 小时前
说说口罩的佩戴
学习·生活·口罩
nnerddboy10 小时前
LoRa自学笔记01:原理与学习路线
笔记·学习
fīɡЙtīиɡ ℡10 小时前
大模型结构化输出
人工智能·学习
Dave12054610 小时前
Day17:Agent Memory高级设计——短期记忆、长期记忆与向量语义记忆
人工智能·学习