硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1078|回复: 6
收起左侧

[技术讨论] 12bit DAC输出公式疑问,4096?4095?

[复制链接]

22

主题

40

回帖

106

积分

初级会员

积分
106
发表于 2025-1-10 13:30:57 | 显示全部楼层 |阅读模式
本帖最后由 eoorosy 于 2025-1-10 14:11 编辑

MCU的DAC输出公式都是Vout = Vref * code / 4096,
包括一些DAC芯片也是,但是写入的数据范围是0 ~ 4095,就是说DAC的输出永远小于Vref吗?
还是我哪里理解的不对,求解惑。

如果说是0 ~ 4095是4096份,那这个公式又怎么解释。

PixPin_2025-01-10_14-11-16.png
回复

使用道具 举报

6

主题

268

回帖

286

积分

高级会员

积分
286
发表于 2025-1-10 16:09:58 | 显示全部楼层
一般用4096,主要是好计算,当然正确的做法是用4095,一般无所谓吧,反正不管啥误差都肯定超过这个1/4096了
回复

使用道具 举报

10

主题

34

回帖

64

积分

初级会员

积分
64
发表于 2025-1-10 16:29:34 | 显示全部楼层
所以要尽量采用高精度的DAC或者ADC,原理上来说,他采用的是类型天平砝码的一种方法,比如说你采用的是2位ADC,就有00,01,10,11四种状态,假设电压为4V,4/4=1V,一格的分辨率就是1V,假设你的电压为0.5,那他就是输出00,代表你电压在0-1范围内,假如你的电压是2.5V,他的输出就是10,代表你的电压是2-3V之间,假如你输出11,代表你的电压在3-4V之间,他表示的是一个范围,不是一个准确的值,当然,精度越高,你的这个区间范围就越小,越接近理想状态,但是,他也始终不是精确的。我个人只用过ADC,没用过DAC,以上是我的个人理解,如果有误,欢迎指正。
回复

使用道具 举报

10

主题

34

回帖

64

积分

初级会员

积分
64
发表于 2025-1-10 16:38:47 | 显示全部楼层
网上搜了一下,有位大佬说的比我好,还做了实测,可以参考一下,https://www.stcaimcu.com/forum.p ... amp;page=1#pid16598
回复

使用道具 举报

5

主题

244

回帖

259

积分

高级会员

积分
259
发表于 2025-1-10 17:58:59 | 显示全部楼层
忘记在哪看到的了,好像是为了保证dac在整个输出范围内的精度差不多一样,还有就是dac内部电路会有各种误差,很难保证每个ic的最大输出电压都刚好等于vref
不确定是不是这么个说法,仅供参考哈
回复

使用道具 举报

0

主题

82

回帖

82

积分

初级会员

积分
82
发表于 2025-1-10 21:08:16 | 显示全部楼层
本帖最后由 cowen 于 2025-1-10 21:09 编辑

我用/4096,对于M0这种没有除法指令的MCU来说/4096比/4095快很多
还有1/4096的误差完全可以接受
回复

使用道具 举报

22

主题

40

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2025-1-11 19:07:37 | 显示全部楼层
麦克斯韦Maxwell 发表于 2025-1-10 16:29
所以要尽量采用高精度的DAC或者ADC,原理上来说,他采用的是类型天平砝码的一种方法,比如说你采用的是2位A ...

这样就有点明白了,谢谢大佬
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 04:51 , Processed in 0.291786 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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