找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: hhh402
打印 上一主题 下一主题
收起左侧

单片机实现16位电阻分压快速DAC电路 Multisim仿真原理图

  [复制链接]
41#
ID:384109 发表于 2022-10-8 09:15 | 只看该作者
楼主估计搞错了一些概念,这个DAC结构是没问题的,也是常用的,只是用分立电阻元件和集成电路芯片里的电阻元件的制造方法和误差是不同的,在集成电路芯片里的电阻精度在于芯片本身设计时的定位以及生产能达到的精度,这个极有可能超过1%的
回复

使用道具 举报

42#
ID:491577 发表于 2022-10-8 10:17 | 只看该作者
不知道40#想表达什么?22#给出的难道不是分立元件的?
回复

使用道具 举报

43#
ID:491875 发表于 2022-10-8 14:38 | 只看该作者
hhh402 发表于 2022-10-8 08:48
既然已经做成了芯片并且还在销售至少说明R-2R分压做DAC芯片是可行的,精度低是相对的,毕竟是12位DAC,精度 ...

原理是可行的!商品化生产的芯片肯定可行,芯片厂商的工艺不是DIY可以复制的,因为复制的成本太高!
回复

使用道具 举报

44#
ID:151348 发表于 2022-10-8 15:51 | 只看该作者
STC单片机手册上面也介绍过这个R-2R电路,转换时间很快,有时间也搭个电路试试,手头有不少74573之类的芯片,二者组合起来用,就当自娱自乐DIY
回复

使用道具 举报

45#
ID:399179 发表于 2022-11-8 08:29 来自手机 | 只看该作者
好热闹啊!真是学到不少知识!
回复

使用道具 举报

46#
ID:111280 发表于 2024-2-5 22:52 | 只看该作者
这样直接使用开关来仿真是可以得到正确的结果的,但是如果使用单片机IO的话,就问题非常大了,因为IO无法完全输出0伏,完全输出为0伏,这样才能正确的输出结果的,我也做过相关的仿真,使用SPI驱动两片595,接成这样的R2R,结果是到某些值时,输出的电压倒回来了,不能线性,分析原因就是因为无法家祭无完全做到开关在0伏或者高电平状态,因为电阻接通后还是存在电流的,尝试换为100K和200K组成R2R后电流降下来输出结果还算可以,但还是不能线性级进,毕竟还存在一定电流,595的引脚还是无法完全达到0电平状态
回复

使用道具 举报

47#
ID:111280 发表于 2024-2-5 22:59 | 只看该作者
这种R2R原理是正确的,但是唯一的问题是Io无法切底的输出0伏(低电平),因为使用的电阻还会拉电流,造成Io更加的不能完全为0伏,另外高电平时也无法完全达到参考电压,这就是问题,所以根本无法达到线性级进输出电压,而且还会到某些逻辑组合时还会输出倒退回来的电压值,实际上与电阻的精度是否影响是无关的,即使电阻精度影响只会影响级进的线性度,但不会级进后电压倒退回来,我也是通过仿真分析出来原因,除非使用16个继电器,硬件式开关,这样保证在低电平时处于完全的0伏,高电平时完全处于参考电压,这样出来随便使用0.1%精度的电阻都能得到非常线性的输出结果,所以关键就是模拟开关或者595移位寄存器的引脚(包括单片机的IO)都不能完全的低电平和高电平,所以用这种方案只有一条路,使用微型继电器实现,但这样一来就无法高速度DAC的,只能单纯的低速输出电压了,除非找到一种模拟开关能达到纯0伏低电平和纯参考电压的高电平
回复

使用道具 举报

48#
ID:111280 发表于 2024-2-5 23:08 | 只看该作者
如果使用HC595,这芯片引脚如果真的能输出0伏,完全为0伏,然后R2R分别使用1M欧和2M欧作组合,也不会被上拉到HC595的引脚在低电平时造成不完全0伏,哪么这样出来的结果也是可以的,只是电阻这么大,估计切换速度也快不起来,实际上看了HC595手册介绍,输出引脚是无法输出0伏的,而且还要看对应的引脚负载电流的大小引脚上的低电平电压也不一样的,单片机IO低电平输出的电压可以看对应的单片机的手册,这就是为什么这种R2R不能这样使用的原因了,并不是什么电阻精度的问题,电阻精度的原因只会造成每步进一个值,可能不哪么线性,每一级的间隔电压不完全一样,或者电阻温飘造成输出结果的变化而已,但不会造成电压倒退回来的现象,所以只要电阻精度能保证一点,使用继电器作为低频率DAC是非常不错的,只是成本高
回复

使用道具 举报

49#
ID:111280 发表于 2024-2-5 23:23 | 只看该作者
更详细的说一下原因,比如输出某个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伏这个样子,这只因为高低电平的组合的位置刚好造成各电阻上下拉的电流严重的偏差,所以让后一级输出的电压比前几级的电压都更低的原因了,电阻精度只要用精度高的电阻测量表选出来非常接近的也没什么影响的,但是开关的高低电平影响是极大的
回复

使用道具 举报

50#
ID:491577 发表于 2024-2-6 12:04 | 只看该作者
楼上的对单片机要求太高了,对电压精度要求也太高,首先说参考电压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芯片只给出了分辨率,很少会给出精度。
回复

使用道具 举报

51#
ID:491577 发表于 2024-2-6 16:53 | 只看该作者
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时误差是很大的。
回复

使用道具 举报

52#
ID:155507 发表于 2024-2-6 19:02 | 只看该作者
16位的DAC就是用两组8位IO组成16个输出接R-2R输出,由于电阻精度、电源精度和噪声的影响,太高的分辨率没有意义,一般超过12位的意义不大。
回复

使用道具 举报

53#
ID:1088185 发表于 2024-2-6 20:49 | 只看该作者
hhh402 发表于 2022-6-16 00:17
16位DA,5V参考电压,理论精度为5V/65536=76.29uV,使用1%电阻误差是76.29UV*1%=0.7629uV。已经足够小, ...

算错了, 你挑一个电压最低的来算其误差试试, 1%的阻所导致的电压误差是大于1%的, 不信你试试动手算。
回复

使用道具 举报

54#
ID:883242 发表于 2024-2-7 23:12 | 只看该作者
到现在楼主也没拿出什么证据证明精度有多高。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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