113018467 发表于 5 天前

当STC单片机,在正常运行情况下,供电电压跌到1.9V以下,芯片会是什么状态


STC8H1K17 ,STC8H1K08 系列
根据手册电气特性参数,单片机工作电压为 1.9V 至 5.5V,“图二” 里 “允许低电压复位” 设置,可以配置不同的电压,假设我的设置是 2.7V。
这样电压就分了3个段:
1、2.7V 以上单片机正常运行
2、1.9V 至 2.7V 低压异常处理(根据设置,进入中断或复位)
3、1.9V 以下,单片机不工作

电路如 “图一”:上电后,2.7V 以上单片机正常运行。
第一个问题:程序5V正常运行时,当 “VCC_5V” 下降到1.9V 至 2.7V 这个范围,单片机根据设置会进入 “低压中断” 或 “低压复位”。在复位前单片机还是能正常执行指令,说明是运行的,这时 ”寄存器数据“ 和 "端口的输出状态” 是否还是和正常运行是一样?

第二个问题:程序5V正常运行时,当 “VCC_5V” 下降到1.9V 以下,又没有到 0V。假设下降到1.5V 到 1.6V,根据手册给出的供电条件,单片机已经不工作了,这时 ”寄存器数据“ 和 "端口的输出状态” 会怎么样?

图一:


图二:


网老四 发表于 5 天前

既然允许低压2.7V复位,当电源电压从5v降低到门2.7V就触发了片内硬件复位电路工作,单片机清零,不会进中断的,根本不会等待1.9V,
1.9-2.7V之间也不会运行用户代码.

狂热主宰 发表于 5 天前

可能有小电池会选择较低电压
但低压可能影响稳定运行

梁工 发表于 5 天前

1.9V以下芯片复位

113018467 发表于 5 天前

梁工 发表于 2026-7-17 15:43
1.9V以下芯片复位

程序运行的时候,我给高电平或者低电平,那么1.9V一下,芯片复位了,端口应该恢复为高阻态没有错?

梁工 发表于 5 天前

113018467 发表于 2026-7-17 17:26
程序运行的时候,我给高电平或者低电平,那么1.9V一下,芯片复位了,端口应该恢复为高阻态没有错? ...

复位就会恢复上电启动状态,该高阻的还是会高阻。

jwd 发表于 5 天前

低于复位电压时是初始态,大部分默认是高阻

angmall 发表于 5 天前

<p><strong>您的理解基本正确,但需要精确到具体端口:</strong></p>
<ul>
<li>✅ <strong>对于除 P3.0/P3.1 之外的所有I/O口</strong>:您说得完全正确——芯片复位后,这些端口恢复为 <strong>高阻输入状态</strong>。无论您之前设置的是推挽输出高电平、推挽输出低电平、还是开漏模式,复位后都变为高阻输入。</li>
<li>⚠️ <strong>对于 P3.0 和 P3.1</strong>:这两个端口复位后是 <strong>弱上拉/准双向口模式</strong>(不是高阻),内部有约 4KΩ(@5V)的上拉电阻,对外呈现 <strong>高电平</strong>。</li>
</ul>

神农鼎 发表于 3 天前


神农鼎 发表于 3 天前

