| 到现在楼主也没拿出什么证据证明精度有多高。 |
hhh402 发表于 2022-6-16 00:17 算错了, 你挑一个电压最低的来算其误差试试, 1%的阻所导致的电压误差是大于1%的, 不信你试试动手算。 |
| 16位的DAC就是用两组8位IO组成16个输出接R-2R输出,由于电阻精度、电源精度和噪声的影响,太高的分辨率没有意义,一般超过12位的意义不大。 |
| 16位DA指的是16位分辨率,不是指16位精度,R2R结构DA想减少误差,1是使用大一点的电阻,比如100K和200K,2是使用导通电阻比较小的模拟开关,595比单片机IO效果要好,SGM3157导通电阻只有5欧姆更好,如果用单片机做能够达到1%以下精度就不错了,如果需要更高精度那就用万用表校准。如果不校准16位DA与12位DA精度差别不大,如果校准16位DA比12位DA精度高。还有一点,R2R结构DA带负载能力很差,一般都需要用运放做电压跟随,运放会带来0.1~5mv左右的误差,这对于低电压输出比如10mv时误差是很大的。 |
| 楼上的对单片机要求太高了,对电压精度要求也太高,首先说参考电压5v,正常使用的是7805稳压,要求高的用TL431稳压,TL431电压精度1%最高可以达到0.5%,再找一个几十元的电压基准芯片AD584,电压精度0.3%,也就是说要得到5v,0.1%的参考电压都是非常困难的事情,万用表的精度4位半的0.5%,6位半的0.1%,就算是电压检测要达到0.1%精度也是非常困难的事情。连参考电压都很难达到0.1%精度,DA更加不可能了,不仅是R2R结构的,其它结构的DA也很难到达0.1%精度,DA芯片只给出了分辨率,很少会给出精度。 |
| 更详细的说一下原因,比如输出某个DAC值的数字,对应着R2R的每一个端的开关状态,比如有好几处是低电平,好几片是高电平,这样组合出来后,每一处的低电平和高电平上的电阻拉出来的电流都不会相同的,所以每一个低电平或者高电平都不可能完全在0伏或者参考电压值,它是有偏差的,可能 是0.01伏,0.1伏,0.005伏这个样子,高电平如果参考电压为5伏这样子对吧,哪么有的高电平引脚处可能是4.999伏,有的高电平为4.89x伏,这样一样造成的输出结果就无法保证输出电压是按照 DAC的级进值来输出了,而且在某些输出的DAC值的高低电平组合下,输出的电压比前好几级的值的电压都要低许多,电压比前好几级DAC值的电压倒退回去了,比如上一级输出1伏,DAC值加1后,会输出0.9伏,再加1后输出1.1伏这个样子,这只因为高低电平的组合的位置刚好造成各电阻上下拉的电流严重的偏差,所以让后一级输出的电压比前几级的电压都更低的原因了,电阻精度只要用精度高的电阻测量表选出来非常接近的也没什么影响的,但是开关的高低电平影响是极大的 |
| 如果使用HC595,这芯片引脚如果真的能输出0伏,完全为0伏,然后R2R分别使用1M欧和2M欧作组合,也不会被上拉到HC595的引脚在低电平时造成不完全0伏,哪么这样出来的结果也是可以的,只是电阻这么大,估计切换速度也快不起来,实际上看了HC595手册介绍,输出引脚是无法输出0伏的,而且还要看对应的引脚负载电流的大小引脚上的低电平电压也不一样的,单片机IO低电平输出的电压可以看对应的单片机的手册,这就是为什么这种R2R不能这样使用的原因了,并不是什么电阻精度的问题,电阻精度的原因只会造成每步进一个值,可能不哪么线性,每一级的间隔电压不完全一样,或者电阻温飘造成输出结果的变化而已,但不会造成电压倒退回来的现象,所以只要电阻精度能保证一点,使用继电器作为低频率DAC是非常不错的,只是成本高 |
| 这种R2R原理是正确的,但是唯一的问题是Io无法切底的输出0伏(低电平),因为使用的电阻还会拉电流,造成Io更加的不能完全为0伏,另外高电平时也无法完全达到参考电压,这就是问题,所以根本无法达到线性级进输出电压,而且还会到某些逻辑组合时还会输出倒退回来的电压值,实际上与电阻的精度是否影响是无关的,即使电阻精度影响只会影响级进的线性度,但不会级进后电压倒退回来,我也是通过仿真分析出来原因,除非使用16个继电器,硬件式开关,这样保证在低电平时处于完全的0伏,高电平时完全处于参考电压,这样出来随便使用0.1%精度的电阻都能得到非常线性的输出结果,所以关键就是模拟开关或者595移位寄存器的引脚(包括单片机的IO)都不能完全的低电平和高电平,所以用这种方案只有一条路,使用微型继电器实现,但这样一来就无法高速度DAC的,只能单纯的低速输出电压了,除非找到一种模拟开关能达到纯0伏低电平和纯参考电压的高电平 |
| 这样直接使用开关来仿真是可以得到正确的结果的,但是如果使用单片机IO的话,就问题非常大了,因为IO无法完全输出0伏,完全输出为0伏,这样才能正确的输出结果的,我也做过相关的仿真,使用SPI驱动两片595,接成这样的R2R,结果是到某些值时,输出的电压倒回来了,不能线性,分析原因就是因为无法家祭无完全做到开关在0伏或者高电平状态,因为电阻接通后还是存在电流的,尝试换为100K和200K组成R2R后电流降下来输出结果还算可以,但还是不能线性级进,毕竟还存在一定电流,595的引脚还是无法完全达到0电平状态 |
| 好热闹啊!真是学到不少知识! |
| STC单片机手册上面也介绍过这个R-2R电路,转换时间很快,有时间也搭个电路试试,手头有不少74573之类的芯片,二者组合起来用,就当自娱自乐DIY |
hhh402 发表于 2022-10-8 08:48 原理是可行的!商品化生产的芯片肯定可行,芯片厂商的工艺不是DIY可以复制的,因为复制的成本太高! |
| 不知道40#想表达什么?22#给出的难道不是分立元件的? |
| 楼主估计搞错了一些概念,这个DAC结构是没问题的,也是常用的,只是用分立电阻元件和集成电路芯片里的电阻元件的制造方法和误差是不同的,在集成电路芯片里的电阻精度在于芯片本身设计时的定位以及生产能达到的精度,这个极有可能超过1%的 |
hhh402 发表于 2022-10-8 08:48 快4个月了,有什么进展没有?不会只停留在仿真阶段吧 |
| 既然已经做成了芯片并且还在销售至少说明R-2R分压做DAC芯片是可行的,精度低是相对的,毕竟是12位DAC,精度再低也强过8位,10位的吧。其实有人做有人买已经证明方案可行。 |
hhh402 发表于 2022-6-16 00:17 验证DAC原理可以,但实际应用肯定不现实。不要说1%精度的电阻,就是给你0.1%电阻也不一定能够达到仿真效果。毕竟,仿真是按理想状态给出的可能结果。 |
hhh402 发表于 2022-6-17 13:47 通常商品DAC内部的网络电阻都是经过激光修正的,比我们平时购买的电阻的精度要高的多。没有可比性 |
hhh402 发表于 2022-6-17 17:12 MCP4726, 12bit 你自己看看这片子误差有多大!
|
| 因该用ISIS 仿真直接单片机控制并监测输出有数据 |
| 左边20K电阻接IO口,8位就接8个IO,16位就接16个IO,Vcc=需要输出最大电压。以16位为例:设Vcc=5V,16个IO分别为0000 0000 1111 1111,将这个二进制数转化为10进制等于255,这是输出电压V=255/65536*5V=19.45mV。如果16个IO分别为0000 1111 0000 1111,将这个二进制数转化为10进制等于3855,这是输出电压V=3855/65536*5V=294.11mV。当然这是理论计算值,实际因为单片机IO有内阻所以输出电压会偏低,实际电路中运放不是电压跟随而是放大倍数可调的放大器,先将所以IO置1,再调节运放可变电阻使输出电压等于5V,这时DA输出为0-5V(16位分辨率),如果调节运放可变电阻使输出电压等于10V,这时DA输出为0-10V(16位分辨率)。 |
| 楼主您好,我想问一下咱这个电路怎么通过单片机控制,直接输出与单片机IO口相连吗?Vref又要接多少的稳压电源呢? |
Y_G_G 发表于 2022-6-17 13:24 主要是老师非要求我这么做,我才问楼主的,抱歉啊 |
hhh402 发表于 2022-6-19 22:57 好的,就此打住了 你就好好的做你的DAC去吧,做好了别忘了发个帖子庆祝一下 |
Y_G_G 发表于 2022-6-18 21:27 你是说MCP4726A0T-E、TM8211这种DAC是做来玩的没有实用价值吗?芯片都做出来销售了,你还说没有做过实际电路,至于误差还是看看芯片的资料吧 |
| TM8211就是R-2R原理做的16位DAC芯片,还有不少DAC芯片是使用R-2R原理的,便宜的也有,非常贵的也有。这么多芯片在用至少说明这种R-2R电阻分压DAC电路是有实用价值的。STC8H单片机手册已经提到R-2R电阻分压DAC电路,以后是不是加入DAC就不知道了,不过16位的应该不会,10位或12位就难说了。 |
hhh402 发表于 2022-6-17 09:06 知道为什么带DAC的单片机那么贵么? 知道为什么STC不出带DAC的单片机,只出带PWM的单片机么? 知道为什么STC宁可不声不响,给每个IO加上4.7K上拉电阻,也不搞个R-2R的DAC出来抬高身价么? 这就不是几个电阻的问题。你搭个真实电路出来,试一下就明白了。与其仿真千遍,不如实干一次。 |
hhh402 发表于 2022-6-17 17:12 还在折腾这玩意? 怪不得你觉得这电路好 DAC里面怎么可能用一堆电阻呢? 芯片里面的电阻在绝大多数的情况下只有两种:一种是三极管代替电阻,一种是场效应管代替电阻 而你说的这个MCP4726用的就是场效应管做成的数字电位器,不是电阻 框图是这么个样子而已,里面用的是数字电位器,原理是这个原理,但实用性几乎等于0 你要真这个电路出来,你看一下能不能达到0.7929uV,能有1mV的精度你就笑了 参考电压,温度漂移,电阻误差,这三个加一块,没有做过实际电路,你是不会知道这其中的影响有多大的 |
这是某人设计的图,阵容豪华:
24bit全平衡双声道DAC.pdf
(125.52 KB, 下载次数: 22)
FPGA.pdf
(68.77 KB, 下载次数: 13)
|
本帖最后由 名字不是重点 于 2022-6-18 09:04 编辑 hhh402 发表于 2022-6-17 23:15 不是数字功放,只是单纯的DAC解码器+耳放 |
22#是数字功放吧,只能看看![]() |
|
有不少使用这种电路的DAC芯片,比如MCP4726A0T-E、TM8211,也不贵。估计用的电阻精度比较低吧。 也有用0.1%电阻的,很贵。下面有个介绍R-2R的视频: https://www.bilibili.com/video/B ... 4108bde1b8b3565f372 |
这个产品图看一下,标价RMB12K,仅仅是一个DAC High End Discrete R-2R Sign Magnitude DAC / HeadAmp 旗舰! 全平衡! 27 bit! DSD256/PCM384 售價: RMB 11,980 dac1541 internals dac1541 retail packaging Specifications: THD @ -1 dB <0.005% THD @ -60 dB <0.02% Resistor Precision 27 bit, 0.01% – 0.02% Resistors Clock Jitter RMS 0.3 pS typical S/N 20 Khz Bandwith >123 dB unweighted Frequency Range +0.1 -1.0 dB 20hz – 20Khz USB Input Type B, Isolated, Full/High Speed USB Input Mode Selectable Audio Class 1.0 or Audio Class 2.0 SPDIF / AES / Toslink Inputs Up to 24 bit / 192 Khz USB Input PCM Up to 24 Bit / 384 Ksps USB Input DSD Up to DoP-128 and DSD-256 Digital volume control -80 dB to +10 dB Output Line RCA, 2.0V RMS, Zout 50 ohm Output Line Balanced 3 pins XLR, 4.0V RMS, Zout 100 ohm Output Headphones 6.3 mm Jack, 6.5V RMS, Zout 1.5 ohm 1300mW @ 32Ω Output Headphones Balanced 4 pins XLR, 13V RMS., Zout 3.0 ohm 4400mW @ 32Ω Power Consumptation 90-265V AC, max 35W Size 250 x 205 x 40 mm Weight 1.5 Kg Warranty 3 Years |
lgwd 发表于 2022-6-17 16:04 我百度了一下,一般产品是不会采用这种电路的,只会在土豪版的产品上用它, 比如音响类的。那上边不止16BIT,24BIT的都有。玩HIFI音响的都是不缺钱的主。 要不然单那几十个电阻就可以买到一颗不错的DAC的IC了。 |
| 仿真没有问题只能说明理论上是正确的。你实际搭个电路试试,看看能否达到目的?会不会出现多种问题? |
hhh402 发表于 2022-6-17 09:20 谢谢!我知道我的思路错在哪了 ![]() |
|
查了一个16位DAC,也是用R-2R电阻分压法实现的。网站介绍如下: TM8211是两路16位数模转换集成 电路 ,可广泛应用于数字音频、多媒体系统。 芯片采用CMOS工艺设计,内部电路结构基于R-2R电阻网络结构设计,并在全 电源 电压范围内实现16bit的动态范围。 TM8211可通过采用数字串行总线数据输入,采 用快速R-2R网络结构来支持8X的过采样音频信号处理。 |
hhh402 发表于 2022-6-17 09:32 那您就做去吧 反正这电路现实中不会有人用,就算有,也是DIY玩玩的,一个16位的工业级DAC才几块钱,两个IO就能控制 有谁用16个IO来控制? |
| 关于电阻精度问题,1%足够大多数应用,3位半万用表只用到1%电阻,4位半万用表大部分只用到1%电阻,但是都实现了小于1%的误差,0.1%电阻很少用,0.01%只是传说,校准才是减少误差的捷径。 |
名字不是重点 发表于 2022-6-17 09:04 ADC的话16位只需要16次比较就出结果,不管什么电压都是需要16次比较,12位ADC就需要12次比较,不存在极限情况,具体百度一下有详细介绍。 |