STM32_PLC 发表于 2007-11-1 10:19:03

[智能充电器] 对于PWM的选择,专题讨论

看到现在不少人开始讨论PWM产生的问题,我来开个头,开个专题讨论一下吧

对于494之类的器件,使用过,专为开关电源设计的芯片.电压型反馈.
个人觉得在使用AVR的同时,再使用494,需要仔细计算(除非PWM频率比较高).


首先我们要考虑我们的PWM的精度8位? 10位? 12位?
其次我们要考虑我们的PWM的频率5kHz   8kHz10kHz12kHz 15kHz 20kHz 50kHz ………………

我们来计算一下吧
使用AVR,晶振以常规的16MHz
8bit PWM最高频率62.5KHz
10bit PWM最高频率15.6KHz
12bit PWM最高频率3.9KHz

使用3842、TL494等常规最大频率为400KHz,改进型芯片频率可以到1MHz。全模拟结构,硬件设计调整。

以下说一下个人意见:
494参数调整是纯硬件的,软件不能参与,494具有在一定范围的输出(电压、电流)自适性,范围如果很大的话,参数整定比较麻烦。

我做过几个Buck、Boost变换器,3844、494、MCU都使用过。性能上都差不多的,但是整定的方便性上MCU相当有优势。
我做低压的Boost变换器的频率达到400kHz,AVR是做不了的,当时用的是dsPIC。

个人认为选择合适的电感配合,使用10Bit/15.6Khz左右应该是可以满足使用要求的。再加上软件的PID控制,以2A最大电流计算,控制精度应该可以做到10mA以内。


大家说说自己的选择吧

aleyn 发表于 2007-11-1 14:38:58

终於有技术贴了,没有太多争执的贴真好。

alien2006 发表于 2007-11-1 14:58:47

做过充电器后对AVR的PWM倒是有点不大喜欢了,如果目的仅仅是对最多2节电池进行的话用AVR的PWM倒也没什么。如果希望设计能有更广的适应性的话估计我想是否TL494这类更好,毕竟一个是它的PWM频率高,这样电感可以小些,大家绕着也轻松,再者这类电路已经集成了很好的成熟MOS管专用驱动电路,这样输出波形好效率会比较高发热也少,现在不是提倡绿色环保么,呵呵,现在我是看到灯没及时关就着急,哈哈。最关键的是它们来控制更加稳定可靠,因为完全用AVR来实现的话对于这个控制环节反应会比较慢,另外有时候一不小心PWM没控制好输出很大的电流也是怕怕的。
    我也没接触过这类片子,我最初的理解是这类控制器是否也能变成程控方式,比方说我们指定它输出1V那么它就输出1V想2V就2V,这样的话就解放了AVR并且工作更可靠稳定。只是我对如何用AVR来控制这类芯片做高精度的输出不明白,希望有做过这类设计的同学来补充了。

STM32_PLC 发表于 2007-11-1 20:43:27

alien2006

对于TL494和UC3842之类的芯片,要希望单片机接入改变其输出电压,一般方法是使用DAC接入它们的反馈调节、或者是比较回路。直接用数字信号接入,没见过也想不出来。
对于Mos管的驱动线路、芯片,大多都是现成的,使用AVR和使用其它芯片相比没什么区别。

如果使用494或者3842之类的芯片做到高精度,一般需要使用一个高精度的DAC。其他方法不知道有没有

lcd128x64 发表于 2007-11-1 20:55:39

首先我们要考虑我们的PWM的精度8位? 10位? 12位?
其次我们要考虑我们的PWM的频率5kHz   8kHz10kHz12kHz 15kHz 20kHz 50kHz ………………

我们来计算一下吧
使用AVR,晶振以常规的16MHz
8bit PWM最高频率62.5KHz
10bit PWM最高频率15.6KHz
12bit PWM最高频率3.9KHz

to楼主:ATtiny26261 不是可以64Mhz PCK 吗?

STM32_PLC 发表于 2007-11-1 21:19:50

晕,又来一个杀气的!

首先我们这里预设的前提是使用mega64

其次,请哪位把ATtiny26的资料找一下,我没有用过ATtiny,不清楚呢 。

