在MCU系统中如何利用ADC技术进行数据采集
使用MCU的系统设计人员受益于摩尔定律,即通过更小封装、更低成本获得更多的丰富特性功能。嵌入式系统设计人员和MCU厂商关心数据采集系统的三个基本功能:捕获、计算和通信。理解全部功能对设计大有帮助,本文将主要关注数据采集系统的捕获阶段。
捕获
复杂的混合信号MCU必须能够从模拟世界中捕获某些有用信息,并且能够把连续时间信号转换成离散的数字形式。模数转换器(ADC)是完成这项任务最重要的MCU外设,因此 ADC的性能往往决定何种MCU适用于何种应用。 MCU也能够通过各种串行或并行数字I/O 接口捕获来自外部信号源的数字形式的系统信息。
计算
信号捕获后,需要对捕获数据进行某些处理;有时仅仅需要模数转换,但是更多情况下必须要对捕获的数据样本进行计算。MCU行业中持续进行的数字化演变,带给系统开发人员更先进的信号处理水平和更高的处理器速度。因此,嵌入式开发人员现在对8位、 16位和32位混合信号MCU有更多的选择余地,以便适应各种成本/性能目标。开发人员也有更多片上选择(on-chip options)可用于完成系统任务。此外,MCU的硬宏(hard-macro)能自动处理,在外设中集成的功能状态机可完成常见的处理器任务。
通信
最后, 为了控制过程中的信息交换,某种形式的通信是必要的。此功能可以相当简单,也可以相当复杂。通信甚至可以是模拟输出的电压或电流,通常使用数模转换器(DAC)把捕获和处理的数据转换到模拟形式来实现。 基于多功能MCU的数据采集系统 MCU数据采集系统的关键是ADC。 在电子行业中最常见的ADC类型一般是逐次逼近型 ADC(SAR ADC)。 许多MCU使用SAR ADC是因为它在速度和性能组合上的灵活性。在 MCU中,SAR ADC的精确度可以从8位到16位,吞吐速率范围可以从极慢的按需转换请求到每秒超过100万次转换。但是ADC仅仅是完整数据采集系统中的一部分。数据采集系统的其他部分也可增加其灵活性,包括信号输入接口、参考电压接口、用于ADC的时钟和采样系统以及用于转换后ADC输出数据的数据管理。
通常情况下,模拟信号输入接口共享一个通用输入输出(I/O)缓冲器结构体,此结构体可配置为数字域或模拟域,或者也可以由两个域共用。多配置性实现方法允许设计人员根据其系统需求在多个芯片引脚上划分模拟和数字功能。作为输入多路复用器的一部分,最常见的辅助输入之一是片上的温度传感器;其他的重要输入包括内部电压。一旦系统的输入通道配置完成,嵌入式设计人员就可以利用程序代码选择任意通道,并请求ADC转换。设计人员也可以选择免除程序代码,而允许ADC通道定序器根据预先设定的通道输入进行循环,直到检测出重要事件。
数据采集
系统的另一个重要方面是ADC参考电压(VREF)。 参考电压用来设置系统的输入动态范围或量程,并能显著影响整体噪声性能。多路转换器通常用于从多种板上和外部参考电压输
入中选择VREF。常用的参考电压包括MCU内部生成的缓冲带隙电压的倍频电压、片外生成的精确参考电压以及多种外部电源电压,以上可选参考电压都兼容I/O缓冲器结构体和ADC限制。如此多的输入通道,使人们很容易想象到,在某些系统中一个或多个引脚的输入动态范围可能不兼容单一VREF电压。为了解决这个问题, SILICON LABS Precision32 MCU集成输入级联增益,根据ADC型号不同可能有0.5或1 倍的增益, 这样通过调整输入信号可更好的兼容选择VREF。
ADC转换循环
ADC的时钟系统要易于配置,以便支持MCU应用的多种用途。SAR ADC属于奈奎斯特率转换器,系统设计人员要仔细选择以满足采样率至少两倍于输入信号带宽的奈奎斯特准则。当配置ADC时,开发人员还必须考虑两个计时任务。这两个任务涉及ADC转换循环和MCU系统内的可用时钟源。转换循环有两部分组成:一个是跟踪周期,一个是转换周期,如图1 所示。
图1: ADC转换循环
跟踪周期是转换循环中当ADC输入电路连接到输入信号时所花费的那部分时间。输入采样发生在跟踪周期结束并且输入电路从输入源断开时。这一刻是由连接到ADC的数字控制信号引起的,称为转换启动(CNVST)。该命名恰如其分,CNVST标志着跟踪周期的结束和转换周期的开始。
转换周期是ADC执行逐次逼近寄存器(SAR)逻辑时的那部分ADC转换循环。ADC用于跟 踪输入信号的时间量与ADC的输入负载特性、信号源的驱动能力和测量所需的精度要求相关。 MCU器件规格手册列出ADC输入模型,给出ADC输入的输入电容、电阻和漏电流值。为了精确测量,开发人员应当为输入信号稳定保留足够的跟踪时间,最好超过0.5 LSB。
虽然转换周期通常是一个与SAR ADC时钟周期有关的可配置时间量,即对于每一位的判别时间,但他最好是采用CNVST请求之间的时间量描述跟踪时间,而不是SAR转换周期。简单的说,如果ADC没有处于转换状态,那他就处于跟踪状态。转换请求之间的过长时间会导致更多的跟踪时间。为了解决这个问题, Silicon Labs MCU系列产品提供在转换请求之间关闭跟踪电路的功能,从而可降低系统功耗。
ADC转换吞吐速率是转换请求的频率,通常命名为符号Fs。最大吞吐速率的设定通常由 ADC的最小跟踪时间以及最小转换时间限定。恒定的吞吐速率是通过发送同样时间间隔的转换请求流来实现的。对于管理两个关键的计时任务来说,可配置的ADC时钟系统是必不可少的。
计时任务之一是生成用于转换周期期间的时钟,用于执行SAR算法。与转换周期相关的 SAR时钟(SARCLK)通常来自 MCU系统时钟。 SARCLK的可配性需要适应MCU系统时钟,时钟频率范围从不到1MHz到超过100MHz。由于ADC内部的比较器设计,将产生SAR转换逻辑被定时的最大速率。系统设计人员必须小心配置SARCLK频率,避免超过其最大时钟速率规格。另一个计时任务是生成转换请求采样速率,其不能超过给定适当转换周期配置的ADC转换器的最大吞吐速率。
孔径抖动和延迟
转换启动请求信号可以看作是采样时钟,因此它决定ADC采样和保持电路实际捕获输入信号的时间点。当配置ADC转换请求时基时,需要考虑与采样和保持电路相关的规格,即孔径抖动和孔径延迟。这两个规格影响输入信号采样的精确度,因为输入信号相对于孔径时间延迟在不断快速变化,如图2所示。
图2:孔径抖动和延迟
孔径抖动在生成转换启动信号的时钟系统和其他电路中将导致误差(即时钟抖动),同时孔径延迟导致转换启动信号和采样开关之间电路延迟。孔径抖动在数据采集系统中会引入噪声和失真。孔径延迟可以由MCU设计人员内部管理,使其最小化,以避免由于长延迟而增加更多抖动的风险。孔径延迟在数据采集系统中引起延迟误差。太长的孔径延迟类似于水池在“水池满”信号发出之前就开始溢出。
由于上述原因,需要精确的时基用于产生稳定的转换启动请求时序。MCU提供一系列板 上时钟或外部时钟源作为系统时钟选择。系统设计人员必须仔细选择具有足够精度的时钟源,以满足其数据采集系统的需求。对于高速输入源,需要非常精确的晶体振荡器。另一方面,直流(DC)或慢速输入可以更好地容忍时钟系统错误,但仍然需要在转换之间保留足够的稳定时间。
突发模式特性
Silicon Labs MCU系列产品中两个特别有用的特性是突发模式和标记跟踪模式。突发模式根据可编程的连续ADC转换数量生成累积的或平均结果,所有触发来自一个转换请求。标记跟踪模式通过改变转换启动请求操作来分担MCU系统所需的跟踪时间管理。通常,转换启动标记在跟踪周期终点和转换周期起点。但在标记跟踪模式中,转换启动请求却在跟踪周期起点触发,然后持续一段时间,此时长为基于预配置的SARADC时钟周期的可编程时长,最后才开始转换。带有标记跟踪的触发模式可为低频运行的MCU在单MCU时钟循环中获得累积的ADC结果,因此减少系统循环数和降低功耗,如图3所示。
图3: ADC突发模式,在单个系统时钟循环下实现4个数据累加
ADC数据窗口
Silicon Labs 8位和32位混合信号MCU具有ADC输出数据窗口比较器。ADC输出数据与可编程的高低限制进行比较,并可为ADC输出数据在设定的门限值内、外、高或低自动生成可编程中断。使用数据窗口比较器,设计人员能够配置ADC来自动检查“水池满”液面监测器输入,直到数据窗口比较器发出一个中断信号给MCU程序为止。当触发中断时,MCU可以中断当前执行的任务并切换到严密控制水池系统的任务中。
看到这里您是否又有项目灵感需实现,点击下面开发软件帮你忙。
Silicon Labs Simplicity Studio平台开发工具
Silicon Labs 集成开发环境工具
Silicon Labs 配置向导2开发工具
Silicon Labs FLASH编程开发工具
Silicon Labs 8位MCU Keil PK51 开发工具
Silicon Labs ToolStick 开发工具
Silicon Labs μVision 调试驱动程序开发工具
Silicon Labs 生产编程器开发工具
Silicon Labs .HEX转化.SVF开发工具
Silicon Labs USB复位实用程序开发工具
- |
- +1 赞 0
- 收藏
- 评论 1
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
8位混合信号单片机能够降低汽车电子设计的成本和复杂度
芯科科技提供的是C8051F58x单片机提供了高精度的振荡器,高精准的电压参考器,5V整流模块等相当多的片上外设,这些让混合信号单片机在汽车电子系统设计中的应用系统的设计难度降低了,并减少了元器件的数量和印制板的尺寸。
EFM32应用方案之GPS追踪器
EFM32是由Silicon labs公司采用ARM Cortex-M0+\M3\M4内核设计而来的高性能低功耗32位微控制器。它具有突出的低功耗特性,适用领域广。
Silicon Labs(芯科科技) 8 bit 集成开发环境 (IDE)
描述- Silicon Labs(芯科科技) 集成开发环境 (IDE) 是一个完整独立的软件程序,其包含项目管理器、源代码编辑器、源代码级调试器和其他实用工具。第三方开发工具链的 IDE 接口,可为系统设计者提供完整的嵌入式软件开发环境。IDE 支持全部的 8 位微控制器 (MCU) 组合。
世界上最节能的微控制器EFM32之十大低功耗奥秘
Silicon Labs EFM32 32 位微控制器系列是世界上最为节能的微控制器,特别适用于低功耗和能源敏感型应用,包括能源、水表和燃气表、楼宇自动化、警报及安防和便携式医疗/健身器材。本文着重强调10个Silicon Labs32位MCU功耗低的因素。
雅特力携工业控制、电机控制、消费电子、智能家居及汽车电子等领域近百款产品与方案亮相ELEXCON 2022
雅特力作为32位微控制器的创新领导者,携工业控制、电机控制、消费电子、智能家居及汽车电子等五大领域近百款产品与方案亮相此次展会,全面展示了雅特力最新技术与成果,吸引了众多电子行业人士参观交流!
C8051F120和AT45DB系列的存储芯片写数据,编译器在单步执行的时候MCU可以读到数据,但是程序运行的时读不到数据,这是为什么?
分析流程:1、MCU通过SPI写数据到1区的SRAM时,有SCK的信号确认,保证数据正常写入SRAM;2、AT45DB系列SRAM到主存写入,是通过开始地址和指令来执行,带擦除的话,先还擦除页面后再写入数据;3、AT45DB系列主存到2区SRAM,也是是通过开始地址和指令来执行,此时如果步骤2写入主存指令还没有执行完成,那么此时写入指令是无效的;4、如果步骤3指令没有执行成功,此时读到数据也是不正确的。由流程可以分析出来:如果主存区忙碌的话,再去对主存区域进行操作,读出的数据无效,所以在写入主存区域,先判断是否忙碌,可读取寄存器地址为57H的状态寄存器,判断第7bit的“RDY/BUSY”位,或者延时一段时间在去操作主存区。
【产品】16位微处理器S1C17M33、SICI17W3X,睡眠电流分别低至0.2uA、0.15uA
EPSON推出的微处理器S1C17M33、SICI17W34/SICI17W35/SICI17W36都属于低电压、低电流微处理器,可大幅延长产品电池寿命,它们嵌入式电路部分可帮助客户降低总产品数量、节省板子空间和减少软件开发时间,也均可驱动LCD显示模式,可广泛应用于通信设备、工业电子、汽车电子及消费电子领域。
使用EFM8BB1系列MCU时,怎样关闭看门狗定时器?
关闭看门狗定时器,需要向WDTCN寄存器写入0xDE后再写入0xAD将禁止WDT。写0xDE和写0xAD必须发生在4个时钟周期之内,否则禁止操作将被忽略。在这个过程期间,应禁止中断,以避免两次写操作之间有延时。
【经验】可编程晶体振荡器增加寄存器校验的重要性
本文介绍了Si514可编程晶体振荡器配合某DSP使用时,出现远远超过默认频率的输出的解决方法。
C8051系列MCU用外部振荡器作为时钟源,在软件中该如何配置这些外部振荡器引脚?
对于具有专用振荡器引脚的 MCU (如 C8051F12x系列),这些引脚将自动配置为所选的外部振荡模式。 对于那些外部振荡器引脚与GPIO引脚复用的器件(如C8051F30x),这些与外部振荡器相关的GPIO引脚必须按照下面描述配置: 1. 对于一个外部晶体振荡器,XTAL1和XTAL2两个引脚必须配置为模拟输入。 2. 对于“RC”模式或“C”模式,XTAL2 或 EXTCLK引脚必须配置为模拟输入。 3. 对于CMOS时钟模式,XTAL2或EXTCLK引脚必须配置为数字输入。 对于振荡器引脚与GPIO复用的器件,任何时候使用外部振荡器,相关的Crossbar必须配置跳过这些被振荡器电路使用的引脚,以避免任何与Crossbar外设之间的 冲突。
【产品】10MHz~810MHz输出频率的低抖动晶体振荡器Si591,非常适用于对成本敏感的消费性电子应用
Si591晶体振荡器采用Silicon Labs先进的DSPLL电路,在高频条件下,给时钟提供了更低的抖动性能,它可根据用户不同的规格要求进行出厂配置,包括频率,电源电压,输出模式,以及稳定性。
【成功案例】基于 C8051F340微控制器的RS485&CAN总线远传系统
本文设计了一套远程数据采集传输系统,多节点布置传感器,数据传输通过RS485 或CAN总线,上位机通信通过RS232接口交互。传感器节点采用Silicon Labs C8051F340控制器,采集、分析传感数据进行存储或者在线传输,数据传输距离小于1000米,根据需求确定传输波特率(距离较大应当适当降低速率)。选取合适的RS485收发器,在MCU与485收发器之间增加隔离光耦,可以显著提升
使用KEIL C51开发环境,仿真调试正常,手动切换内部默认20MHz时钟到24.5MHz时钟后,调试仿真MCU和开发环境卡死,仿真器USB接口不断尝试连接不成功,是不是仿真器的问题?应该如何解决?
在KEIL C51环境和Eclipse环境下操作时钟切换要特别小心,一定要先确认切换到的时钟已经正常振荡,否则一旦切换到没有起振的时钟源,将导致开发环境和目标板卡死的现象,这并非仿真器的问题。解决办法:重新启动开发环境软件或者计算机,连接仿真器和目标板,检查程序是否先打开了24.5MHz的内部高速振荡器,循环判断等待振荡标志位生效,然后再切换主时钟到内部高速24.5MHz时钟源上。
电子商城
现货市场
服务
提供CE测试服务,通过晶体回路匹配分析,给出测试报告。支持EPSON所有MHz无源晶体、32.768KHz晶体。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳/上海 提交需求>
测试范围:扬兴晶振全系列晶体,通过对晶体回路匹配分析,调整频率、驱动功率和起振能力,解决频偏、不起振、干扰、频率错误等问题。技术专家免费分析,测完如有问题,会进一步晶振烧录/修改电路。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论