| | | | | 哈哈。卢总。想当初跟你买这个IC你都不卖的。现在把技术都要贡献出来啦?期待中。
你说的那个通过脉冲兼容可控硅的,可否用MCU直接模拟脉冲来兼容调光器呢? |
|
|
|
| | | | | | | | | 哈哈,五年前就知道你是用这个IC来做的。因为当时你在讨论,突然就自己试验成功了,就不讨论了。不过还是支持你! |
|
|
|
|
|
|
| | | | | 强烈支持版主,学习了,我的QQ:2492643812,我们私聊! |
|
|
|
|
|
| | | | | 楼主有没有用MCU做过调光器兼容脉冲的方案?直接控制负载电阻EMI的问题还存在吗? |
|
|
|
|
|
| | | | | | | | | 确实,一般硬件工程师不懂软件,但一个优秀的硬件工程师是必须懂软件的。
数字电路中的0或1就就相当于逻辑电路中的高电平与低电平,很多时候电路中应用到大量逻辑电路,工程师们就会用心研究用单片机取代,很多时候可以降低开发时间,降低产品的物料成本。 |
|
|
| | | | | 说到单片机设计可控硅调光电源,还是很多人对我有印像呀!下面电路是最早开发出来的调光电源电路。
电路看起来是比较复杂的,基实也就分3部份,PSR/MOS驱动/可控硅调光控制
这个是采用填谷PFC,后来由于客户要求设计更小的尺寸放在球泡内,所以又开发单级PFC+PSR的可控硅调光电源。
我们还是从简单的PSR电路开始分析,PSR电路的出现,大大降低了电源的成本,减小电源使用器件也是有利于提高电路的可靠性
在PSR电路中采用内固定基准,并且输出功率有以下公试。
Pout=I[sub] P[/sub][sup] 2 [/sup] X L X F X n%
我们再看一个公试 P=I[sup] 2[/sup] R
当可控硅调光时不仅是导通角发生了变化,本质上有效电压也发生了变化,如果利用输入电压作为PSR的基准,那么将实现非常完美的调光。
以上是重点部份,可能有些人一下子没理解过来,接下来我们先讲讲PSR部份的工作原理。
|
|
|
|
|
|
|
|
|
|
|
|
| | | | | | | | | | | | | | | | | 没有问题,两个MOS串起来来了,Vds=600V+30V,不知道可否这样理解 |
|
|
|
| | | | | | | | | | | | | | | | | | | 因为单片机工作电压很低,PWM输出的电压也低,不足以驱动高压MOS管,但驱动低压MOS是没问题的,所以这样的电路就产生了。 |
|
|
|
| | | | | | | | | | | 由于输出电流只与R-ADJ要有关,当输入电压超过D7稳压值时就被稳定住,这也是为什么当输入电压大于200V以后输出电流不再增大的原因。 |
|
|
| | | | | | | | | | | | | 我比较关心楼主8位机怎么做闭环控制的
是不是峰值控制? |
|
|
| | | | | | | | | | | | | | | 我采用比较简单的方法
如在20楼中的公式:
若:F = Uout/K K为常数
则有:Iout = I[sub]P[/sub][sup]2 [/sup]X L X (Uout/K) X n% / Uout
上试可以看出不管Uout如何变输出电流是恒定的。
则单片机实现的是:F = Uout/K
软件启动实现为:F++
另外峰值已由R-ADJ决定,单片机不再处理。 |
|
|
| | | | | | | | | | | | | | | | | 是不是ADC采样电流跟给定值比较?来控制PWM的占空比? |
|
|
|
| | | | | | | | | | | | | | | | | | | 这贴里要讲两种PSR
前面这个是采用IPK来实现的,而ADC采样的是输出电压。你再看看20楼公式,看看有什么问题。
还有后机讲的是单极PFC+PSR,这类芯片大多采用TOP控制,即采用固定导通时间方式。
单片机PWM控制精度是不够的,但我们可以采用PFM就可以更好的解决问题了。
|
|
|
| | | | | | | | | | | | | | | | | | | | | 单级PFC的方案一定是实现固定的Ton。这个也有两种实现方法:
1.开环的,根据输入电压来确定Ton,那么输出电流就跟感量有关;
2.利用乘法器,这个单片机应该实现不了。。。 |
|
|
|
|
|
| | | | | | | | | | | | | | | | | | | | | 输出电路与L有光啊,那不同的变压器不是输出电流不同,有补偿吗? |
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | 这种方法是补偿输入电压对输出电流的影响吧,我说的是电感量对输出电流的影响,不过你前面有个可调电阻,估计可以调整 |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | 上面电路里没加入这个补偿
电位器是用来调电流的,客户要求电流大小都不一样
电感补偿大多设计在+-10%的误差。不过不同原理,要求也是不同的。 |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 你的算法决定了电感跟输出电流有关,所以,无法补偿。 |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 在另外一种算法里面:检测Ipk和Tdis/T的方法里面,对电感量就没有要求了。 |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 看下39楼,是采硬件实现的。
在QR或CCM中大多是对电感没要求的。 |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QR是DCM模式的;CCM的?不可能吧,现在PSR架构的都是DCM的。
很多模拟的IC是检测Ipk(CS脚的阀值是一定的,所以Ipk是恒定的);另外就是IC内部固定Tdis/T,就可以保证输出电流恒定了。 |
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 还有一种单片机直读电感方法,即在运行过程中直接读取电感值,后面我做个详细的操作方法。 |
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 是呀!操作方法也很简单的
对了,48楼说没有CCM的PSR这个你什么看,呵呵!!! |
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 是呀,不过有一种算法也是比较简单的
反激CCM有
D=Vf/(Vin+Vf)
即占空比D反应出输入电压与输出电压的特性
可以做这样简单的理解:输出电压上升,D变大,输入电压上升D变小,变化值与输入输出的电压有关。
刚找了一会没找到几年前的一份计算表,计算表明当IP=D*K时可以实现恒输出。
这样的芯片是不心检测输入电压与输出电压的,类似SY5810的芯片都采样这种采样原理。
最后:由于计算中没有L出现,即与L无关,所以不存在电感补偿问题。
|
|
|
|
|
|
|
| | | | | | | | | | | | | | | | | 这种算法第一次见,之前接触的算法都是固定Ipk和Tdis/T的比值来实现恒流。
取点就在于感量的影响对输出电流的影响很大。 |
|
|
|
| | | | | | | | | | | | | | | | | | | 在DCM中,若IPK不变,测单个开关传输能量是恒定的,可见上面的公式
F=1/T
若输出电压上升,F按比列上升,那么输出功率也按比例上升,所以输出电流恒定,即:F=Uout/K。 |
|
|
|
| | | | | | | | | | | | | | | 基于A88的板子是通过采样电阻来调的,但有些PSR只用采样电阻做过压保护
你可以看下20楼电压采样部分。 |
|
|
|
|
|
|
|
|
| | | | | | | | | | | | | 单级PFC+PSR+可控硅调光
控制原理也非常简单
采用FOT控制方式
先了解下恒流及调光要点:
恒流: Ton=J/Uin, F=Uout/K J与K为常数
调光: if(Ton>Ton_max)Ton=Ton_max ; |
|
|
|
|
|
|
|
|
| | | | | | | | | | | | | | | | | | | | | 固定导通时间的意思,现在有很多芯片都采用这种工作模式。 |
|
|
| | | | | | | | | | | | | | | | | | | | | | | 很多时候考虑简单些,让单片机操作也没那么复杂,另外在单级PFC中本来就有较大的积分时间,这也非常利于单片机有足够的时间采样与运算。 |
|
|
|
| | | | | | | | | | | | | | | | | | | | | 再增加一个谷底导通的功能,提升效率。
所以在你的程序中,实际上是不检测次级二极管的导通时间(Tdis),所以,你的这个方法不能实现Valley mode switching。 |
|
|
|
| | | | | | | | | | | | | | | | | | | 咋一看上去,还以为是Fixed OFF time控制。 |
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | 固定关断时间恒流的IC输出电流会随着输出电压的变化而变化,同样对变压器的感量要求比较高,所以,这个现在也不用了。 |
|
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | 过奖了,三脚猫功夫而已。
只不过大多数搞电源的不搞程序,搞程序的不搞电源而已。 |
|
|
| | | | | | | | | | | | | | | | | | | 输出电压与开关频率的关系为:F=Uout/K
输出电压高,频率也变高,传输出的能量也就增加,这样就可以保证输出电流不变。 |
|
|
|
|
| | | | | | | | | | | | | | | | | | | | | 调光还有个比较难搞的问题就是EMC问题,要调光效果好,EMC不好处理,要么EMC好调光效率就变差。 |
|
|
|
|
|
|
| | | | | | | | | | | | | | | | | 三年前也有类似的案子,可惜但是半瓶子水;没有成功,回头看楼主的感受颇多;
对电源的理解和控制算法的设计是本帖的亮点。 |
|
|
|
| | | | | 楼主你好,我最近在DIY这个方案,遇到一些问题。楼主能否加个好友,我QQ527529804 |
|
|
|
| | | | | | | | | 非常感谢,那我可就把我的问题全部列数来了。
1:3脚采样原边反馈电压,来调节PWM的频率。这个AD内部是用球平均值滤波吗。
2:关于启动的问题,我有测试你的原片,单片机刚上电的时候频率由低18K到高,然后AD检测3脚电压,根据反馈电压来调节当前的频率。3脚电压越高,PWM频率就越高。还有个细节,调节供电电压,供电电压越由2.5-5.5V,电压越高频率越高。目前我遇到的问题是,供电电压,和3脚的电压,调节PWM的时候总有一个反向。如果供电电压越高频率就越高,但是3脚电压越高频率就越低了,如果我把AD值取反操作,3脚控制就正常,供电那里的影响就反了。
不确定是不是AD内部基准VDD引起的。应该怎么解决的。目前我程序的AD滤波是球平均值。
4:贴出我写的PWM控制部分程序。希望楼主多多指点一下
//--PWM控制处理----------------------------------
void PWM_dispose()
{
if(ADFilter(ad1)>=Overcurrentset) //如果开关管电流大于400MA,关闭PWM/ 过流保护
{
ECCPASE=1; //PWM开关,1关闭,0打开
}
else
{
if(ADFilter(ad3)<0||ADFilter(ad3)>220) //过压保护设置21K~50K正常范围.
{
if(OvervoltageFlag) //过压闪烁警告
{
OvervoltageFlag=0;
ECCPASE=~ECCPASE; //闪烁警告。
}
}
else
{
GP5=1;
ECCPASE=0; //打开PWM
BackVoltage=ADFilter(ad3); //采集通道3上的数据。 38-110---8BIT
BackVoltage=~BackVoltage; //数据取反,反馈电压越高,占空频率比越大。
BackVoltage=(BackVoltage>>1)+5;
if(FreqUpdateFlag)
{
FreqUpdateFlag=0;
if((BackVoltage>(PWMREG+3))&&(PWMREG<108))
{
PWMREG=PWMREG+1;
}
if((BackVoltage<(PWMREG-3))&&(PWMREG>38))
{
PWMREG=PWMREG-1;
}
}
}
}
}
|
|
|
| | | | | | | | | | | 供电电压是稳定的,就算不稳定也影响频率。
PWM频率=AD3*K 公式在上面就有了
过流保护是采用内部比较器来实现的。
AD3的采样要NOP来延时。 |
|
|
|
| | | | | | | | | | | | | 非常感谢楼主的解答。
Iout = I[sub]P[/sub][sup]2 [/sup]X L X (Uout/K) X n% / Uout
还有个问题,这个横流公式好多看不懂的,希望楼主能解答一下,输出电流=IP2这个是什么意思, L是不是电感量,还是什么意思,n%是不是效率的意思。 还有那个K怎么取值呢? 谢谢 |
|
|
| | | | | | | | | | | | | | | 公式你要前后一起看,上面还有一个假设:F=Uout/K
前面还提到过:P=I[sub]P[/sub][sup]2 [/sup]X L X F
这样上面的公式就能理解了吧? |
|
|
|
|
|
|
|
| | | | | | | 近来有点忙,来论坛少了些时间
最近研究定频PSR+调光,前级加PFC电路。
在恒流调光方面经过一系列计算后竟发现原来控制非常简单。
采用峰值电流控制方式,输出电流 I=Ip2*k/Uout |
|
|
| | | | | | | | | 这个公式中,Lp会影响K值吧,如何补偿呢?
另外调光的时候Io会变化,Io的变化同样会引起Uo的变化,这个如何补偿呢?
我有个不成熟的想法,大侠给指导一下,
我觉得调光电源可以不恒流,没必要一定按照导通角来调光,可以尝试真正的模拟白炽灯,即转换功率根据输入电压有效值来调整,这样MCU处理起来就简单多了。
大侠有QQ或者在哪个群里可以找到你,其他的什么即时通讯方式可以留一下吗,想向你多多学习这方面的知识。 |
|
|
| | | | | | | | | | | LP采用硬件补偿。
另外一款小功率的我采用电压模式控制,即固定导通时间控制,这电路中LP控制是单片机运行中直接读取LP的。算法也很简单
I=Uin[sup]2[/sup]*Ton[sup]2[/sup]/2/T/L/Uout*n%
运行过程序中读取输入电压与输出电压及电感量。 |
|
|
|
| | | | | | | | | | | | | | | 两个CS是联在一块的。
39楼中,可以这样理解,采用IPK控制方式时,电感偏小反而电流偏大。但电感偏小导通时间变长,我们可以看到导通时间长IPK变小,这样正好补偿回电感偏小带来的功率增加。
软件实现就很简单了
IPK=U/L*Ton
试中电压U与IPK是线性关系,如设U为ADC参考电压,并采用固定Ton:
测可以简化L读取公式为:L=read_adc()*K |
|
|
|
|
|
| | | | | 现在又有时间了,可以继续向楼主学习。我现按照楼主的写的程序。有个问题,就是偶尔输出灯闪一下。感觉输出电流不稳定。 |
|
|
|
| | | | | | | | | 你好楼主,我查了一下应该是AD采样的问题,现在我就是不理解,你上面说开光关闭2US后开始采样,由于开关管是硬件PWM控制的。请问该怎么判断开关管当前是关闭转台的呢,或者说当前是高电平还是低电平呢。请楼主指点一下。
|
|
|
| | | | | | | | | | | while(PWM); //等待PWM为高电平
while(!PWM);//等待PWM为低电平 //执行四个NOP产生2uS延时。实际产生2-2.5uS,因为不确定PWM为低电平时本条指令在哪个位置。
NOP();
NOP();
NOP();
NOP();
ADGO=1;//启动ADC |
|
|
| | | | | | | | | | | | | 请问楼主的while(PWM), 你PWM定义的是什么,是定义的IO口呢,还是PR2,或者还是什么的。 |
|
|
|
|
|
| | | | | | | | | | | | | | | | | 你好楼主,请楼主能不能说一下PWM的控制方式和过程,PWM是怎么根据AD采样的反馈电压去调节PWM频率的。麻烦楼主能否尽量讲详细些。坐听楼主讲课。 |
|
|
|
| | | | | | | | | | | | | | | | | | | | | 你好楼主:
1,你这个原板我们以前有测试过,调光深度不够(最大电流设为300MA时,有些调光器调到最低点输出电流还有70MA以上。这样的效果客户完全不接受)
2,有些调光器经过市电后会降低30-40V左右,这样这款电源的输出电流又调不到最大。
所以我才想把这款电源DIY出来,改进以上问题。 |
|
|
| | | | | | | | | | | | | | | | | | | | | | | 市场上抄的非常多,你能买到原板?
“(最大电流设为300MA时,有些调光器调到最低点输出电流还有70MA以上。这样的效果客户完全不接受)”有些?调光器本来就不统一,就算调白积灯也是一样的。简单的说如果一个调光器只能调到50%人可以把它改为0%但能调到0%的调光器调在50%就已经是0了。所以多年来我不去改变这个问题,因为这是调光器固有特性,你是不可能满足所有调光器的。 |
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | 楼主这是高人,我也是做LED电源的,也搞了一些单片机的项目,但拿来做电源还真是无从下手。主要还是对电源原理不了解。
|
|
|
|
|
| | | | | 可控硅调光LED电源的话,一般来说使用MCU产生PWM 把 |
|
|
| | | | | UPUP,想问下楼主拿什么MCU做的呢,可否透露下 |
|
|
|