64MHz??!! 很恐怖啊,我用dsPIC、DSP也做不到这么高啊,要见识以下。

junsi 发表于 2007-11-2 01:28:13

是的,26内部有独立的pll,可以到64MHz.而且能支持同步整流。就是程序空间太小,限制了应用

STM32_PLC 发表于 2007-11-2 10:27:50

大致看了一下 ATtiny26 的文档
PCK频率最高可以达到64MHz,由于Timer0/1都是8Bit的,所以PWM的局限为8Bit 最大 250KHz

之前的说法吓我一跳,我用dsPIC做10bit的PWM也不过几百K,突然来个几十兆的确实很吓人。
现在东西仔细看过来了,却未必是我们需要的。

Tomcat 发表于 2007-11-5 10:41:37

从我的实际经验来看,8Bit够用了,主要在于控制算法。建议用Attiny26产生PWM,Atmega32做控制。

IFine 发表于 2007-11-5 14:51:28

我觉得用ATMega48加TL494比较好,航模用的全功能充电器601BC(460元)就是采用此种方案。此充电器主要参数:
Li-lon聚合电池 : 1-5 Series
Ni-MH/Ni-CD电池 : 1-14 Cells
Lead Acid(Pb):6-12V
充电速度 : 0.1A-5.0A

另外要改变TL494的输出电压,只要用外部的参考电压替代TL494的参考电压即可,外接参考电压可用单片机PWM经低通滤波器和运放驱动。

将PWM功能从单片机功能独立出来用其他专门的硬件来实现,有很多好处!

IFine 发表于 2007-11-5 14:59:53

网站设计的充电器实际上就是单片机控制的开关电源,转发一篇这方面的文章(本文转载自电源网):

也谈单片机控制的开关电源
关于单片机控制开关电源的文章,本版发出了不少帖,争论也很激烈。趁此机会我也谈谈我的几点看法。 单片机控制开关电源,单从对电源输出的控制来说,可以有几种控制方式。 其一是单片机输出一个电压(经DA芯片或PWM方式),用作电源的基准电压。这种方式仅仅是用单片机代替了原来的基准电压,可以用按键输入电源的输出电压值,单片机并没有加入电源的反馈环,电源电路并没有什么改动。这种方式最简单。 其二是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,调整DA的输出,控制PWM芯片,间接控制电源的工作。这种方式单片机已加入到电源的反馈环中,代替原来的比较放大环节,单片机的程序要采用比较复杂的PID算法。 其三是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,输出PWM波,直接控制电源的工作。这种方式单片机介入电源工作最多。 第三种方式是最彻底的单片机控制开关电源,但对单片机的要求也最高。要求单片机运算速度快,而且能够输出足够高频率的PWM波。这样的单片机显然价格也高。 DSP类单片机速度够高,但目前价格也很高,从成本考虑,占电源成本的比例太大,不宜采用。 廉价单片机中,AVR系列最快,具有PWM输出,可以考虑采用。但AVR单片机的工作频率仍不够高,只能是勉强使用。下面我们具体计算一下AVR单片机直接控制开关电源工作可以达到什么水平。 AVR单片机中,时钟频率最高为16MHz。如果PWM分辨率为10位,那么PWM波的频率也就是开关电源的工作频率为16000000/1024=15625(Hz),开关电源工作在这个频率下显然不够(在音频范围内)。那么取PWM分辨率为9位,这次开关电源的工作频率为16000000/512=32768(Hz),在音频范围外,可以用,但距离现代开关电源的工作频率还有一定距离。 不过必须注意,9位分辨率是说功率管导通-关断这个周期中,可以分成512份,单就导通而言,假定占空比为0.5,则只能分成256份。考虑到脉冲宽度与电源的输出并非线性关系,需要至少再打个对折,也就是说,电源输出最多只能控制到1/128,无论负载变化还是网电源电压变化,控制的程度只能到此为止。 还要注意,上面所述只有一个PWM波,是单端工作。如果要推挽工作(包括半桥),那就需要两个PWM波,上述控制精度还要减半,只能控制到约1/64。对要求不高的电源例如电池充电,可以满足使用要求,但对要求输出精度较高的电源,这就不够了。 综上所述,AVR单片机只能很勉强地使用在直接控制PWM的方式中。 但是上列第二种控制方式,即单片机调整DA的输出,控制PWM芯片,间接控制电源的工作,却对单片机没有那么高的要求,51系列单片机已可胜任。而51系列单片机的价格比AVR还是低一些。 网友coocle曾发表他的看法:“单片机控制开关电源的缺点在于动态响应不够,优点是设计的弹性好,如保护和通讯,我的想法是单片机和pwm芯片相结合,现在的一般单片机的pwm输出的频率普遍还不是太高,频率太高,想要实现单周期控制也很难。所以我觉得单片机可是完成一些弹性的模拟给定,后面还有pwm芯片完成一些工作。” 无独有偶,在电子电源综合区中有篇原创文章《DPWM电路的研究》,也是用数字电路输出PWM波直接控制开关电源工作。他是用CPLD再加单片机进行控制。众所周知CPLD的价格以及开发难度绝非单片机可比,那么他为什么要这样做?原因如作者所说,由于单片机的PWM宽度小,导致精度低,不能满足系统的要求。作者又说,在这些情况下,应用片外PWM电路无疑是一种理想的选择。他选择CPLD芯片来实现PWM。我则建议:还是用开关电源原来的控制芯片来实现。不但价格低,而且容易实现单周期电流检测等保护功能。我们大可不必为数字控制而数字控制。 敬请版主及各位朋友指正。

