amobbs.com 阿莫电子论坛

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

能不能把两个12位DAC一起组成24位DAC?电路怎样实现?

[复制链接]
(43860244)

出0入0汤圆

发表于 2019-3-17 00:28:22 | 显示全部楼层 |阅读模式
想用STM32F4做一个高速DAC单声道音频输出的东西,
想问一下,能否,把两路DAC用模拟电路组成24位等级的?
给个思路
(43859165)

出0入0汤圆

发表于 2019-3-17 00:46:21 来自手机 | 显示全部楼层
理论上来讲,4096倍放大电路和加法电路就可以做到,前提是最理想条件下。或者有更好的方法,看楼下怎么说
(43858449)

出10入0汤圆

发表于 2019-3-17 00:58:17 来自手机 | 显示全部楼层
本帖最后由 yoz 于 2019-3-17 07:46 编辑

理论上只需要2^12=4096个12位ADC就可以组成24位ADC

修改:抱歉,把DAC看成ADC了。
(43858300)

出0入8汤圆

发表于 2019-3-17 01:00:46 | 显示全部楼层
DAC有机会,把输出再用R-2R模型级联一下就可以了,当然不是R-2R,而是R-4096R。带来的问题是动态响应带宽太低(电阻太大,电路RC响应跟不上)。
(43857389)

出0入0汤圆

发表于 2019-3-17 01:15:57 来自手机 | 显示全部楼层
两路dac参考电压相同,但让一个dac的输出衰减到1/4096后和另一个dac的输出做加法……根本没意义啊!
(43856076)

出0入0汤圆

 楼主| 发表于 2019-3-17 01:37:50 | 显示全部楼层
yoz 发表于 2019-3-17 00:58
理论上只需要2^12=4096个12位ADC就可以组成24位ADC

大家说得这么难
我一个三极管就可以实现简单的了
(43855507)

出0入0汤圆

 楼主| 发表于 2019-3-17 01:47:19 | 显示全部楼层
yoz 发表于 2019-3-17 00:58
理论上只需要2^12=4096个12位ADC就可以组成24位ADC

实际上呢?
(43852601)

出0入0汤圆

发表于 2019-3-17 02:35:45 | 显示全部楼层
我以前用255k电阻与1k电阻组合把两片16位DAC拼接成24bit的

效果出奇的好
(43835123)

出0入0汤圆

发表于 2019-3-17 07:27:03 来自手机 | 显示全部楼层
castiello 发表于 2019-3-17 02:35
我以前用255k电阻与1k电阻组合把两片16位DAC拼接成24bit的

效果出奇的好

线性度如何?单调性如何?不是有了分辨率就行的
(43835089)

出0入0汤圆

发表于 2019-3-17 07:27:37 来自手机 | 显示全部楼层
dog 发表于 2019-3-17 01:37
大家说得这么难
我一个三极管就可以实现简单的了

为啥不直接用音频输出芯片
(43833910)

出10入0汤圆

发表于 2019-3-17 07:47:16 | 显示全部楼层

抱歉,看错题目了。
(43833870)

出0入0汤圆

发表于 2019-3-17 07:47:56 | 显示全部楼层
castiello 发表于 2019-3-17 02:35
我以前用255k电阻与1k电阻组合把两片16位DAC拼接成24bit的

效果出奇的好

很好奇,是不是一个DAC通过电阻衰减,然后GND接另DAC的输出端?
(43833239)

出0入0汤圆

发表于 2019-3-17 07:58:27 | 显示全部楼层
不能实现,还是老老实实买高位的DAC吧。
(43829179)

出0入0汤圆

发表于 2019-3-17 09:06:07 | 显示全部楼层
主要是模拟电路精度的问题,如果模拟电路精度可以,将采用同样参考电压的一路缩小到1/4096然后和另外一路相加即可
(43827000)

出0入0汤圆

发表于 2019-3-17 09:42:26 | 显示全部楼层
本帖最后由 allen0871 于 2019-3-17 09:48 编辑

DAC合成,24位分辨率。图写错了 R2=40.96k

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(43799346)

