电子镇流器设计的难点从来不是"把灯点亮",而是把预热、点火、运行三个阶段的工作频率与时序管住。本文以 IR2167 单芯片方案为主线,讲透临界导通模式 PFC、600V 半桥谐振、参数计算公式、六重保护阈值与布板规则。
结论先行:荧光灯电子镇流器的成败,取决于"预热—点火—运行"三个阶段的工作频率是否被精确管住。灯管发黑、点火失败、半桥炸管这三类现场高发故障,本质上都源于时序或频率越界,而不是器件选得不够大。本文基于 IR2167 数据手册(IR 公司 PFC 镇流器控制 IC,20 引脚 PDIP/SOIC 封装),把一颗芯片内部集成的临界导通模式 PFC、600V 半桥驱动、三态振荡器与六重保护逐一拆开,给出可直接代入的元件计算公式与一组完整算例,并附上用于批量校核参数的 C 代码。
传统自研镇流器常见的做法是"三块拼装":前面一颗 PFC 控制芯片负责功率因数,中间一颗半桥驱动 IC 负责推挽,后面再用比较器、单稳态和一堆 RC 搭出预热与点火时序。器件多、时序难对齐,最要命的是保护逻辑互相打架——PFC 还在升压,半桥已经进点火,母线电压一塌,灯管就再也起不来。
IR2167 的思路是把这三块合并成一条状态机:PFC 使能、半桥频率、保护窗口都由同一个状态机统一调度,芯片内部还带一个 15.6V 齐纳钳位(典型值,范围 14.0~16.5V,测试条件 ICC=10mA),因此外部不需要再为 VCC 单独做稳压。它的引脚功能如下表,后面所有公式都围绕这张表里的几个编程脚展开。
| 引脚 | 符号 | 功能 | 设计要点 |
|---|---|---|---|
| 1 | VDC | 直流母线/交流输入检测 | 外接分压 R1/R2 与 C1,上电判据 5.1V |
| 2 | CPH | 预热定时电容 | 内部 2.8µA 恒流充电,4.0V 进点火、5.1V 进运行 |
| 3 | RPH | 预热频率电阻 / 点火斜率电容 | 与 RT 并联决定预热频率;该脚的外接电容 CRAMP 决定频率下降斜率 |
| 4 | RT | 振荡器定时电阻 | 稳压在 2.0V,脚电流须保持 50µA~500µA |
| 5 | RUN | 运行频率电阻 | 运行模式下被内部拉到 COM,与 RT 并联 |
| 6 | CT | 振荡器定时电容 | 锯齿波 2.0V~4.0V,推荐最小值 220pF |
| 7 | DT | 死区时间编程 | 外接 RDT,与 CT 共同决定死区 |
| 8 | OC | 过流阈值编程 | 内部 50µA 电流源,经 ROC 设定 CS+ 阈值 |
| 9 | COMP | PFC 误差放大器补偿 | PFC 环路的补偿网络接点 |
| 10 | ZX | PFC 电感过零检测 | 接升压电感副绕组,阈值 2.0V |
| 11 | VBUS | 母线电压反馈 | 内部基准 4.0V,过压比较器 4.3V |
| 12 / 15 / 20 | PFC / LO / HO | 三路栅极驱动输出 | 上升 85ns、下降 45ns(典型值) |
| 13 / 14 | SD / CS | 关断输入 / 电流检测 | SD 兼作灯管存在与寿命终点检测;CS 接低端管源极电阻 |
| 16 / 17 / 18 / 19 | COM / VCC / VB / VS | 地 / 供电 / 自举供电 / 浮地回 | VB-VS 自举,耐压 625V,允许 dV/dt 50V/ns |
把状态图看懂,这颗芯片就没有秘密了。它的工作过程是一段严格单向推进、条件触发回退的流程:上电后先进入 UVLO(欠压锁定),此时 HO、LO、PFC 三路输出全部为低,CT 通过 RDT 接地以关闭振荡器,静态电流仅 250µA(典型值,最大 400µA),启动电流低至 150µA 量级——这正是可以用一颗大阻值启动电阻从整流母线取电的原因。
满足三个条件后芯片才起振:VCC 高于 11.4V(典型值)、VDC 高于 5.1V、SD 低于 4.85V。随后进入预热、点火、运行三段,任何一段出问题都会跳到 FAULT 并锁存。
| 阶段 | 进入条件 | 振荡频率 | PFC / 保护状态 |
|---|---|---|---|
| UVLO | VCC 低于开启阈值 | 停振(CT 经 RDT 接地) | PFC 关闭,COMP 拉零,三路输出低 |
| 预热 PREHEAT | VCC 达标 + VDC>5.1V + SD<4.85V | 由 RPH∥RT 决定,频率最高 | PFC 使能并升压;CS+ 阈值尚未启用 |
| 点火 IGNITION | CPH 充电到 4.0V | 频率沿 CRAMP 斜率下降至最低 | CS+ 过流阈值启用,防止点火电流失控 |
| 运行 RUN | CPH 充电到 5.1V | 由 RT∥RRUN 决定 | 启用 CS- 0.23V 欠流阈值与 SD 的 1V/3V 寿命窗口 |
| FAULT | 过流/未点亮/欠流/过温/母线异常 | 停振,静态电流降至 100µA | 故障锁存,需 SD 或 VCC 循环复位 |
这里有一个容易被忽略的设计自由度:控制时序允许运行频率高于点火频率,即 fstart > fph > frun > fign。当谐振 LC 的批次公差较大、点火频率与运行频率贴得太近时,这种"先降到最低点火、再回升到运行"的策略能让每一只管子在整批生产中都可靠起辉;反之若把 RUN 脚悬空,则得到 fstart > fph > fign > frun 的常规曲线。
PFC 部分工作在临界导通模式(Critical Conduction Mode):升压电感的电流在每个开关周期都回到零,开关频率自由游走——在交流过零点附近频率最高,在峰值附近频率最低。它之所以敢省掉整流输入电压采样,是因为整流后的市电本身已经是正弦包络,只要让电感电流在每个周期都放电到零,电流包络自然跟随电压包络。
判断"电流到零"的任务交给了 ZX 脚:升压电感上的副绕组把过零信号送进来,比较阈值 2.0V(典型值,范围 1.7~2.3V)。导通时间则由 COMP 脚上的误差放大器决定——母线反馈 VBUS 与内部 4.0V 基准比较,误差放大器的跨导在启动阶段自动拉到最大(典型 90µmho,输出源电流 30µA),把母线尽快抬到额定值;进入运行后增益回落,以保证环路稳定。
两个细节直接关系到可靠性:
手册给出的实测波形中,这一方案可做到功率因数 0.96、总谐波失真 22% 的水平,对荧光灯这类中小功率照明负载已经足够满足常规谐波要求。
这颗芯片的可编程性集中在六个元件上:RT、CT、RDT、RPH、RRUN、CPH。手册给出的关系式都很简洁,整理如下。注意死区公式是整条计算链的起点,因为三段频率都含同一个 td。
| 目标参数 | 计算公式 | 推荐取值范围 / 备注 |
|---|---|---|
| 死区时间 td | td = 0.69 × RDT × CT | 典型 2.4µs @ RDT=6.1kΩ、CT=470pF |
| 点火(最低)频率 fIGN | fIGN = 1 / [2 × (RT × CT + td)] | 由 RT 单独决定,此时 RPH、RUN 均开路 |
| 预热频率 fPH | fPH = 1 / [2 × (RT∥RPH × CT + td)] | RPH 与 RT 并联,预热频率最高 |
| 运行频率 fRUN | fRUN = 1 / [2 × (RT∥RRUN × CT + td)] | 可高于或低于点火频率 |
| 预热时间 tPH | tPH = 4.0 × 10⁶ × CPH | CPH 内部以 2.8µA 充电至 4.0V |
| 过流阈值编程 | ROC = VCS+ / 55µA | CS+ 典型阈值 1.2V;手册另处提到内部 50µA 源,建议按 55µA 计算并留裕量 |
下面代入一组常见 T8 灯管参数:CT 取 470pF,死区目标 1.0µs,点火频率 40kHz,预热 60kHz,运行 45kHz,预热时间 1s,过流阈值按默认 1.2V。
| 元件 | 计算过程 | 取值 |
|---|---|---|
| RDT | 1.0µs / (0.69 × 470pF) | 3.1kΩ |
| RT | (1/(2×40kHz) − 1.0µs) / 470pF = 11.5µs / 470pF | 24.5kΩ(IRT≈81.6µA,落在 50~500µA 区间内) |
| RPH | 先算并联目标 15.6kΩ,再反解 1/(1/15.6k − 1/24.5k) | 43kΩ(RPH 脚电流约 46.5µA) |
| RRUN | 并联目标 21.5kΩ,反解得 178kΩ | 178kΩ |
| CPH | 1s / 4.0×10⁶ | 250nF |
| ROC | 1.2V / 55µA | 22kΩ |
点火电压的目标值随灯型变化,手册给出的 T8 灯管典型需求是 1600V:随着频率从预热值下降到谐振点附近,灯管两端电压逐步抬升,在最低频率处达到足以击穿的值。预热是否充分则用热态/冷态灯丝电阻比 4:1 作为判据——测量灯丝两端电压,比值达到 4 左右说明灯丝已进入正常发射温度,此时所需的点火电压最低、灯管寿命最长。若为省事把预热时间压到 0.3s 以内,灯丝来不及升温,点火电压需求抬高、灯管两端发黑,这就是"省了两毛钱电容、赔了一整批灯管"的典型场景。
批量调试时,用下面这段 C 代码把公式固化成校核工具,可以避免手工反解并联电阻时的取整误差:
#include <stdio.h>
#include <math.h>
#define CT 470e-12 /* 振荡器定时电容 F */
#define TD 1.0e-6 /* 目标死区时间 s */
/* 由目标频率反解并联后的等效定时电阻 */
static double r_eff(double f)
{
return (1.0 / (2.0 * f) - TD) / CT;
}
/* 已知 RT 与目标并联值,反解需要外接的 RPH 或 RRUN */
static double r_parallel(double r_eff_target, double rt)
{
return 1.0 / (1.0 / r_eff_target - 1.0 / rt);
}
int main(void)
{
double rt = r_eff(40000.0); /* 点火频率 40kHz */
double rph = r_parallel(r_eff(60000.0), rt); /* 预热 60kHz */
double rrun = r_parallel(r_eff(45000.0), rt); /* 运行 45kHz */
double rdt = TD / (0.69 * CT);
double cph = 1.0 / 4.0e6; /* 预热时间 1s */
printf("RDT=%.1fk RT=%.1fk RPH=%.1fk RRUN=%.1fk CPH=%.0fnF\n",
rdt/1e3, rt/1e3, rph/1e3, rrun/1e3, cph*1e9);
printf("IRT=%.1fuA IRPH=%.1fuA ROC(1.2V)=%.1fk\n",
2.0/rt*1e6, 2.0/rph*1e6, 1.2/55e-6/1e3);
return 0;
}
/* 输出:RDT=3.1k RT=24.5k RPH=43.0k RRUN=178.0k CPH=250nF
IRT=81.6uA IRPH=46.5uA ROC(1.2V)=21.8k */
保护是这个方案最值得抄的部分。它把灯管侧的异常全部转成三个检测脚的电压判断,一旦触发就锁存并停振,静态电流降到 100µA 量级。
| 保护项 | 检测脚 | 典型阈值 | 触发原因与恢复方式 |
|---|---|---|---|
| 交流输入欠压 | VDC | 上限 5.2V / 下限 3.1V(迟滞约 2V) | 市电跌落或断电,避免半桥硬开关;市电恢复后从头重启 |
| 灯管拔出 / 灯管故障 | SD | 上升阈值 5.25V(迟滞 150mV) | 灯管拔出时停振;换灯后 SD 回落即自动重启 |
| 灯管寿命终点 | SD | 窗口 1.0V ~ 3.0V | 运行中灯管电压升高、SD 越出窗口即关断,避免继续硬推老化灯管 |
| 过流 / 未点亮 / 硬开关 | CS | CS+ 1.2V(0.23V 为欠流阈值) | 预热结束后启用,逐周期检测;延迟约 350ns |
| 低于谐振(无负载) | CS | CS− 0.23V,与 LO 下降沿同步采样 | 运行模式启用,防止空载时半桥失控 |
| 过热 | 结温 | 约 160℃ 锁存 | 需 SD 循环或 VCC 低于欠压回落阈值才能复位 |
有一点必须注意:过温保护是锁存式的,靠"等它自己凉下来"不会恢复。工程上要么给 SD 脚设计一个可由主控驱动的复位通道,要么预留 VCC 断电重启路径,否则现场维护人员会以为整机坏了。
功率控制 IC 的失效案例里,相当一部分不是设计错,而是地线走错。手册里明确给出了三条规则:
把上面几条合起来看,这个方案的工程价值就很清楚了:外部元件数量从"三块拼装"方案的数十个降到十几个,三段频率由同一组 RC 定义,保护逻辑与频率时序天然同步,调试时只需盯住 CPH 和 SD 两个脚就能判断整机状态。
一句话收尾:电子镇流器的可靠性不取决于功率管选多大,而取决于预热、点火、运行三段频率与六重保护阈值是否被同一套时序管住——把这六个公式算准、把 COM 的地走对,灯管和半桥就都能活得久。
本文基于《IR2167 PFC Ballast Control IC》数据手册(IR 公司 PD60184-D)等资料整理优化。
沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · AI智能硬件 · 一站式交付
电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应