最近发生了多起电子表退货的事件,拿回来之后发现是电池没电了,从购买日期算起,已经多数使用超过一年了,符合产品标准。但是由于当初硬件同学定下的最低电压数值太低了,导致在没有达到这个电压的时候就带不动了。这里调整电压后,领导让整理一下ad相关的知识,做个ppt。我这个做软件的电路文盲,为了整理这些东西,查询了数十篇网上的教程,然后翻阅了包括电子表、体温计和智能日历的PCB原理图以及对应平台的datasheet,前后请教了包括我牛逼上天的亲哥、我们牛逼上天的硬件总监以及Nordic的工程师好友。搞出来之后,成就感满满~ 后边发给硬件总监请他指正,这位大爷看完后一脸平静的看着我说,这个都是很基础的东西...好吧,我怎么没有学点电子物理呢阿西吧继续努力吧...好在我这个也不是拿来指导硬件的同学们的,主要还是给我自己以及软件开发参考用。

ADC是什么?

  • ADC将模拟信号转变为数字信号的电子元件,通常是将一个输入电压信号转换为一个输出的数字信号。
  • 模拟信号:某一个区间内连续的物理信号,比如电压会每时每刻都存在且不停的变化;
  • 数字信号:某一个区间内有限个数的抽象数值记录,比如每隔1秒钟一个电压数值;

采样率和分辨率

  • 采样:在模拟信号上间隔某个固定的时间采集瞬时值,得到一系列的离散值。采样越密集,得到的离散数据集越贴近实际信号。采样率表示采样的频率;
  • 分辨率:输入电压对应分辨率的位数,分辨率=测量电压范围/(2^resolution-1)。 比如逐次逼近型的ADC,8位分辨率下,能够将刻度逐次等分8次,每次将精确度提高一倍。假设最大输入电压为3.3V,那么能够分辨的最小电压变化为3.3V/255= 12.94mV.

采样方式

  • 单通道:单个端口采集对GND的电压,受到输入电压的干扰,如果输入电压波动很剧烈,误差会很大(蜂鸟Pro等);
  • 差分方式:使用两个端口采集,可以一定程度上排除干扰(需要电路上做支持);

采样原理

  • ADC有多种不同的设计原理和构造方式,一般嵌入式芯片集成的都是逐次逼近型ADC。
  • 逐次逼近:类似于软件上的二分,通过N个并联的比较电路逐次比较大小,来确定输入电压的范围,每次将数值范围在当前分辨率内减小二分之一,比较电路的数量决定了分辨率(2^N-1)。

基础电路知识

  • 分压:
  • 通过串联电阻进行分压,串联的电阻分得的电压和阻值成正比。
  • 通过串联电容进行分压,串联的电容分得的电压和容值成反比;
  • 不论是电阻还是电容,接通的时候都会导致整个电路电流增大,从而出现压降;

选择合适的参数

  • 判断是否存在差分电路,如没有则是单端采集模式;
  • 判断ADC采集端口的输入范围,比如3.3V;
  • 基于参考电压的增益:比如DA14585内部基准是1.2V,则需要至少3倍增益才能达到3.3V以上的量程;

理解电路逻辑:产品A

v_BAT=(1M+220K)/220K*v_AD

理解电路逻辑:产品B

v_BAT=vref_adc_value∗3000/4095;

v_BAT =v_BAT*2;

理解电路逻辑:产品C

R_NTC=adc_ntc∗R_REF/(2∗adc_30k-adc_ntc);

结合实际需求:产品D

  • 超低功耗,长时间持续运行
  • 电压一定的时间内变化较小,每隔5分钟测量一次,并取6次的均值;

结合实际需求:产品C

  • 高精度
  • 采集:每隔100ms执行一次测量,每次测量重复64次;
  • 过滤:数据排序后,抛掉前后各30个,取4个中位数的均值,得到这次采集的结果;
  • 去抖动:每秒钟会得到10个处理过后的数值,经过平均后显示到屏幕上(相当于每秒钟执行了6400*2次才得到一个数值);
  • 进一步提高精度的思考
  • 修改电路,同步修改算法,将单端采集改为差分的模式,NTC一路,30K一路。由于差分是直接计算P、N端口的压差的,会直接消除电压波动带来的误差;

低电量阈值设定方法 (硬件同学贡献)

  • 列出电路中各个元器件的最低工作电压,和最大工作电流。保证最大工作电流的情况下,电池电压不能低于元器件的最低工作电压
  • 电子表:以2.3V作为设备的最低截至电压,5mA作为电池放电电流。
  • eink屏幕-2.3V            <1mA
  • 蓝牙-2.0V                     5mA
  • FLASH-1.8V                  5mA
  • MCU ADC测量               1mA
  • 将放电曲线根据放电时间,分成10等份,每一份代表10%的电量
  • 将一颗新电池依次放电到100%、90%、80%....  10%, 使用MCU的ADC测量不同阶段时的电压,作为不同电量阶段的电压阈值

附:逐次逼近型ADC内部工作原理