出0入0汤圆

 楼主| 发表于 2019-3-17 17:23:20 | 显示全部楼层
allen0871 发表于 2019-3-17 09:42
DAC合成,24位分辨率。图写错了 R2=40.96k

这个会对DAC内部有影响吧
用个运放乘法电路呢?
(43796412)

出230入8汤圆

发表于 2019-3-17 18:12:14 | 显示全部楼层
一个变通的方法,学习了。
(43793475)

出0入0汤圆

发表于 2019-3-17 19:01:11 | 显示全部楼层
allen0871 发表于 2019-3-17 09:42
DAC合成,24位分辨率。图写错了 R2=40.96k

你没考虑DAC输出阻抗
(43792896)

出0入0汤圆

发表于 2019-3-17 19:10:50 | 显示全部楼层
可以  输出电流合成   再转电压
要两个精密电阻 价格不菲
(43792297)

出0入0汤圆

发表于 2019-3-17 19:20:49 来自手机 | 显示全部楼层
No.5 发表于 2019-3-17 07:27
线性度如何?单调性如何?不是有了分辨率就行的

线性度就是那个作为高位的16位DA的线性。单调性也是之前那个16位自身的单调性。仅仅增加了分辩率。。。。
高位DA没有那么好做的。
(43787244)

出0入0汤圆

发表于 2019-3-17 20:45:02 | 显示全部楼层
NJ8888 发表于 2019-3-17 19:01
你没考虑DAC输出阻抗

这个只是个示意图, 实际使用要加运放缓冲的
(43786659)

出0入0汤圆

 楼主| 发表于 2019-3-17 20:54:47 | 显示全部楼层
lzyr 发表于 2019-3-17 19:10
可以  输出电流合成   再转电压
要两个精密电阻 价格不菲

不是这个问题,电阻的精度只是对线性有点影响,
(43786431)

出0入0汤圆

发表于 2019-3-17 20:58:35 来自手机 | 显示全部楼层
dog 发表于 2019-3-17 20:54
不是这个问题,电阻的精度只是对线性有点影响,

总的线性就是作为结果的高位的那个DA自己的线性。
低位的那些数字看看就好,呵呵。那些数是会变,但没别的意义。
(43786126)

出0入0汤圆

 楼主| 发表于 2019-3-17 21:03:40 | 显示全部楼层
allen0871 发表于 2019-3-17 20:45
这个只是个示意图, 实际使用要加运放缓冲的

搭一个吧,我琢磨一天了
(43785867)

出0入0汤圆

发表于 2019-3-17 21:07:59 | 显示全部楼层
就该给你们发科技进步奖,想什么好事
(43783518)

出0入0汤圆

发表于 2019-3-17 21:47:08 | 显示全部楼层
传一个网友的图(转自38hot),其中用到了两个DAC合成,输入输出都加了缓冲,兄弟参考一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(43783254)

出0入0汤圆

发表于 2019-3-17 21:51:32 | 显示全部楼层
allen0871 发表于 2019-3-17 09:42
DAC合成,24位分辨率。图写错了 R2=40.96k

不错呀,似乎可行。
(43783168)

出0入0汤圆

发表于 2019-3-17 21:52:58 | 显示全部楼层
两个DAC合成,线性度就不要要求太高了。这个电路是作为6位半电压发生器用的,加上外部反馈还是不错的
(43783099)

出0入0汤圆

发表于 2019-3-17 21:54:07 | 显示全部楼层
就是精度问题,
如果可以的话,任何人都可以用3个8bit CMOS移位寄存器,另外买24个2R电阻,24个R电阻组成R2R就构成24bit DAC了嘛,市面上的24bit还卖这么贵.
(43782958)

出0入0汤圆

发表于 2019-3-17 21:56:28 | 显示全部楼层
继续转帖一下原理部分
一、自校准的六位半电压源的原理

DAC 部分
本设计的目标是

1、基本量程为 0-12V(扩展见第五部分的“后续”)
2、编程和回读的分辨率为 6 位半,意即最大计数为 11.999,99,电压设定(编程)步进最小为 10uV,回读的最小分辨力 10uV
3、具备 5ppm 温度系数、5ppm 非线性误差和 25ppm 年稳定度,这个目标定得比较高,和典型的 6 位半商品万用表看齐,算是一个愿景,能不能实现最后靠数据说话。