<p>好的,我已经完整查看了该帖子的全部内容。下面为您总结并给出专业分析:</p>
<hr />
<h2>帖子内容摘要</h2>
<p><strong>标题:</strong> 当STC单片机,在正常运行情况下,供电电压跌到1.9V以下,芯片会是什么状态</p>
<p><strong>楼主(11301</strong>*)问题:**<br />
使用 STC8H1K17/STC8H1K08 系列,设置低压检测电压为 2.7V,将电压分为三段:</p>
<ol>
<li><strong>2.7V以上</strong> — 正常运行</li>
<li><strong>1.9V ~ 2.7V</strong> — 低压异常处理(中断或复位)</li>
<li><strong>1.9V以下</strong> — 单片机不工作</li>
</ol>
<p><strong>问题1:</strong> 电压从5V下降到1.9V~2.7V范围时,触发低压复位前,寄存器数据和端口输出状态是否还和正常运行时一样?</p>
<p><strong>问题2:</strong> 电压下降到1.9V以下(如1.5V~1.6V),单片机不工作了,寄存器数据和端口输出状态会怎样?</p>
<hr />
<h2>各楼层回复要点</h2>
<table>
<thead>
<tr>
<th>楼层</th>
<th>内容</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>回复1(网</strong>*)**</td>
<td>既然设置了2.7V低压复位,电压降到2.7V就触发硬件复位,单片机清零,不会进中断,也不会在1.9V~2.7V之间运行用户代码</td>
</tr>
<tr>
<td><strong>回复3(梁</strong>*)**</td>
<td>1.9V以下芯片复位</td>
</tr>
<tr>
<td><strong>回复4(楼主追问)</strong></td>
<td>1.9V以下芯片复位后,端口恢复为高阻态?</td>
</tr>
<tr>
<td><strong>回复5(梁</strong>*)**</td>
<td>复位恢复上电启动状态,该高阻的还是会高阻</td>
</tr>
<tr>
<td><strong>回复6(jw</strong>*)**</td>
<td>低于复位电压时是初始态,大部分默认是高阻</td>
</tr>
<tr>
<td><strong>回复7(angm</strong>*)**</td>
<td>✅ 除P3.0/P3.1外,所有I/O口复位后恢复为<strong>高阻输入状态</strong>;⚠️ P3.0/P3.1复位后为<strong>弱上拉/准双向口模式</strong>,对外呈现高电平</td>
</tr>
</tbody>
</table>
<hr />
<h2>我的专业分析(作为 STC FAE)</h2>
<p>结合手册和论坛讨论,我来为您系统解答:</p>
<h3>关于问题1:电压从5V下降到2.7V时</h3>
<p>当您勾选了 <strong>&quot;允许低压复位&quot;</strong> 并设置检测电压为 <strong>2.7V</strong> 时:</p>
<ul>
<li>电压从5V下降,一旦跌到 <strong>2.7V(阈值)</strong>,片内低压检测硬件立即触发<strong>复位</strong>,单片机被清零</li>
<li><strong>不会</strong>进入低压中断(因为您选的是&quot;允许低压复位&quot;而非&quot;允许低压中断&quot;)</li>
<li><strong>不存在</strong>&quot;1.9V~2.7V之间还能运行用户代码&quot;的情况——复位发生后芯片就停止执行用户程序了</li>
<li>寄存器数据被复位到默认值,端口恢复为复位状态</li>
</ul>
<blockquote>
<p>如果您希望电压下降时<strong>先执行紧急处理再复位</strong>,应选择 <strong>&quot;允许低压中断&quot;</strong>(不勾选&quot;允许低压复位&quot;),在低压中断服务程序中保存关键数据、设置安全状态,然后可软件触发复位。</p>
</blockquote>
<h3>关于问题2:电压下降到1.9V以下(如1.5V~1.6V)</h3>
<p>此时已低于芯片最低工作电压(1.9V),芯片<strong>完全停止工作</strong>:</p>
<ul>
<li><strong>寄存器数据:</strong> 不可靠,可能随机丢失或保持部分数据,不能依赖</li>
<li><strong>I/O口状态:</strong> 芯片内部逻辑失控,端口状态不确定。但根据芯片设计,在电压跌落过程中如果已触发复位,则端口已恢复为复位状态:
<ul>
<li><strong>P3.0/P3.1:</strong> 弱上拉/准双向口,对外呈现<strong>高电平</strong></li>
<li><strong>其他I/O口:</strong> <strong>高阻输入状态</strong></li>
</ul>
</li>
</ul>
<h3>总结建议</h3>
<table>
<thead>
<tr>
<th>场景</th>
<th>行为</th>
<th>端口状态</th>
</tr>
</thead>
<tbody>
<tr>
<td>5V → 降至2.7V(勾选低压复位)</td>
<td><strong>硬件复位</strong>,不执行用户代码</td>
<td>除P3.0/P3.1为弱上拉高电平外,其余为高阻输入</td>
</tr>
<tr>
<td>5V → 降至2.7V(勾选低压中断)</td>
<td><strong>进入中断</strong>,可执行紧急处理</td>
<td>用户程序可控制,中断退出后仍可维持</td>
</tr>
<tr>
<td>继续降至1.9V以下</td>
<td>芯片<strong>停止工作</strong></td>
<td>同上(复位状态维持)</td>
</tr>
</tbody>
</table>
<p><strong>建议:</strong> 如果您的应用需要电源跌落时做安全处理(如保存参数、关闭负载),请使用 <strong>&quot;允许低压中断&quot;</strong> 模式,在中断中执行保护操作后再软件复位。</p>
<hr />
<p><a href="https://www.stcaimcu.com/plugin.php?id=twpx_xunsearch&amp;mod=forum&amp;q=https%3A%2F%2Fwww.stcaimcu.com%2Fthread-24942-1-1.html&amp;f=_all&amp;m=yes&amp;syn=yes&amp;s=relevance&amp;fid=0">🔍 搜索 &quot;https://www.stcaimcu.com/thread-24942-1-1.html&quot;</a></p>
<p>⏱️ 查找用时 3.3s | 总回答用时 15.8s</p>
页: [1]
查看完整版本: 当STC单片机,在正常运行情况下,供电电压跌到1.9V以下,芯片会是什么状态