找回密码
 立即注册
楼主: 杨为民

关于12位ADC 计算公式是除4096还是除4095的问题讨论

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2026-05-01 00:01:26
已绑定手机

0

主题

45

回帖

459

积分

中级会员

积分
459
发表于 2026-4-21 14:38:17 | 显示全部楼层
最初设计是4096能被2量化的数字量.而4096是进位的点不能被硬件所用,硬件能用的只有4095.如果软件配合硬件当然是4095更好.
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2026-05-01 00:01:26
已绑定手机

0

主题

45

回帖

459

积分

中级会员

积分
459
发表于 2026-4-21 14:42:39 | 显示全部楼层
因为4095人工很难计算....

点评

因为4095人工很难计算.... 你的回答太逗了! 哥们,你确定不是来搞笑的吗! 哥们,你确定STC单片机的ADC公式是给用户用来人工算的吗? 哥们,你确定当STC单片机的ADC采集C语言程序生成HEX代码烧录到STC单片机里面  详情 回复 发表于 2026-4-21 17:40
1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:76
  • 最近打卡:2026-04-30 21:57:39

151

主题

1324

回帖

4902

积分

荣誉版主

积分
4902
发表于 2026-4-21 17:40:32 | 显示全部楼层
yangs*** 发表于 2026-4-21 14:42
因为4095人工很难计算....

因为4095人工很难计算....  你的回答太快乐了!


哥们,你确定不是来搞笑的吗!
哥们,你确定STC单片机的ADC公式是给用户用来进行人工计算的吗?
哥们,你确定当STC单片机的ADC采集C语言程序生成HEX代码烧录到STC单片机里面后,那个4095是“有个人躲在芯片里进行人工计算吗?”

今天涨见识了,兑现承诺,不管你答得是否正确,你的回答值20朵小红花






回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:107
  • 最近打卡:2026-04-30 14:22:38
已绑定手机

4

主题

272

回帖

6183

积分

论坛元老

积分
6183
发表于 2026-4-22 10:36:21 | 显示全部楼层
这个问题,我没有仔细看大家的讨论,简单说下我的猜测,以下都是猜测:
按照“逐次逼近”型ADC的原理,内部估计是有一个DAC和比较器,先让DAC输出VREF*1/2去与待测电压作比较,如果DAC比待测电压低,那么ADC最高位为1,下次DAC输出就增加VREF*1/4再作比较确定次高位,如此循环。
再来考虑1位ADC、2位ADC。
1位ADC,假设参考电压1V,
当输入电压低于VREF*1/2(即0.5V),ADC结果为0,
当输入电压高于VREF*1/2(即0.5V),ADC结果为1。
所以,ADC=0表于电压为(0~0.5V),ADC=1表示电压(0.5~1V,(或许可以更高,暂不考虑超量程));
相当于将参考电压二等分,量化步长为VREF/2;
同理,2位ADC相当于将参考电压四等分,量化步长为VREF/4;
12位ADC相当于将参考电压进行4096等分,量化步长为VREF/4096。
至于计算中采用4095还是4096,看你的需要;如上面1位ADC,你要说ADC=1表示0.5V可以、表示1V也行。
补充一句:
12位ADC,假如参考电压是4096V,那么ADC=4095表示输入电压为4095V~4096V。


点评

“补充一句:12位ADC,假如参考电压是4096V,那么ADC=4095表示输入电压为4095V~4096V” 世界上的事情不是一个人自己说了算,正确与否必须在 人与人 或者 人与物 或者 物与物 之间交流才有定义和意义! (1)比如  详情 回复 发表于 2026-4-22 12:03
“12位ADC相当于将参考电压进行4096等分,量化步长为VREF/4096。” 谁告诉你的“12位ADC相当于将参考电压进行4096等分”?这就是错误的根源! (1)撑开手指头数一数,5个手指头里面有4条缝! (2)1米载一颗树,3  详情 回复 发表于 2026-4-22 11:38
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:76
  • 最近打卡:2026-04-30 21:57:39

151

主题

1324

回帖

4902

积分

荣誉版主

积分
4902
发表于 2026-4-22 11:38:28 | 显示全部楼层
lcws*** 发表于 2026-4-22 10:36
这个问题,我没有仔细看大家的讨论,简单说下我的猜测,以下都是猜测:
按照“逐次逼近”型ADC的原理,内部 ...

“12位ADC相当于将参考电压进行4096等分,量化步长为VREF/4096。”

谁告诉你的“12位ADC相当于将参考电压进行4096等分”?这就是错误的根源!

(1)撑开手指头数一数,5个手指头里面有4条缝!
(2)1米载一颗树,3位二进制的8棵树之间的距离只有7米,只分成了7段。
(3)100米跑道,从起点到终点要均匀地分为100段,起点和终点各种一颗作标记,需要种101棵树,不能只种100颗树。
(4)抬起手看看指针手表,时针从1点走到12点并没有走完一圈,必须再走一个小时到13点才走完一圈,这样每小时才是走360/12=30度!也就是说要13个数字才能把表面分成12段!
(5)如果某个12位的ADC当输入为地线0V时输出的数组是“0”,当输入是参考电压时输出是“4095”,请你算一算,这4096个数值将0V到参考电压之间的电压分成了几份?
(6)我上小学有一根塑料直尺,每厘米标一个数字,从头开始标“0”,请问从数字“0”到数字“7”之间共计有几厘米?
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:107
  • 最近打卡:2026-04-30 14:22:38