为了达成上述目标,首先 6 位半分辨率,意味着其等效 DAC 具有 log2(1199999) = 20.2bit 分辨率,然而仅仅 20.2bit 分辨率,难以保证增益校准和非线性校准需要的精度,所以至少需要有 10 倍理论分辨率,即 23.52bit 分辨率才能比较可靠实现校准的目标。商品的精密 DAC 是没有这样的分辨率的,而音响用 DAC 虽然分辨率更高,但温度系数、单调性、差分非线性都不是很好,线性指标通常更是一塌糊涂,所以这里经过考虑,决定使用商品 16bit 精密 R-2R DAC 和 12bit DAC 合成的方式实现这个 DAC。

DAC 部分原理图。其中主 DAC 为 AD5541,副 DAC 为 MAX515,两个 DAC 产生的电压经由 Rmaster = 249 欧姆和 Rslave = 1 兆欧姆合成,送入 G=2.5 的输出缓冲中缓冲后再输出。


*MAX515 标称为 10bit DAC,但实际上是 12bit DAC。在这里这个问题不是很重要,因为主 DAC 16bit + 副 DAC 即使是 10bit 也有 26bit。

理论上 16bit DAC 如果完美和 12bit DAC 合成,那么结果就是一个 28bit DAC,但实际上电压合成的公式为
Vout = (Vmaster * Rslave + Vslave * Rmsater) / (Rm+Rs)

因此,除非 Rs : Rm = 1 : 2^16,否则理想的合成不成立。在这里,Rs 取 1M OHM,而 Rm 是 249 欧姆,实际上的比例大约是 1:4016,也可以简单认为 Delta(VSlave) 对 Vout 的影响大约是 1/4000 左右,而副 DAC 的 1LSB 为 5V/2^12 = 1220uV,因此合成 DAC 的最小步进是 303nV@5V,log2(5V/303nV) = 24bit,所以实际上合成的 DAC 分辨率是 24bit
(43781711)

出0入0汤圆

发表于 2019-3-17 22:17:15 来自手机 | 显示全部楼层
allen0871 发表于 2019-3-17 21:52
两个DAC合成,线性度就不要要求太高了。这个电路是作为6位半电压发生器用的,加上外部反馈还是不错的 ...

在最坏的某个点上,差分误差基本上就是当作高一半(MSB部分)的那个DA的差分误差,也就是16位而已。
你如果恰好碰上这个位置,就会发现精度极差,甚至在局部都不保证单调性了!
只有高一半不动,只动低一半的情况下才能保证单调。
高一半加1个字,你没法知道低一半减多少个字能把它调回去。。。

(43770484)

出0入4汤圆

发表于 2019-3-18 01:24:22 | 显示全部楼层
出个波形玩玩方法多得是,思路就是一个放大12bit倍和另一个相加
保证指标的话,还不如去买个新的24bit DAC
(43737167)

出0入0汤圆

发表于 2019-3-18 10:39:39 | 显示全部楼层
hugohehuan 发表于 2019-3-18 01:24
出个波形玩玩方法多得是,思路就是一个放大12bit倍和另一个相加
保证指标的话,还不如去买个新的24bit DAC ...

目前最好的商品DAC也就是20bit而已,性能很好, 就是价格死贵.
至于那种24bit DAC, 是给音频用的, 普通应用是不行的.
(43736953)

出0入0汤圆

发表于 2019-3-18 10:43:13 | 显示全部楼层
redroof 发表于 2019-3-17 22:17
在最坏的某个点上,差分误差基本上就是当作高一半(MSB部分)的那个DA的差分误差,也就是16位而已。
你如果 ...

是这个样子的. 我一般是降级使用, 比如12bit的DAC可以一个当成8bit作为主DAC, 一个当成10bit作为辅助DAC, 组合起来性能就相当好了. 作为主DAC的那个合成电阻需要用好点的(温漂)
(43735344)