yayongzhang 发表于 2007-11-5 20:52:02

10 楼发的文章很好,我在工作中用第3种方式

STM32_PLC 发表于 2007-11-6 09:16:46

"9位分辨率是说功率管导通-关断这个周期中,可以分成512份,单就导通而言,假定占空比为0.5,则只能分成256份。考虑到脉冲宽度与电源的输出并非线性关系,需要至少再打个对折,也就是说,电源输出最多只能控制到1/128,无论负载变化还是网电源电压变化,控制的程度只能到此为止。 还要注意,上面所述只有一个PWM波,是单端工作。如果要推挽工作(包括半桥),那就需要两个PWM波,上述控制精度还要减半,只能控制到约1/64。"

不知道文章的作者是如何计算的,尤其是那个“假定占空比为0.5,则只能分成256份”,非常不明白!
还有那个“考虑到脉冲宽度与电源的输出并非线性关系,需要至少再打个对折”,完全理解的就不对啊!
还有那个“如果要推挽工作(包括半桥),那就需要两个PWM波,上述控制精度还要减半,只能控制到约1/64”,非常的觉得奇怪啊!
还有之前的那句“开关电源工作在这个频率下显然不够(在音频范围内)”,显然是有很多误解的。

首先,占空比0.5,也就是说你的PWM在每个周期输出一半关闭一半。这个和9bit的分辨率有什么关系么?占空比和载波分辨率是两个相关的不同的东西,分辨率决定了占空比的最小可调节尺度,但是占空比多少却是不会改变分辨率的,不能混谈的。
其次,非线性只能说我控制PWM对应的电压和PWM的占空比不是线性关系,对于输出电压的比例有些区域大些,有些区域小些。但是有一个根本的东西没有变,占空比只能是0% - 100% ,而输出电压只能是0至全电压输出。范围是死的,有些地方比例变线性关系大了,则有些地方比例必定比线性关系小,全区域打折是不负责任的。况且在大多数情况下,这个非线性并不是很大的。要用一倍的比例去估算显然不切实际。
再次,推挽式的驱动虽然需要两个PWM,实际上还是一个PWM变化出来的。首先这两个PWM需要是同步的,其次不能同时打开的。对于一般控制来说也只是开一个PWM功能,带两个输出。有些情况下,甚至于只要一个PWM输出,外加死区,一个直接,一个反转接,就能完成。
最后,关于那个音频范围的问题,我们的系统里没有发声器件,谈音频没有意义吧!一般听到开关电源有声音,并非与开关频率有关,而是变压器的绕制结构和固定方式决定的频率,即使是1M的开关频率,变压器没有做好,一样会有声音。开关频率5K的电源,变压器做好了,一样不会有声音。不要混谈。(大家用过变频器么? 还记得那个载波频率数多少? 现在一般最高到20KHz,少的只有几KHz,有吵到您么?)

文章整体写得不错,但是有些方面存在片面性和时效性,对于PWM的描述和分析不尽理想,对于单片机控制电源有些偏见(现在已经变得很常见了),对于DSP以及高速ARM的描述明显是落伍了。还有对于CPLD的描述也与实际差异,实际上CPLD下载开发容易,价格也便宜。

选择MCU还是专用芯片,这个是【10楼】 IFine 后知后觉,想要描述和提出的问题。【10楼】 IFine 后知后觉 希望能够做专用芯片。
我来解释为什么不用。
你选择的是开关电源的芯片还是充电器的芯片?这两个东西不一样哦。开关电源的专用芯片设计到宽电压范围工作,高耐受性,这些都使MCU的应用变得比较困难,但不是不能应用。充电芯片则不同,这个东西没有很宽的工作范围,正常的耐受性。一般的MCU都能达到的规格。
最重要的,我们现在在研究充电算法,充电的系统和工作原理,我们在学习这些东西。而不是简单的打一个电路,然后宣布我用某公司的专用芯片做了个充电器。用专用芯片什么都是那么简单,但是你能明白原理么?你能学到什么?
使用专用芯片不需要开设这个项目,你可以直接问生产厂家的应用工程师要图纸。
何谓智能,之前有人讨论过,不管怎么论,总之我们需要做出一些别人没有的功能。专用芯片做不了。
这个项目不赚钱,所以更多的是学习。这个项目没有时间限制,所以更多的精力在于过程。

希望你能明白。

IFine 发表于 2007-11-6 12:33:01

本站设计的充电器实际上是一种数控DC/DC电源!只是DC/DC部分有三种控制方式可选择:
1、 其一是单片机输出一个电压(经DA芯片或PWM方式),用作电源的基准电压;
2、 其二是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,调整DA的输出,控制PWM芯片,间接控制电源的工作;
3、 其三是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,输出PWM波,直接控制电源的工作。(AVR官方设计的充电器采用此种方式)

我认为选择哪一种控制方式,和电池的充电算法无关,不同的是实现的复杂性和精确度!

IFine 发表于 2007-11-6 12:41:03

不知道文章的作者是如何计算的,尤其是那个“假定占空比为0.5,则只能分成256份”,非常不明白!

因为你断章取义了,文章说的很清除(单就导通而言):
9位分辨率是说功率管导通-关断这个周期中,可以分成512份,单就导通而言,假定占空比为0.5,则只能分成256份。

STM32_PLC 发表于 2007-11-6 13:51:47

"9位分辨率是说功率管导通-关断这个周期中,可以分成512份,单就导通而言,假定占空比为0.5,则只能分成256份。"

9bit 分辨率,也就是说一个周期内可以进行512分度的划分,如果设置为占空比50%,意思是256个分度为开,剩下的256分度为关。
这个时候,再去说“只能分成256份”,没有什么意义了。因为只要定死了这个50%,就必然是一半开、一半关,也不可能再对其进行分度了。

我们调制PWM利用的就是这个占空比,而分辨率则提供了我们可以调节占空比的最小单位。比如上述的9bit,那么我们可以调整的占空比的最小单位是 1/512,也就是0.19%。
理论上,我们调节PWM可以从0% - 100%,实际上受到硬件以及一些算法控制的限制,一般最大或(和)最小占空比有一定的限制。

我想作者可能受到了类似 UC3844等开关电源芯片的技术参数的影响,才说到这个0.5和256份。UC3844/5有一个指标限制,PWM的占空比最大为50%,一般用来避免冲击电流等因素,以及考虑到电源波形的关系。然而实际上,使用最多的是UC3842/3,最大占空比为100%,为什么呢,因为很多时候,最高效率的工作点在占空比50%以上,而且很多时候需要吃到重负载时,需要将占空比调到80%以上,也就是说开放PWM的范围实际开放了开关电源的潜在功率。(这些论断请放在隔离型开关电源中考虑,尤其适用于Flyback等拓扑结构,不适用于Buck/Boost电路)

说到我们这个充电器,由于使用的是Buck(目前没有完全确定),占空比调节范围需要0-100%,也就是全范围调节,因为这个100%开通对于我们这个DC/DC有实际意义(直通),方便我们对输入电源有效进行全额利用,如果限制了50%,我们对于输入电源的利用就最大只能一半,这个限制对于我们没有意义的。

所以原文应该这么说“假定最大占空比限制为0.5,则只能进行256分度的调整。”
这下,您明白了么?


1、 其一是单片机输出一个电压(经DA芯片或PWM方式),用作电源的基准电压;
Answer: 使用PWM输出一个模拟量,精度将受到PWM的分辨率的影响,并且快速响应的能力有限。使用DA输出,需要外加一套DAC线路,显然增加了初期设计的压力和负担。作为基准电压介入到一个DC/DC模块,需要能够熟悉DC/DC的内部机理,加在比较端还是反馈端?这些都需要有经验的人的指导,和一些计算、实验工作。这个方案,之前有很多人提过,作为保留方案欢迎讨论。可能会在以后的版本中考虑实现。

2、 其二是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,调整DA的输出,控制PWM芯片,间接控制电源的工作;
Answer:这个方案整体是和第一种一样的,只是比较详细。(或者说是一个偏差控制版本)

3、 其三是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,输出PWM波,直接控制电源的工作。(AVR官方设计的充电器采用此种方式)
Answer:不可否认,这个方案目前能够得到的分辨率和频率是最低的。但是也不可否认这个是最容易实现的,没有任何硬件或者软件方面额外的代价。同时各方面也都有足够的讨论,基本认可这个PWM实现基本可以满足需要。作为目前版本的确定,确实很利于大家快速开始。

4、我认为选择哪一种控制方式,和电池的充电算法无关,不同的是实现的复杂性和精确度!
Answer:复杂度和精确度是一方面,而且是很重要的方面。但是另一方面,快速响应部分始终都不会有直接控制PWM来的快和方便。很多DC/DC芯片都讲究启动关断的平稳,或者说都有一些延迟。这些成熟的DC/DC芯片如果没有用好,很可能出现要关关不上,要开开不了的情况。因为我们用在了非正常的状态。为了实现脉冲充电和恒流充电等几个不同的动作,在没有详细研究PWM芯片之前贸然使用,很可能带来功能不全,或者有冲突的情况。所以目前状态是仔细研究其性能和使用资料,作为之后实施的准备。


(PS: 一旦以后CPU pack更换为拥有SMPS功能的芯片,这个讨论又会变得没什么意义了。)

IFine 发表于 2007-11-6 14:46:39

作为基准电压介入到一个DC/DC模块,需要能够熟悉DC/DC的内部机理,加在比较端还是反馈端?

我实验过,没有这么复杂!用单片机输出的PWM波经过2阶RC低通后,再经运放后,替代TL494的5V参考电压即可。

SKYdai 发表于 2007-11-6 21:05:08

还不如用DSP做数字电源哈~~问题是成体哈~
就用反激电源吧~~什么CR6848呀~LD7535呀~OB2263呀~做个几十W成本又少~~性能又好~~

lcd128x64 发表于 2007-11-7 18:49:28

针对电池充电器、传感器终端和发动机控制应用产品推出的带高速定时器的20引脚tinyAVR闪存微控制器ATtiny261、ATtiny461和ATtiny861的针脚是兼容的,仅在闪存、EEPROM和SRAM存储器的容量上有区别。ATtiny261有2Kb的自编程闪存存储器,而ATtiny461和ATtiny861的则分别为4Kb和8Kb。这三款设备在20MHz运行频率下的通量为20MIPS。



这些产品内部集成了8MHz RC振荡器和片上锁相环(PLL)以高达64MHz运行的10位定时器/计数器。带三个独立脉宽调变(PWM)发生器和可编程停机时间的高速定时器/计数器使得该设备成为电池充电器、电池监控、功率监控和发动机控制应用产品的理想之选。