来源:知乎用户 yinweitaiaini ,文章标题:ADC原理简述。原始地址:https://zhuanlan.zhihu.com/p/67245022

ADC的相关知识整理相关推荐

  1. Redis面试题相关知识整理

    Redis面试题相关知识整理 1.Redis的应用场景 2.Redis的特点 3.Redis对各种数据类型的操作 4.Redis的持久化机制 5.Redis的缓存穿透/缓存击穿/缓存雪崩问题 6.Re ...

  2. 【转】医学影像处理相关知识整理(一)

    转自:医学影像处理相关知识整理(一) - 知乎 Segmentation to RT structure 近日做医疗影像处理相关的内容,感慨于这方面资料不全.散碎,遂记录自己获得的一些资料以供日后查阅 ...

  3. keil C对lib封装库反汇编成C语言,Keil软件“C语言”及“汇编”混编 —— 相关知识整理.doc...

    Keil软件"C语言"与"汇编"混编 相关知识整理 用Keil在C中嵌入汇编1 在Keil中嵌入汇编2 介绍直接嵌入汇编代码的方法4 采用汇编可能会有的好处5 ...

  4. MySQL索引相关知识整理学习

    MySQL索引相关知识整理学习 前言 一.MySQL索引 哈希索引 B+树索引 B+树的优点 聚簇索引 非聚簇索引 聚簇索引和非聚簇索引的特点及区别: 二.特殊类型的索引 1.覆盖索引 2.联合索引 ...

  5. keil c语言pdf,Keil软件“C语言”与“汇编”混编 —— 相关知识整理.pdf

    Keil软件"C语言"与"汇编"混编 -- 相关知识整理.pdf Keil 软件软件C 语言语言与与汇编汇编混编混编 相关知识整理相关知识整理 用 Keil 在 ...

  6. android 最全 图片相关知识整理

    android 最全 图片相关知识整理 图片基础知识梳理 图片基础知识梳理(1) - ImageView 的 ScaleType 属性解析 图片基础知识梳理(2) - Bitmap 占用内存分析 图片 ...

  7. BAPI相关知识整理

    BAPI知识整理 BAPI业务程序接口(Business Application Programming Interface,简称BAPI)是面向对象程序设计方法中的一组程序接口,它允许程序员通过SA ...

  8. bazel 链接第三方动态库_C/C++编程知识:Linux 动态库相关知识整理

    动态库和静态库在C/C++开发中很常见,相比静态库直接被编译到可执行程序,动态库运行时加载使得可执行程序的体积更小,更新动态库可以不用重新编译可执行程序等诸多好处.作者是一个Linux后台开发,这些知 ...

  9. 贝叶斯网络(belief network)及相关知识整理

    贝叶斯网络(belief network)及相关知识 频率派:认为theta是个固定的未知常数.认为样本是随机的,重点研究样本分布 贝叶斯派:认为theta是不确定的未知数.认为样本是固定的,重点研究 ...

最新文章

  1. 秦州:西瓜书 + 南瓜书 吃瓜系列 10. 集成学习(下)
  2. oracle的一知半解
  3. 链表一元多项式计算器的实现(Java语言描述)
  4. UA MATH571B 试验设计III 单因素试验设计3
  5. Mybatis一级缓存,二级缓存的实现就是这么简单
  6. 监测利器cacti服务安装
  7. Python time 模块 - Python零基础入门教程
  8. dell笔记本c语言系统,戴尔dell笔记本电脑U盘重装系统win7教程图解
  9. KNN(七)--最近邻及OpenCV源码分析
  10. tomcat之组成结构
  11. 大数据处理的五大关键技术及其应用
  12. LeetCode剑指offer题目分类汇总及题解
  13. Android Device Moniter部分问题的解决办法:
  14. java pdf 富文本_富文本编辑器保存的html内容使用itextpdf转PDF文件(css提取,内容重叠)问题解决...
  15. 北航计算机学院院长 孙,孙磊磊-北京航空航天大学计算机学院
  16. java布道师_我和 Spring 技术布道师的一天
  17. 使用 @Resource或@Autowire时 Idea报错Could not autowire. No beans of 'xxxService' type found. more..出现红色波浪线
  18. agv调度matlab程序,4款agv调度控制系统应用软件
  19. 神经网络入门(个人理解)
  20. 用dd命令克隆ubuntu系统

热门文章

  1. OSPF 和 ISIS对比
  2. UIImagePickerController 视频录制操作,视频大小,时间长度
  3. 计算机科学与技术为什么叫cs,cs是什么专业的简称
  4. loadrunner测试论坛
  5. 基于autojs7的番茄免费小说辅助
  6. php写接口curd,接口实战(数据库的CURD操作)
  7. NLP中的文本分析和特征工程
  8. (抄送列表,年会抽奖)笔试强训
  9. cad图纸导入ai尺寸变了_AI公司导入欧洲个人数据变得更加困难
  10. 小飞鱼通达二开 企业微信与通达OA的另一种集成方式(图文)