出0入0汤圆

发表于 2019-3-18 11:10:02 | 显示全部楼层
本帖最后由 wqsjob 于 2019-3-18 11:22 编辑

乘法电路吧? K1=K2=K3

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(43717590)

出0入0汤圆

 楼主| 发表于 2019-3-18 16:05:56 | 显示全部楼层
allen0871 发表于 2019-3-17 21:47
传一个网友的图(转自38hot),其中用到了两个DAC合成,输入输出都加了缓冲,兄弟参考一下。 ...

牛,我学习一下先。
(43717572)

出0入0汤圆

 楼主| 发表于 2019-3-18 16:06:14 | 显示全部楼层
wqsjob 发表于 2019-3-18 11:10
乘法电路吧? K1=K2=K3

谢谢,等我学习一下
(43717478)

出0入0汤圆

 楼主| 发表于 2019-3-18 16:07:48 | 显示全部楼层
locky_z 发表于 2019-3-17 21:54
就是精度问题,
如果可以的话,任何人都可以用3个8bit CMOS移位寄存器,另外买24个2R电阻,24个R电阻组成R2R就 ...

那个太慢了,只能做为固定输出,
(43716718)

出0入0汤圆

 楼主| 发表于 2019-3-18 16:20:28 | 显示全部楼层
redroof 发表于 2019-3-17 20:58
总的线性就是作为结果的高位的那个DA自己的线性。
低位的那些数字看看就好,呵呵。那些数是会变,但没别 ...

我觉得不会,至少以上电路(用两个电阻)不会像你说的那样,DAC的阶梯应该是清晰可见的,
(43716475)

出0入0汤圆

 楼主| 发表于 2019-3-18 16:24:31 | 显示全部楼层
晚上,我去实验一下,用示波器抓一下看看
(43716434)

出0入0汤圆

发表于 2019-3-18 16:25:12 | 显示全部楼层
dog 发表于 2019-3-18 16:20
我觉得不会,至少以上电路(用两个电阻)不会像你说的那样,DAC的阶梯应该是清晰可见的, ...

你自己想想。
占主要地位的那个DA,改变1个字的时候,是什么结果。。。
要记住,非常好的DA,差分非线性指标也会是自身的正负一个LSB。
12位DA的正负一个LSB,换算到24位,该是多少
如何用另一个DA来补偿这个差分非线性??
(43712518)

出0入0汤圆

发表于 2019-3-18 17:30:28 | 显示全部楼层
可以的,便合成后的精度绝对不会高于25位的。
(43704285)

出0入0汤圆

发表于 2019-3-18 19:47:41 来自手机 | 显示全部楼层
是加法电路
(43693059)

出0入0汤圆

发表于 2019-3-18 22:54:47 | 显示全部楼层
dog 发表于 2019-3-18 16:07
那个太慢了,只能做为固定输出,

为啥说慢? 移位寄存器不是计数器, SPI 的DAC也是串口输入,
(43682580)

出0入4汤圆

发表于 2019-3-19 01:49:26 | 显示全部楼层
allen0871 发表于 2019-3-18 10:39
目前最好的商品DAC也就是20bit而已,性能很好, 就是价格死贵.
至于那种24bit DAC, 是给音频用的, 普通应用 ...

你要认真看贴啊,楼主就是要音频应用……
(43660738)

出0入0汤圆

发表于 2019-3-19 07:53:28 | 显示全部楼层
hugohehuan 发表于 2019-3-19 01:49
你要认真看贴啊,楼主就是要音频应用……

好吧,音频的话还是直接24bit的好,也不贵
(43657234)

出0入0汤圆

 楼主| 发表于 2019-3-19 08:51:52 | 显示全部楼层
locky_z 发表于 2019-3-18 22:54
为啥说慢? 移位寄存器不是计数器, SPI 的DAC也是串口输入,

无法播放音频的,MCU无法干其它事情了
如果用内部DAC,则可以用TIMER触发DMA
(43657151)

出0入0汤圆

发表于 2019-3-19 08:53:15 | 显示全部楼层
学习一下
回帖提示: 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2020-8-5 15:52

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

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