百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

单片机ADC通道不够用怎么办?

qiyuwang 2025-03-10 20:03 10 浏览 0 评论

早在几天前,我写了一篇关于单片机IO口扩展的文章,接着有网友和我来讨论关于ADC扩展的问题了,关于这个问题,这篇文章有详细的讨论。


单片机ADC为何要扩展

现在的主流MCU都内置了不止一个多通道的ADC,可以满足我们平时的简单应用,这些简单应用是指应用在一些对模拟量采集速度不高,精度能接受的场合下。但是对于一些高精度,高速度的情况下,外置的专用ADC芯片仍然是我们必须要选择的,哪怕以很高的金钱成本为代价。这些高速,高精度的外置ADC由于某些原因,内部的通道很少,因此如何去尽可能地使用这些宝贵的资源对我们来说确实是一个问题。


需要采集多路高精度低速信号

如果你使用外置ADC的目的仅仅是为了获得一个高精度的采样值,而对采样的速度要求不是很高的话,用继电器进行多路切换那是一个很明智的选择。

比如,当你需要去监控多路温度的时候,由于温度终端采集对象的温度范围不确定,有可能到200多摄氏度,而且被采集温度处的接触面积有限,因此只能选用热电偶传感器做终端的传感器,因为热电偶传感器触电面积小,测温范围广,很适合上述要求。

那此时热电偶冷端的电信号采集就可以使用这种方案来做了,比如安捷伦数据采集器温度采集卡就是使用了上述的原理。

它将很多的测温线全部接入温度采集卡里面,而温度采集卡里面的ADC通道数量有限(一片四路的高精度ADC),而所接入的温度传感器热电偶线却有40根,对于这种应用,它将每根热电偶接入后先做模拟前置处理,然后将处理完成的信号接入到一个继电器上面,示意图如下。

具体工作流程是,先用逻辑选通电路打开第一路继电器,此时CH1的传感器信号经过模拟电路处理完成之后的电压通过继电器的选通就输入到了ADC_Chanel1进行AD转换,转换完成的电压存储下来。紧接这断开第一路继电器,打开第二路继电器,此时CH2的传感器信号经过模拟电路处理完成之后的电压经过第二路继电器输入到了ADC_Chanel1进行AD转换。循环此步骤,直到着10个通道全部循环一遍,第一轮AD采样就全部完成。接着再循环往复第二轮第三轮。因此当你在使用这个温度采集卡的时候,你会发现其内部的继电器"嗒嗒嗒"打开关闭的声音。

这种方式的好处就是当你有一片高精度ADC需要采集多个通道的低速信号的时候很有用,电路结构简单,继电器价格低廉,电路板设计也没有难度。缺点就是由于继电器内部归根到底是机械部件在运动,因此使用寿命有限。


模拟选通开关

在面对一些高速的多路通道模拟电压采集时,以上的继电器方式显然不适用了,因为继电器切换的速度根本就无法满足模拟通道的切换速度。因此我们需要选用一些模拟通道切换速度更快的器件,而这个器件的最好选择就是双电压模拟开关。常用的型号有ADG509,但是这个芯片即将停产,因此取代的型号有ADGS1414D。

ADGS1414D是一颗高速的模拟电压开关,其最大带宽可达150MHz。包含八个独立的单刀单掷开关。这些开关由一个串行外设接口 (SPI) 控制。SPI 具备可靠的错误检测功能,例如循环冗余校验码 (CRC) 错误检测、无效读/写地址检测以及 (SCLK) 计数错误检测。通过菊链模式可将多个 ADGS1414D 套件连接在一起。菊链模式可用最少数量的数字走线实现多套件配置。通过 ADGS1414D 的数字信号和电源路由可进一步提高通道密度。集成的无源组件消除了对外部无源组件的需求。ADGS1414D 适用于高密度开关应用,例如大型开关矩阵和扇出应用。在接通时,各个开关在两个方向上具有同等的传导性能,并且其输入信号范围可扩展至电源电压的水平。在断开状态下,达到电源电压水平的信号电平将被阻止。多功能引脚名称只能供其相关功能引用。

如果仅仅做一些对触发要求不高的多路高速电压信号采集时,只需要用这个芯片替换上述的继电器组即可实现要求。


采样保持器加模拟开关

但是,有一些应用对于多路模拟信号的采集有同时采样的要求,那么上述的两种方案就都无法满足了。

在很多的应用中,对于AD采样的需求是"多路同一时刻采样"。比如在做PMSM控制时的FOC算法,需要同时采集电机的电流电压,再如我做的微波行业,需要同一时刻去采集前向波和反向波检波后的包络信号,这种应用中,对同一时刻这个触发要求是很高的。比如,我们需要采集同一时刻微波的前向波和反向波包络时,其波形图如下所示:

