LVR(Low Voltage Reset,低电压复位)用于在 MCU 供电电压低于可靠工作范围时触发复位, 避免芯片在电压不足的情况下继续高速执行程序。对于 PADAUK MCU,LVR 不应被当成一个孤立参数: 它需要结合 SYSCLK、VDD 实际上升时间以及 Under_20mS_VDD_Ok 一起判断。
如果系统频率较高,却把 LVR 设得过低,VDD 已经低于该频率需要的可靠工作电压时, MCU 仍可能尚未复位,从而增加异常执行或停机风险。若电源属于缓慢上电,更应该优先保证启动阶段的电压与时钟匹配,而不是单纯追求最低 LVR。

文章目录
- LVR 是什么?
- PADAUK MCU 为什么需要 LVR?
- LVR 与 SYSCLK 有什么关系?
- 为什么出现 LVD is too low?
- Under_20mS_VDD_Ok 是什么意思?
- 快速上电如何设置?
- 缓慢上电如何设置?
- 为什么缓慢上电建议先使用 ILRC?
- PADAUK IDE 在哪里修改 LVR?
- 降低 LVR 会改变程序运行吗?
- 常见错误配置
- LVR、SYSCLK 与 VDD 配置对照
- 工程设计建议
- 常见问题 FAQ
LVR 是什么?
LVR 是 Low Voltage Reset 的缩写,中文通常称为“低电压复位”。 它的作用不是提高电源电压,也不是改变程序执行速度,而是在供电电压下降到设定阈值附近时, 让 MCU 进入复位状态,避免芯片继续在不可靠的电压区域执行指令。
对 MCU 来说,“仍然有电”并不等于“仍然能够可靠运行”。当系统时钟频率较高时, 处理器对供电条件的要求通常也更严格。因此,LVR 的核心价值是给 MCU 划出一个更明确的低压退出边界。
PADAUK MCU 为什么需要 LVR?
在 PADAUK PMC、PMS 系列 MCU 的应用中,LVR 用来约束低电压条件下的运行边界。 如果电源跌落或上电过程尚未稳定,而 MCU 已经开始以较高速度运行,程序可能进入不可靠状态。
因此,设置 LVR 的目标并不是“越低越好”,而是让复位阈值与实际工作频率、电源特性和产品启动过程相匹配。 对量产产品而言,这比单纯扩大标称工作电压范围更重要。
LVR 与 SYSCLK 有什么关系?
PADAUK 原厂应用说明指出,LVR 必须配合 SYSCLK 的频率设定:执行速度越高, 对低压工作条件越敏感,LVR 通常也需要设在更安全的等级。
IDE 会检查 SYSCLK 与 LVR 的组合,是为了防止开发者把复位电压设得太低。 如果 VDD 已经低于当前系统频率所需的最低可靠工作电压,而 LVR 还没有动作, MCU 可能继续运行并出现异常。

图 1:SYSCLK 越高,对最低可靠工作电压的要求通常越严格
为什么会出现 “LVD is too low”?
当 PADAUK IDE 判断当前低电压检测/复位设置与系统时钟不匹配时,编译阶段可能出现 LVD is too low 一类提示。它反映的是:当前选择的低电压阈值可能不足以覆盖该 SYSCLK 所需的可靠工作区域。
可以通过编译指令关闭 IDE 对这项关系的检查:
#pragma disable check_lvd

图 2:IDE 提示 LVD is too low 时,应先检查 LVR 与 SYSCLK 组合
但这只是关闭编译器检查,并不会降低芯片本身在该频率下所需的工作电压。 如果只是为了“让编译通过”而关闭检查,却没有重新验证电源与频率条件,就可能把风险从编译阶段转移到产品现场。
Under_20mS_VDD_Ok 是什么意思?
Under_20mS_VDD_Ok 是 PADAUK Code Option 中与上电速度有关的选项。 它的判断关键不是“想不想使用更低 LVR”,而是实际电源是否能在约 20 ms 内快速达到正常工作电压。

图 3:VDD 是否能在约 20 ms 内建立,是 Under_20mS_VDD_Ok 的判断关键
当 VDD 能够快速建立时,可以把该选项设为 YES,原厂说明允许 LVR 再向下调整一级。 如果上电较慢,例如部分 AC 阻容式降压电源,则应设为 NO,并使用更合适的 LVR,避免 MCU 在低压阶段就高速启动。
VDD 在 20 ms 内快速上电时,LVR 应该如何设置?
如果通过示波器或电源设计数据确认 VDD 能够在 20 ms 内进入正常工作范围, 可以在 Code Option 中将:
Under_20mS_VDD_Ok = YES
在满足这一前提后,再根据芯片、SYSCLK 和目标工作电压选择合适的 LVR 等级。 这里的顺序很重要:应先证明电源确实快速稳定,再利用该选项,而不是先为了降低 LVR 去勾选 YES。
缓慢上电时应该如何设置 LVR?
当 VDD 上升过程明显较慢时,应更加保守地设置 LVR。 原厂文档以 AC 阻容式降压为例:这类电源可能需要更长时间才能建立到正常工作电压, 因此应避免 MCU 在低压区域提前进入高速运行。
这种情况下,建议:
- 将
Under_20mS_VDD_Ok设置为NO; - 根据 SYSCLK 选择足够安全的 LVR 等级;
- 必要时让 MCU 在启动初期先以较低速时钟运行;
- 等 VDD 稳定后,再切换到目标高速时钟。
为什么缓慢上电建议先使用 ILRC?
对缓慢上电系统,一个比“继续降低 LVR”更合理的方案,是把启动过程分成两个阶段: 上电初期先运行 ILRC,等电源稳定后,再切换到 IHRC/n。
原厂应用说明展示的思路可整理为:
.ADJUST_IC SYSCLK=ILRC, ...;
...
.delay nnn; // 按实际电源建立时间调整
...
CLKMD = 0x34; // 示例:切换到 IHRC/2

图 4:缓慢上电时,先低速启动、再切换高速时钟的工程思路
这段代码的工程意义不是固定照抄延时值,而是让“时钟提升”发生在 VDD 已经稳定之后。 .delay nnn 应依据实际电源曲线和产品测试结果确定。
PADAUK IDE 在哪里修改 LVR?
根据 PMC-APN007,LVR 可以通过 PADAUK IDE 的菜单进入 Code Option 修改。 原厂文档给出的操作路径为:
执行 → 程序参数 → Code Option

