国学芯用 发表于 2020-6-10 14:30:22

STC单片机利用PWM实现 16 位DAC的参考线路图

本帖最后由 国学芯用 于 2021-5-14 10:55 编辑

利用PWM实现 16 位DAC的参考线路图
我这边已经有客户完成了,有没有也在做这个的   给个反馈

Puppey 发表于 2020-6-10 15:19:29

肯定有呀,就是个低成本DA

国学芯用 发表于 2020-6-10 15:23:46

Puppey 发表于 2020-6-10 15:19
肯定有呀,就是个低成本DA

是的DAC芯片太贵了 必须得这样做

Momo 发表于 2020-6-10 16:36:02

最好用运放接个跟随器

newlife2lyf 发表于 2020-6-10 17:58:27

基准电压呢?

sjx2012 发表于 2020-6-10 18:00:41

很早就这么用过后极加个电压跟随运放

su33691 发表于 2020-6-11 10:27:13

STC8H芯片的高级定时器很好用。做16位PWM转DAC一直在用。可惜没有16位硬件乘除功能,运算速度不够。

国学芯用 发表于 2020-6-11 10:33:52

su33691 发表于 2020-6-11 10:27
STC8H芯片的高级定时器很好用。做16位PWM转DAC一直在用。可惜没有16位硬件乘除功能,运算速度不够。 ...

难道你在选型的时候 成功的避开了这个功能??请看图



hz_fujian 发表于 2020-6-11 12:52:05

国学芯用 发表于 2020-6-11 10:33
难道你在选型的时候 成功的避开了这个功能??请看图

乘除法要编译器支持吧!

bblythe2019 发表于 2020-6-11 13:45:43

这个原理图,太简陋了,只能说是个想法,要实现16位DA,还差的远呢。

你直接整一个完整的实际能用的图,和完整的程序,各个参数也标出来,测试结果也出来,也好推广单片机STC。

gzhuli 发表于 2020-6-11 13:49:39

我都是用运放做个三阶低通附带电压跟随,需要基准的话PWM出来接个基准供电的74LVC1G125或者74LVC1T45就行了,精度大概可以到12位吧,不是很差钱的话还是用MCP4726省事。

makesoft 发表于 2020-6-11 14:32:56

给楼主说心里痒痒了,难道要打个板子玩玩,这硬件乘除法器使用估计的嵌入汇编才可以的。

国学芯用 发表于 2020-6-11 14:42:55

bblythe2019 发表于 2020-6-11 13:45
这个原理图,太简陋了,只能说是个想法,要实现16位DA,还差的远呢。

你直接整一个完整的实际能用的图,和 ...

国学芯用 发表于 2020-6-11 14:44:41

PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整

国学芯用 发表于 2020-6-11 14:45:14

makesoft 发表于 2020-6-11 14:32
给楼主说心里痒痒了,难道要打个板子玩玩,这硬件乘除法器使用估计的嵌入汇编才可以的。 ...

硬件 32 / 16, 16 / 16,16 x 16, 数据手册中有 C 语言测试程序

国学芯用 发表于 2020-6-11 14:59:25

gzhuli 发表于 2020-6-11 13:49
我都是用运放做个三阶低通附带电压跟随,需要基准的话PWM出来接个基准供电的74LVC1G125或者74LVC1T45就行了 ...

PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整

gzhuli 发表于 2020-6-11 15:04:35

国学芯用 发表于 2020-6-11 14:59
PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整

所以说12位ADC可以调整出16位精度的DAC? {:titter:}

国学芯用 发表于 2020-6-11 15:16:08

bblythe2019 发表于 2020-6-11 13:45
这个原理图,太简陋了,只能说是个想法,要实现16位DA,还差的远呢。

你直接整一个完整的实际能用的图,和 ...

PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整

ThinkCell 发表于 2020-6-12 00:13:04

PWM做DAC使用一个重要的问题就是芯片上电瞬间高电平问题。MCU引脚上电瞬间为高,导致DAC输出为高电压,容易造成后端误触发。

bblythe2019 发表于 2020-6-12 15:15:37

gzhuli 发表于 2020-6-11 15:04
所以说12位ADC可以调整出16位精度的DAC?

大师,好犀利啊。{:tongue:}

bblythe2019 发表于 2020-6-12 15:17:20

gzhuli 发表于 2020-6-11 13:49
我都是用运放做个三阶低通附带电压跟随,需要基准的话PWM出来接个基准供电的74LVC1G125或者74LVC1T45就行了 ...

大师,我的做法跟你差不多,但是我的线性、精度都是整不好。10位精度都很勉强。

bblythe2019 发表于 2020-6-12 15:21:05

gzhuli 发表于 2020-6-11 15:04
所以说12位ADC可以调整出16位精度的DAC?

估算,这就是STC牛逼的地方。

gzhuli 发表于 2020-6-12 17:03:03

bblythe2019 发表于 2020-6-12 15:17
大师,我的做法跟你差不多,但是我的线性、精度都是整不好。10位精度都很勉强。 ...

我实际也只是用到10位分辨率,线性还可以(除了接近电源轨的两端)。

精度要做到12位的话,基准、运放这些加起来的成本已经不低于MCP4725/6了,带宽还远小于MCP4725/6,何必呢?

