amobbs.com 阿莫电子论坛

 找回密码
 注册
密码必须由大写、小写、数字组成,三者缺一不可
搜索
bottom↓
回复: 33

利用PWM实现 16 位DAC的参考线路图

[复制链接]
(3138845)

出0入14汤圆

发表于 2020-6-10 14:30:22 | 显示全部楼层 |阅读模式
利用PWM实现 16 位DAC的参考线路图
我这边已经有客户完成了,有没有也在做这个的   给个反馈
1.png
(3135898)

出0入0汤圆

发表于 2020-6-10 15:19:29 来自手机 | 显示全部楼层
肯定有呀,就是个低成本DA
(3135641)

出0入14汤圆

 楼主| 发表于 2020-6-10 15:23:46 | 显示全部楼层
Puppey 发表于 2020-6-10 15:19
肯定有呀,就是个低成本DA

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

出0入0汤圆

发表于 2020-6-10 16:36:02 | 显示全部楼层
最好用运放接个跟随器
(3126360)

出0入0汤圆

发表于 2020-6-10 17:58:27 | 显示全部楼层
基准电压呢?
(3126226)

出0入0汤圆

发表于 2020-6-10 18:00:41 | 显示全部楼层
很早就这么用过后极加个电压跟随运放
(3067034)

出0入0汤圆

发表于 2020-6-11 10:27:13 | 显示全部楼层
STC8H芯片的高级定时器很好用。做16位PWM转DAC一直在用。可惜没有16位硬件乘除功能,运算速度不够。
(3066635)

出0入14汤圆

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


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


111111.png
22222.png
(3058342)

出0入0汤圆

发表于 2020-6-11 12:52:05 | 显示全部楼层
国学芯用 发表于 2020-6-11 10:33
难道你在选型的时候 成功的避开了这个功能??请看图

乘除法要编译器支持吧!
(3055124)

出0入0汤圆

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

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

出0入0汤圆

发表于 2020-6-11 13:49:39 | 显示全部楼层
我都是用运放做个三阶低通附带电压跟随,需要基准的话PWM出来接个基准供电的74LVC1G125或者74LVC1T45就行了,精度大概可以到12位吧,不是很差钱的话还是用MCP4726省事。
(3052291)

出0入14汤圆

发表于 2020-6-11 14:32:56 | 显示全部楼层
给楼主说心里痒痒了,难道要打个板子玩玩,这硬件乘除法器使用估计的嵌入汇编才可以的。
(3051692)

出0入14汤圆

 楼主| 发表于 2020-6-11 14:42:55 | 显示全部楼层
bblythe2019 发表于 2020-6-11 13:45
这个原理图,太简陋了,只能说是个想法,要实现16位DA,还差的远呢。

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

a.png b.png
(3051586)

出0入14汤圆

 楼主| 发表于 2020-6-11 14:44:41 | 显示全部楼层
PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整
c.png d.png
(3051553)

出0入14汤圆

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

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

出0入14汤圆

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

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

出0入0汤圆

发表于 2020-6-11 15:04:35 | 显示全部楼层
国学芯用 发表于 2020-6-11 14:59
PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整

所以说12位ADC可以调整出16位精度的DAC?
(3049699)

出0入14汤圆

 楼主| 发表于 2020-6-11 15:16:08 | 显示全部楼层
bblythe2019 发表于 2020-6-11 13:45
这个原理图,太简陋了,只能说是个想法,要实现16位DA,还差的远呢。

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

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

出0入0汤圆

发表于 2020-6-12 00:13:04 | 显示全部楼层
PWM做DAC使用一个重要的问题就是芯片上电瞬间高电平问题。MCU引脚上电瞬间为高,导致DAC输出为高电压,容易造成后端误触发。
(2963330)

出0入0汤圆

发表于 2020-6-12 15:15:37 | 显示全部楼层
gzhuli 发表于 2020-6-11 15:04
所以说12位ADC可以调整出16位精度的DAC?

大师,好犀利啊。
(2963227)

出0入0汤圆

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


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

出0入0汤圆

发表于 2020-6-12 15:21:05 | 显示全部楼层
gzhuli 发表于 2020-6-11 15:04
所以说12位ADC可以调整出16位精度的DAC?

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

出0入0汤圆

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

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

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

出0入0汤圆

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

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

出0入0汤圆

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

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

出0入0汤圆

发表于 2020-6-12 22:02:52 | 显示全部楼层
gzhuli 发表于 2020-6-11 15:04
所以说12位ADC可以调整出16位精度的DAC?

一不小心就道出真相啦
(2936276)

出0入0汤圆

发表于 2020-6-12 22:46:31 | 显示全部楼层
本帖最后由 bblythe2019 于 2020-6-12 22:52 编辑
小李非刀 发表于 2020-6-12 20:28
楼主的意思是可以达到16bit,但是电路图不是16bit的,只是给出电路形式,楼主也不可能将各种频率下的RC值 ...


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

出0入0汤圆

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

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

出0入0汤圆

发表于 2020-6-13 10:47:20 来自手机 | 显示全部楼层
Lz阻容参数,PwM的频率多少合适?
(2889058)

出0入14汤圆

 楼主| 发表于 2020-6-13 11:53:29 | 显示全部楼层
bblythe2019 发表于 2020-6-12 22:51
说的这么简单,你画个具体的电路,算个具体的参数,我们学习下。

1.png
(2888877)

出0入14汤圆

 楼主| 发表于 2020-6-13 11:56:30 | 显示全部楼层
bblythe2019 发表于 2020-6-12 22:51
说的这么简单,你画个具体的电路,算个具体的参数,我们学习下。

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

出0入0汤圆

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

出0入0汤圆

发表于 2020-6-13 22:30:50 来自手机 | 显示全部楼层
newlife2lyf 发表于 2020-6-10 17:58
基准电压呢?

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

出20入80汤圆

发表于 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
回帖提示: 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-7-16 22:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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