图 5:在 Code Option 中选择 LVR,并设置 Under_20mS_VDD_Ok
在这里可以选择应用需要的 LVR。如果电源确实能在 20 ms 内快速稳定, 也可以在同一配置区域将 Under_20mS_VDD_Ok 设为 Yes, 再根据允许范围选择更低一级的 LVR。
降低 LVR 会改变程序运行吗?
不会。修改 LVR 主要改变的是 MCU 的低电压检测/复位阈值, 并不会直接改变程序逻辑,也不会因为 LVR 变低就自动降低或提高 SYSCLK。
但“程序逻辑不变”并不代表“系统风险不变”。如果把 LVR 设得低于当前频率所需的安全范围, MCU 可能在不可靠电压下继续执行相同程序,这正是需要避免的情况。
PADAUK LVR 常见错误配置
1. 为了扩大低压范围,一味把 LVR 调低
LVR 不是“越低越先进”的参数。它必须与 SYSCLK 和实际供电条件匹配。
2. 看到 LVD is too low 就直接关闭检查
#pragma disable check_lvd 只能关闭 IDE 检查,不能改变芯片的真实工作边界。
3. 没有测 VDD 上升时间就设置 Under_20mS_VDD_Ok = YES
是否选择 YES,应建立在实际电源能快速进入正常工作电压的证据上,而不是为了获得更低一级 LVR。
4. 缓慢上电时,一上电就切到高速时钟
对慢上电应用,更稳妥的策略通常是先低速启动,等 VDD 稳定后再切换到目标高速时钟。
LVR、SYSCLK 与 VDD 配置对照表
| 应用条件 | Under_20mS_VDD_Ok | LVR 思路 | 时钟策略 | 主要风险 |
|---|---|---|---|---|
| VDD 快速建立,20 ms 内进入正常工作范围 | YES |
在芯片与 SYSCLK 允许范围内,可考虑更低一级 LVR | 可按正常启动流程配置 | 必须确认真实上电曲线确实满足条件 |
| VDD 缓慢上升 | NO |
采用更保守的 LVR | 优先低速启动,稳定后再提速 | 低压阶段高速执行导致误动作 |
| SYSCLK 较高 | 按真实电源条件决定 | 不能为了低电压范围随意下调 | 确认高频工作电压裕量 | VDD 低于高频可靠工作要求但尚未复位 |
| IDE 出现 LVD is too low | 重新检查 | 先检查 LVR 与 SYSCLK 组合 | 必要时调整频率或启动策略 | 只关闭检查而未验证硬件条件 |
工程设计建议:不要只看 LVR 数字
设计 PADAUK MCU 的低电压复位时,可以把问题简化成三个彼此关联的参数: SYSCLK、VDD 上升/下降特性、LVR 阈值。
一个更可靠的验证流程是:先确认目标 SYSCLK;再测量真实板卡的 VDD 上电曲线和最低供电条件; 然后选择能够覆盖可靠工作区间的 LVR;最后在冷启动、慢上电、快速断电重启和电源波动条件下做实际测试。
如果产品使用特殊电源结构、较大储能电容、AC 阻容降压或启动时间不确定, 应重点验证“MCU 什么时候开始高速运行”,而不仅仅是记录静态工作电压。
常见问题 FAQ
MCU LVR 是什么?
LVR 是 Low Voltage Reset(低电压复位)。当 MCU 的供电电压下降到设定阈值附近时, LVR 用于触发复位,避免芯片继续在不可靠的低压区域执行程序。
PADAUK LVR 应该设置得越低越好吗?
不是。LVR 必须结合 SYSCLK 和实际 VDD 条件设置。系统频率越高,越需要关注最低可靠工作电压。 把 LVR 设得过低,可能导致 MCU 在电压已经不足时仍未复位。
“LVD is too low” 是什么意思?
它通常表示 IDE 判断当前低电压设置与 SYSCLK 不匹配。应优先检查 LVR、系统频率和供电条件, 而不是只通过关闭检查来消除提示。
Under_20mS_VDD_Ok 应该设置 YES 还是 NO?
如果实际 VDD 可以在约 20 ms 内快速进入正常工作范围,可根据原厂规则考虑设置为 YES; 如果上电较慢,则应设置为 NO,并采用更稳妥的 LVR 和启动策略。
降低 LVR 会影响程序执行速度吗?
LVR 本身不会改变程序执行速度或代码逻辑。它改变的是低电压检测/复位阈值。 但如果阈值设置过低,可能间接导致 MCU 在不可靠电压下继续高速运行。
缓慢上电为什么建议先使用 ILRC?
先以较低速时钟运行,可以降低 MCU 在电源尚未稳定时进入高速工作状态的风险。 等 VDD 稳定后,再切换到 IHRC/n,是更容易控制启动可靠性的工程方案。
参考资料
本文技术依据来自 PADAUK 官方应用说明 PMC-APN007《设置 LVR 时的使用需知》, 适用范围为原文标注的 PMC 及 PMS 系列单片机。本文重新组织了说明顺序,并加入面向工程应用的解释与排查逻辑。
官方 PDF: PMC-APN007 设置 LVR 时的使用需知
