• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

请问关于单片机直接控制的PWM电源

用单片机的数字I/O直接产生PWM输出不行吗?用直令将I/O口拉高拉低应该就可以模拟PWM信号了(拉高拉低由计数器中断进行控制),再由有源驱动电路驱动MOSFET应该就可以实现直流输出了.为什么好象没有人这么作呢?
按照我这个想法,要保证1%的输出电压精度,只要保证单片机时钟频率和PWM信号频率有100倍关系(比如100K的PWM信号对应使用10M时钟的单片机)就能满足输出精度要求了(假设对应指令是单周期的).只不过不能实现在每个周期都对输出电压进行监控和调整,动态响应有点慢.
这个想法有什么问题吗?
才开始学电源,作模块电源方面,问题比较弱,请各位前辈不吝赐教.谢谢大家先~
全部回复(17)
正序查看
倒序查看
2006-02-17 15:51
我一直想这样做,我用带PWM输出的MCU(SAMSUNG 9454)试过,响应速度太慢了,输出电流和输出电压根本就稳定不了.
0
回复
eric-chai
LV.4
3
2006-02-18 16:06
@chengkai422
我一直想这样做,我用带PWM输出的MCU(SAMSUNG9454)试过,响应速度太慢了,输出电流和输出电压根本就稳定不了.
试试HT46R52,需要技术支持请来电柴生:13590201875/QQ:286842853HOLTEK一级代理
0
回复
2006-02-20 10:40
@eric-chai
试试HT46R52,需要技术支持请来电柴生:13590201875/QQ:286842853HOLTEK一级代理
输出的调整率怎么样???
0
回复
gzzrj
LV.4
5
2006-02-20 13:28
请试试新华龙的SI8250单片机!500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/38/1140413326.jpg');}" onmousewheel="return imgzoom(this);">
0
回复
tangjix
LV.2
6
2006-03-30 10:35
@gzzrj
请试试新华龙的SI8250单片机![图片]500){this.resized=true;this.width=500;this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/38/1140413326.jpg');}"onmousewheel="returnimgzoom(this);">
我硬件比较熟悉,单片机也搞了一段时间了,从Z80单板机开始,到89C51 ,现在用AVR ,汇编和C都用过,现在主要用C,用单片机做过一些技改项目,比如 MP3收音模块的控制等.自己做了C51的编程器,上位机程序是用VB编的.我们公司现在大量做各种开关电源,所以现在对控制电源很感兴趣.能否提供si8250样品给我. 风华高科端华分公司bd9ah@126.com
0
回复
LV.1
7
2006-03-30 10:47
理论上I/O口当然可以用于PWM控制,但是这种工作方式占用很大的cpu资源.所以一般的数控芯片都用专用的PWM端口,由计数器进行控制,不占用cpu资源.

cpu的频率是PWM信号频率的100倍是远远不够的.输出电压的精度主要由输出电压的A/D采样精度有关,当然跟PWM的分辨率也有关系.

电源是不可能每个周期对输出电压进行调整的,当然电流控制性的可以每个周期对峰值电流进行控制.
0
回复
mofesli
LV.4
8
2006-03-30 13:04
@
理论上I/O口当然可以用于PWM控制,但是这种工作方式占用很大的cpu资源.所以一般的数控芯片都用专用的PWM端口,由计数器进行控制,不占用cpu资源.cpu的频率是PWM信号频率的100倍是远远不够的.输出电压的精度主要由输出电压的A/D采样精度有关,当然跟PWM的分辨率也有关系.电源是不可能每个周期对输出电压进行调整的,当然电流控制性的可以每个周期对峰值电流进行控制.
"cpu的频率是PWM信号频率的100倍是远远不够的"是为什么,前辈能详细解释一下吗?对于单指令周期(一个机器周期等于一个时钟周期)的单片机也不行吗?
0
回复
LV.1
9
2006-03-30 13:45
@mofesli
"cpu的频率是PWM信号频率的100倍是远远不够的"是为什么,前辈能详细解释一下吗?对于单指令周期(一个机器周期等于一个时钟周期)的单片机也不行吗?
实际上PWM正常工作的占空比是小于1的,如0.3,如果只要求输出1%的精度的话就是0.3%的PWM精度.当然考虑到A/D等其他误差,实际精度还要高一点.
0
回复
abing
LV.8
10
2006-03-30 14:13
@
实际上PWM正常工作的占空比是小于1的,如0.3,如果只要求输出1%的精度的话就是0.3%的PWM精度.当然考虑到A/D等其他误差,实际精度还要高一点.
用单片机控制完全可以
有过有些时候我们要考虑的是性价比的问题
0
回复
wup3eng
LV.1
11
2006-04-03 20:09
@abing
用单片机控制完全可以有过有些时候我们要考虑的是性价比的问题
请问要输出SPWM该怎么办呢
给点意见
0
回复
bilijohn
LV.2
12
2006-04-05 08:55
@mofesli
"cpu的频率是PWM信号频率的100倍是远远不够的"是为什么,前辈能详细解释一下吗?对于单指令周期(一个机器周期等于一个时钟周期)的单片机也不行吗?
就算理论上用I/O能够产生需要的PWM 数据,占用了绝大部分的CPU时间,单片机除了输出PWM波形外还能做多余的检测、判断吗?实际的PWM单片机系统,单片机除了输出PWM外是还要做很多的检测,判断的.
   所以基本上做产品的话只能用专用的PWM 带A/D单片机,做来自己玩那就另当别论
0
回复
kjhuang
LV.1
13
2006-04-05 11:45
请选用有PWM功能的单片机不就行了.挺方便的嘛.如89C51RA等
0
回复
mofesli
LV.4
14
2006-04-05 13:57
@kjhuang
请选用有PWM功能的单片机不就行了.挺方便的嘛.如89C51RA等
一般单片机的PWM速度不够,上不到500KHz水平.
最近正在关注8250系列,主要的问题是没有军品
即使用一般单片机的话也只能是用定时器或PCA模拟PWM,频率和占空比都受到限制~
0
回复
bilijohn
LV.2
15
2006-05-10 10:53
@mofesli
一般单片机的PWM速度不够,上不到500KHz水平.最近正在关注8250系列,主要的问题是没有军品即使用一般单片机的话也只能是用定时器或PCA模拟PWM,频率和占空比都受到限制~
请问你是做什么产品,要达到500K?你的恒流是多大的?我做1A产品只用到40多K,2~4A的494IC输出200K以内也已经足够,PCA模拟PWM的实际是什么,请教mofesli
0
回复
mofesli
LV.4
16
2006-05-10 12:55
@bilijohn
请问你是做什么产品,要达到500K?你的恒流是多大的?我做1A产品只用到40多K,2~4A的494IC输出200K以内也已经足够,PCA模拟PWM的实际是什么,请教mofesli
做的是模块电源.电流4~10A,输出电压1~2.5V.PCA模拟PWM个人理解基本等于用定时器模拟PWM,输出频率受到系统时钟限制,使用中需要计算中断响应时间带来的误差,比较麻烦.由于不是硬件流水方式,需要软件参与,所以要占用一定的CPU时间,对CPU完成检测、判断等任务有一定影响~
个人理解,有部队的地方还请大家批评指正.
SI8250由于等级原因,目前头儿们还在考虑能不能用~
0
回复
bilijohn
LV.2
17
2006-05-10 17:54
@mofesli
做的是模块电源.电流4~10A,输出电压1~2.5V.PCA模拟PWM个人理解基本等于用定时器模拟PWM,输出频率受到系统时钟限制,使用中需要计算中断响应时间带来的误差,比较麻烦.由于不是硬件流水方式,需要软件参与,所以要占用一定的CPU时间,对CPU完成检测、判断等任务有一定影响~个人理解,有部队的地方还请大家批评指正.SI8250由于等级原因,目前头儿们还在考虑能不能用~
谢了,想问:那么三星,合泰等PWM型单片机的PWM输出应该不属于PCA的范畴把?
0
回复
mofesli
LV.4
18
2006-05-10 19:09
@bilijohn
谢了,想问:那么三星,合泰等PWM型单片机的PWM输出应该不属于PCA的范畴把?
没有用过,不能乱说~
一般没有特别说明的话感觉应该不是PCA模拟的,具体还要看DATASHEET
单片机自带的PWM好像很少有PCA或定时器模拟的~
0
回复