标题: 关于PWM模拟DAC 如何提高占空比精度呢? [打印本页]

作者: 非凡科技    时间: 2023-4-27 12:14
标题: 关于PWM模拟DAC 如何提高占空比精度呢?
想做一个数控电源,使用160K PWM,有个问题  占空比精度只有100多,如何提高占空比精度呢 我想达到4096,求个思路.

作者: wufa1986    时间: 2023-4-27 15:06
只要你的单片机支持就行,160k,4096点,要求时钟是655MHz
作者: 非凡科技    时间: 2023-4-27 15:29
wufa1986 发表于 2023-4-27 15:06
只要你的单片机支持就行,160k,4096点,要求时钟是655MHz

我看有用stm8实现的  没看明白代码
作者: wulin    时间: 2023-4-27 16:00
非凡科技 发表于 2023-4-27 15:29
我看有用stm8实现的  没看明白代码

可能需要外部硬件配合,单靠单片机基本做不到。
作者: 非凡科技    时间: 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
作者: fishafish    时间: 2023-4-27 19:55
为啥频率要160k?如果4k左右很多单片机能做到4096
作者: angmall    时间: 2023-4-28 08:22
模拟的精度取决于 你检测反馈调控的 ADC 的精度, STC8H8K64U, STC32G12K128的ADC 完美




用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






作者: angmall    时间: 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位,是很轻松的事





作者: li64331218    时间: 2023-4-28 08:50
高级,可以实现,加外部高精度AD芯片采样

作者: yzwzfyz    时间: 2023-4-28 11:06
1、PWM的分率值要大于4096。即周期要大于最小值1的4096倍。
2、输出滤波时常值要合适。太大得不到小电压,太小电压不波动大。

作者: coody_sz    时间: 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位。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1