所有设备均有内部EEPROM、上拉电阻器、一个内部8MHz精确振荡器和12个通用输入/输出脚供应用使用。另外,这些输入/输出脚可用作ADC输入或PWM(脉冲宽度调制)输出。

常用的微控制器外围均被整合起来。ATtiny261/461/861包括一个可被轻松设定为像 SPI、UART 或 TWI 一样工作的通用串行接口(USI)。先进的类比性能,如内置的温度测量、一个快速的类比比较仪和一个可编程的类比增益放大器,使高度整合的设计价格低廉。总量为11的10位A/D变频器输入通道使众多的外围能够与传感器和控制应用产品连接起来,而内部温度传感器使可靠的系统参数测量得以实现。

由于其固有的低功耗和个人可选择的低功率睡眠模式,ATtiny261/461/861 在电池驱动的设备中是佼佼者。通过直接控制系统时钟频率,系统性能和功耗之间取得了平衡。在不使用时,通过选择性地关闭定时器、串行接口、或 ADC,可节省更多的功率。因此,在活动模式下使用1.8V,以 1MHz 运行的功耗低于400μA,而在电源关闭模式下,其功耗仅为几微安。

coyoteie 发表于 2008-1-2 11:12:05

xuwuyang 发表于 2010-1-9 21:30:28

mark!

piaoai 发表于 2010-1-21 21:42:41

都是高手

Pmin-wei 发表于 2010-4-13 11:39:49

好东西   学习

oycx.com 发表于 2010-11-30 22:57:37

gloryzkl 发表于 2010-12-3 15:30:35

用手机看太痛苦了…回去再看…

lucasphh 发表于 2010-12-30 19:26:39

这人东西在对我来说都是太高深了,得加强学习才行

shuizhuzqj 发表于 2011-4-13 11:22:01

我喜欢这个帖子

ansai0089 发表于 2011-4-13 13:22:54

mark

xiongxie007 发表于 2011-9-5 10:13:25

mark

xiongxie007 发表于 2011-12-17 12:35:57

mark

RiverH 发表于 2011-12-21 16:17:08

我也想做个充电器,学习学习!!

小饼干 发表于 2012-5-4 20:22:07

{:handshake:}

bosw83 发表于 2012-5-9 15:28:41

mark,向各位学习

gh031 发表于 2012-8-15 19:16:03

mark!!!!!!!!!!!!!

shenzhen_asdf88 发表于 2012-8-21 16:00:08

{:smile:}
mark!!!!!!!!!!!!!

hanlin2012 发表于 2012-9-12 17:19:33

不错.要是再说一说均衡充电和普通充电的方法就好了.

chenfzg 发表于 2012-9-13 01:29:13

好,谢谢                              

sundingding 发表于 2012-10-25 01:01:45

alien2006 发表于 2007-11-1 14:58 static/image/common/back.gif
做过充电器后对AVR的PWM倒是有点不大喜欢了,如果目的仅仅是对最多2节电池进行的话用AVR的PWM倒也没什么。 ...

可以用STM32 或者其他的高速芯片 Atmel的东西太贵了,成本啊。。。

biqi 发表于 2012-10-25 09:32:46

学习,留爪子{:loveliness:}

oaixuw 发表于 2012-10-25 09:33:46

很好 不错 学习了

angleqq 发表于 2012-10-26 15:55:09

充电器PWM

郑健儿 发表于 2012-11-6 14:26:19

真心佩服那些大神

liujian6f 发表于 2014-2-4 15:41:34

mark               

HYLG 发表于 2015-9-26 01:00:54

百度到了这里,学习电源知识不错的贴子。

a136498491 发表于 2015-9-27 11:34:30

现在倒是成了ST的天下

xujuanliang 发表于 2015-11-6 11:33:59

NB 留下我的脚印

usm4glx 发表于 2015-11-7 08:28:30

应该是可行的

captain_steve 发表于 2015-11-7 14:30:13

都是高手,mark学习,充电器

changshs 发表于 2018-6-5 23:47:12

学习了!~

jlljh 发表于 2021-1-8 10:17:34

不错,有启发。
页: [1]
查看完整版本: [智能充电器] 对于PWM的选择,专题讨论