STC单片机利用PWM实现 16 位DAC的参考线路图
本帖最后由 国学芯用 于 2021-5-14 10:55 编辑利用PWM实现 16 位DAC的参考线路图
我这边已经有客户完成了,有没有也在做这个的 给个反馈
肯定有呀,就是个低成本DA Puppey 发表于 2020-6-10 15:19
肯定有呀,就是个低成本DA
是的DAC芯片太贵了 必须得这样做 最好用运放接个跟随器 基准电压呢? 很早就这么用过后极加个电压跟随运放 STC8H芯片的高级定时器很好用。做16位PWM转DAC一直在用。可惜没有16位硬件乘除功能,运算速度不够。 su33691 发表于 2020-6-11 10:27
STC8H芯片的高级定时器很好用。做16位PWM转DAC一直在用。可惜没有16位硬件乘除功能,运算速度不够。 ...
难道你在选型的时候 成功的避开了这个功能??请看图
国学芯用 发表于 2020-6-11 10:33
难道你在选型的时候 成功的避开了这个功能??请看图
乘除法要编译器支持吧! 这个原理图,太简陋了,只能说是个想法,要实现16位DA,还差的远呢。
你直接整一个完整的实际能用的图,和完整的程序,各个参数也标出来,测试结果也出来,也好推广单片机STC。 我都是用运放做个三阶低通附带电压跟随,需要基准的话PWM出来接个基准供电的74LVC1G125或者74LVC1T45就行了,精度大概可以到12位吧,不是很差钱的话还是用MCP4726省事。 给楼主说心里痒痒了,难道要打个板子玩玩,这硬件乘除法器使用估计的嵌入汇编才可以的。 bblythe2019 发表于 2020-6-11 13:45
这个原理图,太简陋了,只能说是个想法,要实现16位DA,还差的远呢。
你直接整一个完整的实际能用的图,和 ...
PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整
makesoft 发表于 2020-6-11 14:32
给楼主说心里痒痒了,难道要打个板子玩玩,这硬件乘除法器使用估计的嵌入汇编才可以的。 ...
硬件 32 / 16, 16 / 16,16 x 16, 数据手册中有 C 语言测试程序 gzhuli 发表于 2020-6-11 13:49
我都是用运放做个三阶低通附带电压跟随,需要基准的话PWM出来接个基准供电的74LVC1G125或者74LVC1T45就行了 ...
PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整 国学芯用 发表于 2020-6-11 14:59
PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整
所以说12位ADC可以调整出16位精度的DAC? {:titter:} bblythe2019 发表于 2020-6-11 13:45
这个原理图,太简陋了,只能说是个想法,要实现16位DA,还差的远呢。
你直接整一个完整的实际能用的图,和 ...
PWM 当 DAC 使用的测试程序, 并用 12-BIT ADC 来测量,可反馈调整 PWM做DAC使用一个重要的问题就是芯片上电瞬间高电平问题。MCU引脚上电瞬间为高,导致DAC输出为高电压,容易造成后端误触发。 gzhuli 发表于 2020-6-11 15:04
所以说12位ADC可以调整出16位精度的DAC?
大师,好犀利啊。{:tongue:} gzhuli 发表于 2020-6-11 13:49
我都是用运放做个三阶低通附带电压跟随,需要基准的话PWM出来接个基准供电的74LVC1G125或者74LVC1T45就行了 ...
大师,我的做法跟你差不多,但是我的线性、精度都是整不好。10位精度都很勉强。 gzhuli 发表于 2020-6-11 15:04
所以说12位ADC可以调整出16位精度的DAC?
估算,这就是STC牛逼的地方。 bblythe2019 发表于 2020-6-12 15:17
大师,我的做法跟你差不多,但是我的线性、精度都是整不好。10位精度都很勉强。 ...
我实际也只是用到10位分辨率,线性还可以(除了接近电源轨的两端)。
精度要做到12位的话,基准、运放这些加起来的成本已经不低于MCP4725/6了,带宽还远小于MCP4725/6,何必呢? 对于楼主位给出的16bit的PWM信号,通过二阶RC滤波转换,得到16bit的DAC结果,你的电路只能说是理论,3.3K的电阻+104电容,这样的二阶滤波参数,不知道你的STC单片机需要输出多高频率的16bit PWM信号,而你的MCU能否支持这么高的PWM输出?
把PWM的分辨率降低到12BIT,上面的电路或许马马虎虎凑合用,16bit在这个架构下面就别想了,纹波必定一塌糊涂。 ilikemcu 发表于 2020-6-12 19:47
对于楼主位给出的16bit的PWM信号,通过二阶RC滤波转换,得到16bit的DAC结果,你的电路只能说是理论,3.3K的 ...
楼主的意思是可以达到16bit,但是电路图不是16bit的,只是给出电路形式,楼主也不可能将各种频率下的RC值都给出来,使用的人要会计算RC滤波常数,这是电子学最基本的计算了。
使用者甚至可以使用有源滤波,自行设计。 gzhuli 发表于 2020-6-11 15:04
所以说12位ADC可以调整出16位精度的DAC?
一不小心就道出真相啦{:lol:} 本帖最后由 bblythe2019 于 2020-6-12 22:52 编辑
小李非刀 发表于 2020-6-12 20:28
楼主的意思是可以达到16bit,但是电路图不是16bit的,只是给出电路形式,楼主也不可能将各种频率下的RC值 ...
这种电路主要的不是什么形式,关键是具体的电路和参数调不出来。 小李非刀 发表于 2020-6-12 20:28
楼主的意思是可以达到16bit,但是电路图不是16bit的,只是给出电路形式,楼主也不可能将各种频率下的RC值 ...
说的这么简单,你画个具体的电路,算个具体的参数,我们学习下。 Lz阻容参数,PwM的频率多少合适? bblythe2019 发表于 2020-6-12 22:51
说的这么简单,你画个具体的电路,算个具体的参数,我们学习下。
bblythe2019 发表于 2020-6-12 22:51
说的这么简单,你画个具体的电路,算个具体的参数,我们学习下。
一路ADC检测反馈,回差控制,如果觉得结果还不理想,可以加个PID
这个后期我会请我们工程师写个例程
这个的确是我一个客户控制电机的 已经测试成功大家不用怀疑 STC其实蛮好用滴如果有一个类似于ULINK这样低价高性能的在线仿真做出来 那么 一统江湖 指日可待 newlife2lyf 发表于 2020-6-10 17:58
基准电压呢?
输出端口的1电平就是基准电压,这个用在要求不高的场合,要求高可以用端口驱动电子开关,另提供一个高精度基准电压源,电子开关在地和基准源之间切换。 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 谢谢,最近也在思考这个问题,谢谢啊 老铁翻出来,最近咨询这个问题的客户挺多。
推荐STC8H3K64S4-45I-LQFP48 STC8A8K64D4-45I-LQFP48 STC8A8K64D4-45I-LQFP64
这些是真12位ADC的主力产品 国学芯用 发表于 2021-5-14 10:42
老铁翻出来,最近咨询这个问题的客户挺多。
推荐STC8H3K64S4-45I-LQFP48 STC8A8K64D4-45I-LQFP48 S ...
这些芯片现在买的到吗?
youlongam 发表于 2021-5-14 12:55
这些芯片现在买的到吗?
有的Q我 楼主的意思是16位分辨率 不是说精度{:lol:} PWM频率多少?示波器测试下各点波形, 看下纹波 翻出来老贴,欢迎围观 或许0xffff还不如0xfffd输出的高,这种结构最多折腾到11位并且很不稳定
页:
[1]