amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 1424|回复: 47

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

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

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

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

修改:抱歉,把DAC看成ADC了。
发表于 2019-3-17 01:00:46 | 显示全部楼层
DAC有机会,把输出再用R-2R模型级联一下就可以了,当然不是R-2R,而是R-4096R。带来的问题是动态响应带宽太低(电阻太大,电路RC响应跟不上)。
发表于 2019-3-17 01:15:57 来自手机 | 显示全部楼层
两路dac参考电压相同,但让一个dac的输出衰减到1/4096后和另一个dac的输出做加法……根本没意义啊!
 楼主| 发表于 2019-3-17 01:37:50 | 显示全部楼层
yoz 发表于 2019-3-17 00:58
理论上只需要2^12=4096个12位ADC就可以组成24位ADC

大家说得这么难
我一个三极管就可以实现简单的了
 楼主| 发表于 2019-3-17 01:47:19 | 显示全部楼层
yoz 发表于 2019-3-17 00:58
理论上只需要2^12=4096个12位ADC就可以组成24位ADC

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

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

效果出奇的好

线性度如何?单调性如何?不是有了分辨率就行的
发表于 2019-3-17 07:27:37 来自手机 | 显示全部楼层
dog 发表于 2019-3-17 01:37
大家说得这么难
我一个三极管就可以实现简单的了

为啥不直接用音频输出芯片
发表于 2019-3-17 07:47:16 | 显示全部楼层

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

效果出奇的好

很好奇,是不是一个DAC通过电阻衰减,然后GND接另DAC的输出端?
发表于 2019-3-17 07:58:27 | 显示全部楼层
不能实现,还是老老实实买高位的DAC吧。
发表于 2019-3-17 09:06:07 | 显示全部楼层
主要是模拟电路精度的问题,如果模拟电路精度可以,将采用同样参考电压的一路缩小到1/4096然后和另外一路相加即可
发表于 2019-3-17 09:42:26 | 显示全部楼层
本帖最后由 allen0871 于 2019-3-17 09:48 编辑

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

本帖子中包含更多资源

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

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

这个会对DAC内部有影响吧
用个运放乘法电路呢?
发表于 2019-3-17 18:12:14 | 显示全部楼层
一个变通的方法,学习了。
发表于 2019-3-17 19:01:11 | 显示全部楼层
allen0871 发表于 2019-3-17 09:42
DAC合成,24位分辨率。图写错了 R2=40.96k

你没考虑DAC输出阻抗
发表于 2019-3-17 19:10:50 | 显示全部楼层
可以  输出电流合成   再转电压
要两个精密电阻 价格不菲
发表于 2019-3-17 19:20:49 来自手机 | 显示全部楼层
No.5 发表于 2019-3-17 07:27
线性度如何?单调性如何?不是有了分辨率就行的

线性度就是那个作为高位的16位DA的线性。单调性也是之前那个16位自身的单调性。仅仅增加了分辩率。。。。
高位DA没有那么好做的。
发表于 2019-3-17 20:45:02 | 显示全部楼层
NJ8888 发表于 2019-3-17 19:01
你没考虑DAC输出阻抗

这个只是个示意图, 实际使用要加运放缓冲的
 楼主| 发表于 2019-3-17 20:54:47 | 显示全部楼层
lzyr 发表于 2019-3-17 19:10
可以  输出电流合成   再转电压
要两个精密电阻 价格不菲

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

总的线性就是作为结果的高位的那个DA自己的线性。
低位的那些数字看看就好,呵呵。那些数是会变,但没别的意义。
 楼主| 发表于 2019-3-17 21:03:40 | 显示全部楼层
allen0871 发表于 2019-3-17 20:45
这个只是个示意图, 实际使用要加运放缓冲的

搭一个吧,我琢磨一天了
发表于 2019-3-17 21:07:59 | 显示全部楼层
就该给你们发科技进步奖,想什么好事
发表于 2019-3-17 21:47:08 | 显示全部楼层
传一个网友的图(转自38hot),其中用到了两个DAC合成,输入输出都加了缓冲,兄弟参考一下。

本帖子中包含更多资源

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

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

不错呀,似乎可行。
发表于 2019-3-17 21:52:58 | 显示全部楼层
两个DAC合成,线性度就不要要求太高了。这个电路是作为6位半电压发生器用的,加上外部反馈还是不错的
发表于 2019-3-17 21:54:07 | 显示全部楼层
就是精度问题,
如果可以的话,任何人都可以用3个8bit CMOS移位寄存器,另外买24个2R电阻,24个R电阻组成R2R就构成24bit DAC了嘛,市面上的24bit还卖这么贵.
发表于 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
发表于 2019-3-17 22:17:15 来自手机 | 显示全部楼层
allen0871 发表于 2019-3-17 21:52
两个DAC合成,线性度就不要要求太高了。这个电路是作为6位半电压发生器用的,加上外部反馈还是不错的 ...

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

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

目前最好的商品DAC也就是20bit而已,性能很好, 就是价格死贵.
至于那种24bit DAC, 是给音频用的, 普通应用是不行的.
发表于 2019-3-18 10:43:13 | 显示全部楼层
redroof 发表于 2019-3-17 22:17
在最坏的某个点上,差分误差基本上就是当作高一半(MSB部分)的那个DA的差分误差,也就是16位而已。
你如果 ...

是这个样子的. 我一般是降级使用, 比如12bit的DAC可以一个当成8bit作为主DAC, 一个当成10bit作为辅助DAC, 组合起来性能就相当好了. 作为主DAC的那个合成电阻需要用好点的(温漂)
发表于 2019-3-18 11:10:02 | 显示全部楼层
本帖最后由 wqsjob 于 2019-3-18 11:22 编辑

乘法电路吧? K1=K2=K3

本帖子中包含更多资源

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

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

牛,我学习一下先。
 楼主| 发表于 2019-3-18 16:06:14 | 显示全部楼层
wqsjob 发表于 2019-3-18 11:10
乘法电路吧? K1=K2=K3

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

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

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

你自己想想。
占主要地位的那个DA,改变1个字的时候,是什么结果。。。
要记住,非常好的DA,差分非线性指标也会是自身的正负一个LSB。
12位DA的正负一个LSB,换算到24位,该是多少
如何用另一个DA来补偿这个差分非线性??
发表于 2019-3-18 17:30:28 | 显示全部楼层
可以的,便合成后的精度绝对不会高于25位的。
发表于 2019-3-18 19:47:41 来自手机 | 显示全部楼层
是加法电路
发表于 2019-3-18 22:54:47 | 显示全部楼层
dog 发表于 2019-3-18 16:07
那个太慢了,只能做为固定输出,

为啥说慢? 移位寄存器不是计数器, SPI 的DAC也是串口输入,
发表于 2019-3-19 01:49:26 | 显示全部楼层
allen0871 发表于 2019-3-18 10:39
目前最好的商品DAC也就是20bit而已,性能很好, 就是价格死贵.
至于那种24bit DAC, 是给音频用的, 普通应用 ...

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

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

无法播放音频的,MCU无法干其它事情了
如果用内部DAC,则可以用TIMER触发DMA
发表于 2019-3-19 08:53:15 | 显示全部楼层
学习一下
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2020-1-18 00:11

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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