ilikemcu 发表于 2020-6-12 19:47:58

对于楼主位给出的16bit的PWM信号,通过二阶RC滤波转换,得到16bit的DAC结果,你的电路只能说是理论,3.3K的电阻+104电容,这样的二阶滤波参数,不知道你的STC单片机需要输出多高频率的16bit PWM信号,而你的MCU能否支持这么高的PWM输出?

把PWM的分辨率降低到12BIT,上面的电路或许马马虎虎凑合用,16bit在这个架构下面就别想了,纹波必定一塌糊涂。

小李非刀 发表于 2020-6-12 20:28:11

ilikemcu 发表于 2020-6-12 19:47
对于楼主位给出的16bit的PWM信号,通过二阶RC滤波转换,得到16bit的DAC结果,你的电路只能说是理论,3.3K的 ...

楼主的意思是可以达到16bit,但是电路图不是16bit的,只是给出电路形式,楼主也不可能将各种频率下的RC值都给出来,使用的人要会计算RC滤波常数,这是电子学最基本的计算了。
使用者甚至可以使用有源滤波,自行设计。

autolog 发表于 2020-6-12 22:02:52

gzhuli 发表于 2020-6-11 15:04
所以说12位ADC可以调整出16位精度的DAC?

一不小心就道出真相啦{:lol:}

bblythe2019 发表于 2020-6-12 22:46:31

本帖最后由 bblythe2019 于 2020-6-12 22:52 编辑

小李非刀 发表于 2020-6-12 20:28
楼主的意思是可以达到16bit,但是电路图不是16bit的,只是给出电路形式,楼主也不可能将各种频率下的RC值 ...

这种电路主要的不是什么形式,关键是具体的电路和参数调不出来。

bblythe2019 发表于 2020-6-12 22:51:42

小李非刀 发表于 2020-6-12 20:28
楼主的意思是可以达到16bit,但是电路图不是16bit的,只是给出电路形式,楼主也不可能将各种频率下的RC值 ...

说的这么简单,你画个具体的电路,算个具体的参数,我们学习下。

john78 发表于 2020-6-13 10:47:20

Lz阻容参数,PwM的频率多少合适?

国学芯用 发表于 2020-6-13 11:53:29

bblythe2019 发表于 2020-6-12 22:51
说的这么简单,你画个具体的电路,算个具体的参数,我们学习下。

国学芯用 发表于 2020-6-13 11:56:30

bblythe2019 发表于 2020-6-12 22:51
说的这么简单,你画个具体的电路,算个具体的参数,我们学习下。

一路ADC检测反馈,回差控制,如果觉得结果还不理想,可以加个PID
这个后期我会请我们工程师写个例程
这个的确是我一个客户控制电机的 已经测试成功大家不用怀疑

lb0857 发表于 2020-6-13 22:15:22

STC其实蛮好用滴如果有一个类似于ULINK这样低价高性能的在线仿真做出来 那么 一统江湖 指日可待

Momo 发表于 2020-6-13 22:30:50

newlife2lyf 发表于 2020-6-10 17:58
基准电压呢?

输出端口的1电平就是基准电压,这个用在要求不高的场合,要求高可以用端口驱动电子开关,另提供一个高精度基准电压源,电子开关在地和基准源之间切换。

hailing 发表于 2020-6-14 12:07:42

lb0857 发表于 2020-6-13 22:15
STC其实蛮好用滴如果有一个类似于ULINK这样低价高性能的在线仿真做出来 那么 一统江湖 指日可待 ...

人家看不到这类xxx-link仿真器。“STC硬件在线仿真,全面领先J-link    U-link   D-link   S-link 及各种傻link ”:https://www.amobbs.com/thread-5724524-1-1.html

yinian 发表于 2020-9-26 10:53:45

谢谢,最近也在思考这个问题,谢谢啊

国学芯用 发表于 2021-5-14 10:42:18

老铁翻出来,最近咨询这个问题的客户挺多。
推荐STC8H3K64S4-45I-LQFP48   STC8A8K64D4-45I-LQFP48   STC8A8K64D4-45I-LQFP64
这些是真12位ADC的主力产品

youlongam 发表于 2021-5-14 12:55:01

国学芯用 发表于 2021-5-14 10:42
老铁翻出来,最近咨询这个问题的客户挺多。
推荐STC8H3K64S4-45I-LQFP48   STC8A8K64D4-45I-LQFP48   S ...

这些芯片现在买的到吗?

国学芯用 发表于 2021-5-14 13:03:40

youlongam 发表于 2021-5-14 12:55
这些芯片现在买的到吗?

有的Q我

rootxie 发表于 2021-5-15 21:43:38

楼主的意思是16位分辨率 不是说精度{:lol:}

qinxg 发表于 2021-5-18 12:00:28

PWM频率多少?示波器测试下各点波形, 看下纹波

国学芯用 发表于 2022-4-29 10:57:56

翻出来老贴,欢迎围观

ibmx311 发表于 2022-5-2 01:57:24

或许0xffff还不如0xfffd输出的高,这种结构最多折腾到11位并且很不稳定
页: [1]
查看完整版本: STC单片机利用PWM实现 16 位DAC的参考线路图