找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1381|回复: 10
收起左侧

关于PWM模拟DAC 如何提高占空比精度呢?

[复制链接]
ID:101869 发表于 2023-4-27 12:14 | 显示全部楼层 |阅读模式
想做一个数控电源,使用160K PWM,有个问题  占空比精度只有100多,如何提高占空比精度呢 我想达到4096,求个思路.
回复

使用道具 举报

ID:879348 发表于 2023-4-27 15:06 | 显示全部楼层
只要你的单片机支持就行,160k,4096点,要求时钟是655MHz
回复

使用道具 举报

ID:101869 发表于 2023-4-27 15:29 来自手机 | 显示全部楼层
wufa1986 发表于 2023-4-27 15:06
只要你的单片机支持就行,160k,4096点,要求时钟是655MHz

我看有用stm8实现的  没看明白代码
回复

使用道具 举报

ID:213173 发表于 2023-4-27 16:00 | 显示全部楼层
非凡科技 发表于 2023-4-27 15:29
我看有用stm8实现的  没看明白代码

可能需要外部硬件配合,单靠单片机基本做不到。
回复

使用道具 举报

ID:101869 发表于 2023-4-27 17:51 来自手机 | 显示全部楼层
wulin 发表于 2023-4-27 16:00
可能需要外部硬件配合,单靠单片机基本做不到。

这是论坛里的您可以看看【非原创ZXD2400 v4.3完美改造60V50A可调数控电源(STM8/PCB/代码全开源) - STM32/8 - - 手机版】http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=54116&highlight=%CA%FD%BF%D8%B5%E7%D4%B4&mobile=2
我是想把它移植到STC
回复

使用道具 举报

ID:1059013 发表于 2023-4-27 19:55 | 显示全部楼层
为啥频率要160k?如果4k左右很多单片机能做到4096
回复

使用道具 举报

ID:155507 发表于 2023-4-28 08:22 | 显示全部楼层
模拟的精度取决于 你检测反馈调控的 ADC 的精度, STC8H8K64U, STC32G12K128的ADC 完美
113034jiey99mmz3aokv5i.png



用ADC来检测,实时调控


使用R -2 R电阻做DAC 输出,响应速度一般在1us以下。
如果输出有滤波电容,则响应速度为fo=1/ 2* pi*R *C ,R 为DAC 输出电阻,按图中数据为10 K。
如果要强的驱动能力,则要用运放来缓冲,同时做低通滤波。
如果使用双电源运放,则输出可以到0 电压,如果使用轨对轨的单电源运放,则输出可以到50 mV。
DAC 的精度,取决于IO输出电压精度和电阻的精度,这种应用使用1%误差的电阻时,
则精度主要由IO电压决定。也可以通过ADC 来读取输出来校正。
DAC 要使用同一组IO(8位DAC时)或2组IO(超过8位DAC时),方便刷新输出.


R-2R电阻8位DAC               R-2R电阻12位DAC

113034lsywmmymypfnwmbp.png



回复

使用道具 举报

ID:155507 发表于 2023-4-28 08:33 | 显示全部楼层
同时推荐   利用PWM实现16位DAC的参考线路图
STC8H/STC32G系列单片机的高级PWM定时器可输出16位的PWM波形,再经过两级低通滤波即可产生16位的DAC信号,通过调节PWM波形的高电平占空比即可实现DAC信号的改变。应用线路图如下图所示,输出的DAC信号可输入到MCU的ADC进行反馈测量。
用STC的MCU 自带的12位高精准ADC来控制精度,搭个12位,14位,16位的 电阻分压DAC,达到10位/12位,是很轻松的事
095057nsja60ecu767ai73.png



回复

使用道具 举报

ID:291668 发表于 2023-4-28 08:50 | 显示全部楼层
高级,可以实现,加外部高精度AD芯片采样
回复

使用道具 举报

ID:123289 发表于 2023-4-28 11:06 | 显示全部楼层
1、PWM的分率值要大于4096。即周期要大于最小值1的4096倍。
2、输出滤波时常值要合适。太大得不到小电压,太小电压不波动大。
回复

使用道具 举报

ID:1034262 发表于 2023-4-28 12:07 | 显示全部楼层
要得到高精度的PWM,要保证PWM频率、占空比稳定,输出幅度稳定。
MCU本身IO输出高低电平驱动力不平衡、输出高电平幅度受电源影响,所以IO直接输出PWM的精度受限。
我的方案是:
1、PWM控制一个高速、单刀双掷模拟开关,高电平时接REF电压,低电平时接GND,模拟开关内阻比较一致。
2、MCU使用低抖晃率的外部晶振。
3、使用3阶低通滤波,低通频率是PWM频率的1/5以下,第一阶是普通的RC,将PWM滤波成低纹波的类似三角波,然后接低噪声、低失真精密运放做的巴特沃有源2阶低通滤波,运放用双电源供电。

以上措施,可以得到高精度、高稳定度的直流电输出,线性度非常高,至于分辨率,最高一般到14位。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表