已绑定手机

4

主题

272

回帖

6183

积分

论坛元老

积分
6183
发表于 2026-4-22 11:53:33 | 显示全部楼层
杨*** 发表于 2026-4-22 11:38
“12位ADC相当于将参考电压进行4096等分,量化步长为VREF/4096。”

谁告诉你的“12位ADC相当于将参考电 ...


我仍坚持4096等分,ADC值0代表第1份,ADC值4095代表第4096份。
针对问题5,当输入是参考电压时输出是“4095”,
对,但是当输入还没达到参考电压时,ADC值可能已经是4095了,

比如参考电压是4096V,输入电压是4095V时ADC值就可能是4095了,
ADC值4095代表的电压是4095V~4096V,也就是4095*VREF/4096到4096*VREF/4096,也就是第4096份。

其它问题呢可能涉及到边界我也没法把它们与ADC的这个问题相关联,就不说了。

只需大家知道,ADC的值代表的电压是有一个范围的就行。

点评

“比如参考电压是4096V,输入电压是4095V时ADC值就可能是4095了” 这跟公式无关,你这是在质疑厂家的ADC没有真正达到12位的精度!  详情 回复 发表于 2026-4-22 12:06
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:76
  • 最近打卡:2026-04-30 21:57:39

151

主题

1324

回帖

4902

积分

荣誉版主

积分
4902
发表于 2026-4-22 12:03:04 | 显示全部楼层
lcws*** 发表于 2026-4-22 10:36
这个问题,我没有仔细看大家的讨论,简单说下我的猜测,以下都是猜测:
按照“逐次逼近”型ADC的原理,内部 ...

“补充一句:12位ADC,假如参考电压是4096V,那么ADC=4095表示输入电压为4095V~4096V”

世界上的事情不是一个人自己说了算正确与否必须在 人与人 或者 人与物 或者 物与物 之间交流才有定义和意义!

(1)比如,你是工程师,你按照你的这个思路作了一个电子秤,然后你的老板质检局领取质量合格证
(2)质检局拿出一个4096克的砝码放到你的电子秤上,你的秤显示“4095”。然后你跟你的老板和质检局的人解释说,我造的秤如果显示“4095”,那么砝码的重量肯定在4095克~4096克之间,所以我造的电子秤是“合格的”
(3)质检局会发合格证给你吗?
(4)你的老板还会聘你吗?
(5)你自己敢在你造的电子秤说明书上写:如果本产品显示“4095”,那么被秤的重量肯定在4095克~4096克之间这段说明给用户看吗?

()如果商场某个电子秤说明书上写着:如果本产品显示“4095”,那么被秤的重量肯定在4095克~4096克之间这段说明,你敢买吗


回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:76
  • 最近打卡:2026-04-30 21:57:39

151

主题

1324

回帖

4902

积分

荣誉版主

积分
4902
发表于 2026-4-22 12:06:04 | 显示全部楼层
lcws*** 发表于 2026-4-22 11:53
我仍坚持4096等分,ADC值0代表第1份,ADC值4095代表第4096份。
针对问题5,当输入是参考电压时输出是“40 ...

“比如参考电压是4096V,输入电压是4095V时ADC值就可能是4095了”


这跟公式无关,你这是在质疑厂家的ADC没有真正达到12位的精度!
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:107
  • 最近打卡:2026-04-30 14:22:38
已绑定手机

4

主题

272

回帖

6183

积分

论坛元老

积分
6183
发表于 2026-4-22 12:40:29 | 显示全部楼层
杨*** 发表于 2026-4-22 12:03
“补充一句:12位ADC,假如参考电压是4096V,那么ADC=4095表示输入电压为4095V~4096V”

世界上的事情不 ...

说起来可能有点跑题了,让我做电子秤肯定不会这么干啊;

我的想法是:
首先,可以给ADC值加上0.5,位于重量范围的中间,如ADC值为4095,我会在内心显示为4095.5克,表示重量在4095克~4096克,误差就是正负0.5克对吧;
其次,真正显示时加以保留,ADC能分辨1克,但我显示时(或者说明书上描述)只精确到10g,并四舍五入;
ADC值为4095时我显示为“4.10kg”。
并没有质疑“厂家的ADC没有真正达到12位的精度”,可能我的数据让你误会了,重新描述一下:

比如参考电压是4096V,输入电压略高于4095V(如4095.001V)时ADC值就可能是4095了。



回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:708
  • 最近打卡:2026-04-30 11:14:46

9

主题

645

回帖

4566

积分

论坛元老

积分
4566
发表于 2026-4-22 12:40:49 | 显示全部楼层
杨*** 发表于 2026-4-22 12:03
“补充一句:12位ADC,假如参考电压是4096V,那么ADC=4095表示输入电压为4095V~4096V”

世界上的事情不 ...

4096砝码用12位ADC检测出4095,毫无疑问是合格的,分辨率决定了允许误差.
给谁做都是一样结果,想要得到4096结果,必须提高ADC分辨力才能实现,否则就是造假.
再强调一次,ADC采样不是对准一个点的问题,而是一个误差带取舍问题.
仔细看下ADC芯片手册,厂家设计芯片,
参考电压对应的ADC值是多少.满度ADC值对应的电压又是多少,
有没有厂家设计的ADC芯片满度值等于参考电压?


回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-1 10:30 , Processed in 0.126307 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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