TS393低功耗比较器延长电池类设备寿命
TS393低功耗比较器延长电池类设备寿命
你有没有遇到过这样的尴尬:刚换上的CR2032纽扣电池,没撑几个月设备就“罢工”了?明明MCU已经进了深度睡眠,传感器也选了最低功耗型号,怎么电还是哗哗地掉?🔋
问题很可能出在—— 谁在“值班”?
在大多数低功耗系统里,MCU可以睡,传感器可以歇,但总得有个“门卫”时刻盯着外部信号,比如温度超了没、光暗了没、电池快没电了没。如果这个“门卫”是个高功耗的家伙,那整个系统的节能努力就白搭了。
这时候, TS393 就该登场了。它不像运算放大器那样大材小用,也不像传统比较器那样“吃电如喝水”。这家伙,是专为电池设备设计的“节能哨兵”。👏
为什么非得是它?
我们先来看一组数据,你就懂了:
| 参数 | TS393 | LM393(经典款) |
|---|---|---|
| 静态电流 | 24μA(双通道) | 135μA ~ 1mA |
| 最低工作电压 | 2.0V | 2.0V(但实际性能下降) |
| 封装尺寸 | MiniSO-8 (2×3mm) 或 TDFN-8 (2×2mm) | SO-8 (5×4mm) |
| 工艺 | CMOS | BJT |
看到没? 静态电流差了5~40倍! 换句话说,LM393可能还没干活,一天就自己把电池耗掉1%了。而TS393呢?一年才消耗不到1%的CR2032电量,简直是“电子界的节能标兵”。😎
而且别看它省电,功能一点不含糊:
- 双通道独立比较,能同时监控两个信号;
- 支持2.0V~5.5V宽压供电,从纽扣电池到锂电池通吃;
- 输入失调电压低至±1mV,小信号也能准确判断;
- 开漏输出,轻松对接1.8V/3.3V/5V MCU,还能做电平转换。
它是怎么帮系统“省电”的?
想象一个智能温控贴片,贴在冷链运输的药品箱上,要求连续工作三年。它的任务很简单:每小时测一次温度,超限报警。但如果你让MCU每小时都醒来读ADC,哪怕只运行10ms,日积月累的功耗也扛不住。
怎么办?让TS393来当“守夜人”。
你可以这样设计:
- 把NTC热敏电阻和参考电压接到TS393的输入端;
- 设定一个高温阈值,比如30°C;
- 正常情况下,TS393输出高电平;
- 一旦温度超标,输出立刻拉低,触发MCU中断;
- MCU被唤醒,记录事件并发送警报,然后马上继续睡觉💤。
这样一来,MCU全年99.9%的时间都在深度睡眠(功耗<1μA),只有真正需要时才醒。而TS393全程待命,每天只耗几十微安——这波操作下来,整机平均电流轻松控制在几微安级别。
📌 举个栗子 :
假设TS393持续工作:24μA × 3V = 72μW
每天触发5次,每次MCU运行10ms,平均电流约50μA(峰值高,但时间短)
综合算下来, 年均等效电流还不到10μA !
一颗CR2032(220mAh)理论可用 2.5年以上 !
实战接线 & 设计要点 ⚠️
别以为接上就能用,几个关键细节没处理好,照样翻车!
✅ 上拉电阻怎么选?
TS393是
开漏输出
,必须外加上拉电阻。推荐值:
-
10kΩ
:响应快,适合高频信号;
-
100kΩ
:更省电,适合低频唤醒场景(如电池检测);
注意:阻值越大越省电,但上升沿会变缓,极端情况可能导致MCU误判。一般建议在 10k~100kΩ之间权衡 。
✅ 输入噪声抑制
传感器走线一长,容易引入干扰,导致输出抖动。解决办法:
- 在输入端加RC滤波,比如
100kΩ + 10nF
(截止频率约160Hz);
- 避免与数字信号线平行走线;
- 尽量靠近芯片布局,减少寄生电容。
✅ 迟滞(Hysteresis)防抖
对于缓慢变化的信号(比如温度、光照),如果没有迟滞,可能会在阈值附近反复跳变,造成MCU频繁唤醒。
加个正反馈就行啦👇:
┌─────────┐
OUT ─┤ 1MΩ ├─→ IN+
│ │
└──┬──────┘
│
10kΩ
│
GND
这样能产生约 5mV 的回差电压 ,有效防止振荡。公式是:ΔV = Vout × R2/(R1+R2),简单又实用!
✅ 电源去耦不能少
再省也不能省这个: 在VCC引脚靠近芯片处放一个0.1μF陶瓷电容 。不然电源波动一来,比较器可能误动作,那就真成“假警报专业户”了。
和MCU怎么配合?代码长啥样?
下面这段STM32代码,展示如何用TS393实现“按需唤醒”:
#include "stm32l4xx_hal.h"
#define COMP_OUT_PIN GPIO_PIN_1
#define COMP_OUT_PORT GPIOA
#define COMP_EXTI_LINE EXTI_LINE_1
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_PWR_Init(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_PWR_Init();
HAL_SuspendTick(); // 关闭SysTick中断,进入低功耗模式
while (1)
{
// 进入STOP2模式(RAM保持,功耗极低)
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
// 被TS393唤醒后执行任务
HAL_ResumeTick();
Process_Event(); // 处理事件:上报、记录等
HAL_Delay(50); // 短暂延时确保完成通信
HAL_SuspendTick(); // 再次关闭时钟,准备下一轮休眠
}
}
// 外部中断回调函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if (GPIO_Pin == COMP_OUT_PIN)
{
// 可添加标志位、LED提示或直接调用处理函数
__NOP();
}
}
// 初始化PA1为中断输入
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.Pin = COMP_OUT_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; // 下降沿触发(假设常态高)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(COMP_OUT_PORT, &GPIO_InitStruct);
// 配置NVIC
HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI1_IRQn);
}
💡
关键点解析
:
-
HAL_PWR_EnterSTOPMode()
让MCU进入接近零功耗的休眠状态;
- TS393输出下降沿触发外部中断,强行“拍醒”MCU;
- 唤醒后快速处理任务,再次入睡;
- 整个过程无需定时轮询,
真正做到“无事不扰”
。
实际应用场景有哪些?
别以为它只能做个“电压判官”,它的戏路可广了:
🔋 电池电量监测
用分压电阻采样电池电压,设定欠压阈值(如2.0V),当电量不足时自动提醒更换或关机。尤其适合蓝牙信标、IoT节点这类长期无人维护的设备。
🌓 光控开关
搭配光敏电阻,白天断开照明电路,晚上自动开启。因为TS393能在2V下工作,即使电池快没电也能正常判断,避免“黑灯瞎火”的尴尬。
🌡️ 温度告警
连接NTC或PTC,设定高温/低温阈值,用于冷链监控、工业设备保护等场景。加上迟滞后,完全不用担心温漂引起的误报。
🧪 化学/生物传感器接口
许多传感器输出的是模拟电压变化,TS393可作为第一级判断单元,决定是否需要启动主控进行复杂分析,极大降低整体能耗。
为什么说它是“事件驱动架构”的灵魂?
现代低功耗系统的设计哲学正在转变:
过去是“我每隔X秒查一次” → 现在是“有事你叫我”。
TS393正是这一理念的物理体现。它不像ADC那样需要CPU参与采样,也不像定时器那样机械地打断睡眠。它是 真正的异步事件探测器 ,始终在线却不喧宾夺主。
你可以把它看作MCU的“外挂感官”,专门负责捕捉那些“值得惊动你”的瞬间。而剩下的时间,整个系统都可以安心“冬眠”。
🧠 所以说, 低功耗不是靠某个器件单独实现的,而是由架构决定的 。TS393虽小,却是构建这种高效架构的关键拼图。
结语:每一微安都值得尊重 💚
在这个追求“十年续航”的时代,我们不能再对那几十微安的静态电流视而不见。TS393或许不是最便宜的比较器,也不是最快的,但它在 能效比 这条赛道上,绝对是佼佼者。
它让我们意识到:有时候,
少即是多
。
一个24μA的芯片,反而能让整个系统节省上百倍的电量。
未来,随着更多超低功耗传感器和MCU的出现,像TS393这样的“幕后英雄”只会越来越重要。它们不炫技,不抢风头,只是默默地站在第一线,守护着那一颗小小的电池,让它走得更远、更久。
“最好的节能,是让系统大部分时间什么都不做。”
—— 而TS393,就是那个让它“安心不做”的人。✨
更多推荐
所有评论(0)