为了应对以上的要求,必须在多路模拟开关之前对每一路信号增加一个采样保持器。采样-保持器(Sample/Hold)是能够完成以下任务的器件,简写为S/H。如果直接将模拟量送入AD转换器进行转换,则应考虑到任何一种AD 转换器都需要用一定的时间来完成量化及编码的操作。在转换过程中,如果模拟量产生变化,将直接影响转换精度。特别是在同步系统中,几个并联的参量需取自同一瞬时,而各参数的AD 转换又共享个芯片,所得到的几个量就不是同一时刻的值,无法进行计算和比较。所以要求输入到A/D 转换器的模拟量在整个转换过程中保持不变,但转换之后,又要求A/D 转换器的输入信号能够跟随模拟量变化。

常用的采样保持器有AD783,它是一款高速单芯片采样保持放大器(SHA),0.01%采集时间典型值为250 ns。其保持模式总谐波失真经过全面测试,输入频率最高达100 kHz。AD783配置为单位增益放大器,并采用已获专利的自校正架构,能够将保持模式误差降至最小,并确保器件整个温度范围内都能提供高精度。该器件独立自主,无需外部器件或调整。

因此,对于同时采样要求比较高的时候,我们可以用下面的多路AD采样。

当采样保持信号到来时,采样保持器SH1的输入信号和SH2的输入信号都会被保持住,然后再去依次选通ADGS1414D的通道1和通道2进行AD转换,依次往复即可。


当然上述的采样保持器的价格非常高,可以抵得上一片AD7606的价格了,使用时候要慎重。

相关推荐

# 安装打开 ubuntu-22.04.3-LTS 报错 解决方案

#安装打开ubuntu-22.04.3-LTS报错解决方案WslRegisterDistributionfailedwitherror:0x800701bcError:0x80070...

利用阿里云镜像在ubuntu上安装Docker

简介:...

如何将Ubuntu Kylin(优麒麟)19.10系统升级到20.04版本

UbuntuKylin系统使用一段时间后,有新的版本发布,如何将现有的UbuntuKylin系统升级到最新版本?可以通过下面的方法进行升级。1.先查看相关的UbuntuKylin系统版本情况。使...

Ubuntu 16.10内部代号确认为Yakkety Yak

在正式宣布Ubuntu16.04LTS(XenialXerus)的当天,Canonical创始人MarkShuttleworth还非常开心的在个人微博上宣布Ubuntu下个版本16.10的内...

如何在win11的wsl上装ubuntu(怎么在windows上安装ubuntu)

在Windows11的WSL(WindowsSubsystemforLinux)上安装Ubuntu非常简单。以下是详细的步骤:---...

Win11学院:如何在Windows 11上使用WSL安装Ubuntu

IT之家2月18日消息,科技媒体pureinfotech昨日(2月17日)发布博文,介绍了3中简便的方法,让你轻松在Windows11系统中,使用WindowsSubs...

如何查看Linux的IP地址(如何查看Linux的ip地址)

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。...

怎么看电脑系统?(怎么看电脑系统配置)

要查看电脑的操作系统信息,可以按照以下步骤操作,根据不同的操作系统选择对应的方法:一、Windows系统通过系统属性查看右键点击桌面上的“此电脑”(或“我的电脑”)图标,选择“属性”。在打开的...

如何查询 Linux 内核版本?这些命令一定要会!

Linux内核是操作系统的核心,负责管理硬件资源、调度进程、处理系统调用等关键任务。不同的内核版本可能支持不同的硬件特性、提供新的功能,或者修复了已知的安全漏洞。以下是查询内核版本的几个常见场景:...

深度剖析:Linux下查看系统版本与CPU架构

在Linux系统管理、维护以及软件部署的过程中,精准掌握系统版本和CPU架构是极为关键的基础操作。这些信息不仅有助于我们深入了解系统特性、判断软件兼容性,还能为后续的软件安装、性能优化提供重要依据。接...

504 错误代码解析与应对策略(504错误咋解决)

在互联网的使用过程中,用户偶尔会遭遇各种错误提示,其中504错误代码是较为常见的一种。504错误并非意味着网站被屏蔽,它实际上是指服务器在规定时间内未能从上游服务器获取响应,专业术语称为“Ga...

猎聘APP和官网崩了?回应:正对部分职位整改,临时域名可登录

10月12日,有网友反映猎聘网无法打开,猎聘APP无法登录。截至10月14日,仍有网友不断向猎聘官方微博下反映该情况,而猎聘官方微博未发布相关情况说明,只是在微博内对反映该情况的用户进行回复,“抱歉,...

域名解析的原理是什么?域名解析的流程是怎样的?

域名解析是网站正常运行的关键因素,因此网站管理者了解域名解析的原理和流程对于做好域名管理、解决常见解析问题,保障网站的正常运转十分必要。那么域名解析的原理是什么?域名解析的流程是怎样的?接下来,中科三...

Linux无法解析域名的解决办法(linux 不能解析域名)

如果由于误操作,删除了系统原有的dhcp相关设置就无法正常解析域名。  此时,需要手动修改配置文件:  /etc/resolv.conf  将域名解析服务器手动添加到配置文件中  该文件是DNS域名解...

域名劫持是什么?(域名劫持是什么)

域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。说的直白些,域名劫持,就是把互...

取消回复欢迎 发表评论: