STM8学习笔记---ADC多通道采样遇到问题及解决方法

发布者:Lihua1314520最新更新时间:2021-11-01 来源: eefocus关键字:STM8  ADC  多通道采样 手机看文章 扫描二维码
随时随地手机看文章

在ADC多通道采样时遇到了一个问题,费了半天劲才找到原因。在此将分析过程记录下来。

这是STM8S003单片机5个通道ADC采样程序,在主函数中依次读取各个通道的ADC采样值。首先单独测试一下每个通道的值。

每个通道单独测试采样值 ch2 = 623, ch3 = 0,ch4 = 2,ch5 = 1023, ch6 = 408。


下面开始多通道采样,ch2和ch3同时采样。

采样结果正常。


ch2、ch3、ch4同时采样。

采样结果正常。


ch2、ch3、ch4、ch5同时采样。

采样结果不正常,和上面的采样结果比较,好像采样值被整体下移了一位。


在试试所有通道同时采样

采样的值还是不正常,感觉采样值互相错位了。


3个通道同时采样时采样结果都是正常的,但是4个通道和5个通道同时采样时,采样结果就不正常。采样结果整体被移动了一个通道。


就是这个采样结果偏差的问题,折腾了好久,后来查阅ADC采样原理资料后,感觉是ADC内部电路的原因。


先看一个ADC专用采样芯片内部电路。

当发送通道地址后,ADC会紧跟着输出一个转换结果,但是这个转换结果不是当前设置通道的值,而是上一个通道的值。当前通道的值在下一次设置通道地址的时候才会输出,也就是说通道设置和采样结果输出,要延迟一拍。那程序中刚才出现的采样结果好像错位了一个通道,是不是也是这个原因引起的?


将程序修改为,每个通道采样两次,取第二次的值。将切换通道后的第一次采样值丢掉。

程序修改后采样的值,好像正确了,每个通道的值都可以对应上。也就是说ADC通道切换后,第一次采样值是上一个通道的值,如果需要采样当前通道值,就需要继续采样一次。


也就是说STM8S003单片机,在多通道采样时,采样通道小于等于3个以内时,通道切换中采样值不会延迟。当同时采样通道大于3个时,通道切换中采样值会有延迟,需要将第一次采样到的值扔掉,第二次采样的值才可以使用。

关键字:STM8  ADC  多通道采样 引用地址:STM8学习笔记---ADC多通道采样遇到问题及解决方法

上一篇:STM系列单片机中文参考手册下载方法
下一篇:STM8学习笔记---PWM互补波形输出

推荐阅读最新更新时间:2024-11-12 22:23

STM8 模拟/数字转换器(ADC) 转换模式
STM8模拟/数字转换器(ADC)转换模式 ADC支持5种转换模式:单次模式,连续模式,带缓存的连续模式,单次扫描模式,连续扫描模式。 单次模式 在STM8的ADC单次转换模式中,ADC仅在由ADC_CSR寄存器的CH 选定的通道上完成一次转换。该模式是在当CONT位为0时通过置位ADC_CR1寄存器的ADON位来启动的。 一旦转换完成,转换后的数据存储在ADC_DR寄存器中,EOC(转换结束)标志被置位,如果EOCIE被置位将产生一个中断。 连续和带缓存的连续模式 续转ADC在完成一次转换后就立刻开始下一次的转换。当CONT位被置位时即在连换模式中,将ADC设为连续模式,该模式是通过置位ADC_CR1寄存器的ADON
[单片机]
低功耗 ADC
在 ADC 领域,市场需求可以总结为为数很少的几个重要要求:最低功耗、最低噪声、最低失真、最高分辨率、串行接口、更高的通道集成度和更宽的带宽。低功耗不仅在基站等始终保持接通的系统中很重要,在空气流动有限或根本没有空气流动、以及排列紧密的机箱中也很重要,对便携式应用当然也重要。打盹和停机模式可以进一步降低功耗。在某些点上,降低 ADC 的功耗导致收益递减,在这些地方,ADC 驱动器比 ADC 本身消耗的功率还大。凌力尔特公司已经开发了新的方法,可用来降低整个信号链路的功耗。例如,延长 SAR ADC 的采样时间,就可以使用稳定速度慢得多但功耗更低的驱动器。另一种仅在凌力尔特 SAR ADC 中使用的方法是数字增益压缩 (DGC),这
[电源管理]
多通道ADC使工业4.0的机器状态监测成为可能
Teledyne e2v的多功能产品EV10AQ190A已被证明是评估视频图像系统运行状况的数据采集卡的关键器件。 “使用单个ADC产品实现多种配置的能力是无价的。” 施达科先生, Teledyne e2v. 工厂需要有效的方法和流程保证设备不会由于关键器件的失效或老化引起性能下降或发生故障,以减降低停工的风险。这样,工厂可以保持产能最大化,产品质量也得到了保证。过去,人们通常采用所谓的保养制度,定期检查设备,成本高而且耗时长。 如今我们步入了工业4.0/IoT时代,关键的运行数据更容易被获取,也出现了能更有效评估复杂系统健康状况的的方法。机器状态监测(MCM)的出现为工业生产/制造的公司提供了极大的便利,它可实时提
[物联网]
<font color='red'>多通道</font><font color='red'>ADC</font>使工业4.0的机器状态监测成为可能
关于STM8的时钟源配置
关于STM8的时钟源配置 STM8的主时钟是由内部时钟分频后得到或者直接是外部晶振产生(或外部直接输入)的时钟。 CPU时钟分频器分频主时钟后供CPU使用 外设(如定时器,UART)使用的不是CPU相同的时钟,而是主时钟,当然、当CPU分频器分频因子是1时CPU时钟和外设输入的时钟频率是相等的。 STM8复位时默认使用内部高速RC时钟,如果需要切换到外部晶振,那就需要用软件实现切换,这一点与AVR不同,AVR的时钟源选择是通过熔丝位的,在程序中是无法切换的,其优点是配置简单,无需固件切换,但误配置熔丝位会锁死芯片,而STM8的软件配置方式有效的避免了时钟源选择导致的锁芯片现象。 下面是切换时钟源到外部晶振的配置代码供参考:
[单片机]
STM8 存储器组织结构
STM8S的EEPROM以32位字长(每字4字节)为基础组织起来。根据不同的器件,存储器组织机 构有所不同: 小容量STM8S器件 8K FLASH程序存储器,每页 64字节,共 128页 640字节数据 EEPROM,每页 64字节,共 10页。数据 EEPROM包括一页的选项字节(64字节)。 中容量STM8S器件 从 16K到 32K FLASH程序存储器,每页 512字节,最多 64页 1K字节数据EEPROM,每页 512字节,共 2页。数据 EEPROM包括一页的选项字节(512字节)。 大容量STM8S器件 从 64K到 128K FLASH程序存储器,每页 512字节,最多 256页
[单片机]
<font color='red'>STM8</font> 存储器组织结构
艾迈斯欧司朗推出新款256通道ADC,帮助高性能CT探测器降功耗、简化设计
艾迈斯欧司朗推出新款256通道ADC,帮助高性能CT探测器降功耗、简化设计 • 采用14mm x 14mm FBGA封装的AS5911是系统级封装解决方案,可对256个光电二极管输出进行电流数字转换; • 1.25mW的每通道功耗最大限度地减少了CT探测器的自热,降低了热管理要求; • 出色的功率噪声比性能有助于下一代CT扫描仪实现更高成像质量; • AS5911 ADC将在下一代高性能医疗CT扫描仪和安检机中发挥关键作用,这些设备要求优异性能并降低复杂性。 中国 上海,2023年2月7日—— 全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)宣布,推出一款256通
[医疗电子]
艾迈斯欧司朗推出新款256通道<font color='red'>ADC</font>,帮助高性能CT探测器降功耗、简化设计
开关电源(DC/DC转换器)会降低ADC的性能吗
  工程师一般认为开关电源会降低ADC的性能,因此通常愿意选用低压差(LDO)线性稳压器,而不使用开关稳压器,但这种认识并非完全正确。LDO具有较低的纹波和噪声指标,但最近的研究表明,高效的开关稳压器也可用于一些转换器设计中,前提是设计师对电路拓扑有很好的理解,运用一些实用技巧,同时采取一些必要的防范措施。   首先是选择转换器,然后选择正确的开关稳压器,并不是任何开关稳压器都可以使用。从数据手册上查阅开关稳压器的噪声和纹波指标,以及开关频率。典型的开关稳压器在100kHz带宽范围内大概有10μVrms的噪声。假设它们都是白噪声,那么有关频带内的噪声密度相当于31.6nVrms/rt-Hz。   其次,要查阅转换器的电源抑制(PS
[电源管理]
13、PIC32系列-ADC采样模块
1、PIC32参考资源 PIC32系列参考手册 中文版 链接地址:PIC32系列参考手册 第17章 10位AD转换器 2、10位ADC转换器简介 PIC32MX10位模数(Analog-to-Digital,A/D)转换器(或 ADC)具有以下特性; • 逐次逼近寄存器 (Successive Approximation Register, SAR)转换 • 最多 16 个模拟输入引脚 • 外部参考电压输入引脚 • 一个单极性差分采样 / 保持放大器 (Sample-and-Hold Amplifier, SHA) • 自动通道扫描模式 • 可选择的转换触发源 • 16 字的转换结果缓冲区 •
[单片机]
13、PIC32系列-<font color='red'>ADC</font><font color='red'>采样</font>模块

推荐帖子

4个压电陶瓷传感器,敲击一个会影响其他传感器,如何判断敲击的是哪个传感器?
4个压电陶瓷传感器分别放置在4个减震器上,减震器放在同一个木板上。敲击一个传感器会导致其他3个传感器也同时响应。但是其他3个传感器的响应值没有敲击的传感器数值大。敲击后的余震会导致其他3个传感器的值比敲击的传感器的值大。请问有什么办法能够明确区分敲击了哪个传感器。一个传感器的敲击可能1秒能有10次。也有可能多个传感器同时敲击。loop函数中每次对4个传感器采样。用什么样的方式和算法能够准确的区分敲击和被动响应?4个压电陶瓷传感器,敲击一个会影响其他传感器,如何判断敲击的是哪个传感
lihang99 传感器
了解TI DSP相关知识,可以从这里开始!
管管为大家伙儿精心整理了一波TIDSP资料,有需要的朋友们,赶紧收起来吧!越控越有趣-TIC2000LaunchPad炼成记IC2000CLA常见问题解答(FAQ)集锦在CCS上调试C2000CLA常见问题解答(FAQ)集锦DSPC2000程序员高手进阶采用C2000TMS320F28027的LaunchPad启动开发工作CC3100Boost原理图,物料单等2012TIC2000,MSP430&M3大奖赛论文,源代码及PC
okhxyyo 微控制器 MCU
单线程也能开发异步任务?ACE JS框架到底是如何做到的
HarmonyOS2提供了两种应用开发语言:Java和JS。Java线程特性能够让多任务并行,充分利用硬件资源开发出高性能的应用。而JS却是一个单线程语言,无法像Java一样创建新的Thread,用JS语言开发是否会导致硬件资源无法充分利用的情况呢?本文给大家介绍ACEJS的单线程异步机制就是解决这个问题的。然而,说到单线程与异步,大家可能会比较疑惑,因为单线程和异步在概念上是冲突的,单线程无法做到多任务并发,也就不会存在异步这种通信机制。确实,JS语言本身是无法
world开发 创意市集
请教变量问题
OEMAddressTable;;;-------------------------------------------------------------;;;VirtAddrPhysAddrMB;;;-------------------------------------------------------------DCD0x80000000,0x02000000,30;30MBSRAM(SRAM/ROM)BANK0DCD
jlxllhk 产业风云
原装货、散新货、翻新货、拆机件、剪板ic……到底是指什么?
为应对芯片缺货、涨价,除了想尽办法去找国产替代,也有通过不同渠道去寻一些散新货、翻新货甚至拆机件、剪板ic等等这些看似陌生的名字到底指的是什么样的货呢?网友阿茂通过学习研究给出了一些解释:一、原装货:原厂生产出来的合格产品,分进口原装跟国产原装。二、散新货:散新这个词,重要用在IC芯片的晶圆里,意义主要有:1、这个货不是原厂生产出来的,可能是其余下设分厂家出产的,然而挨着本厂牌子,供给商称之为全新;2、原厂生产的,电性能参数有一些不及格的料,但是上
eric_wang DIY/开源硬件专区
基于EOSTM的电信线路维护管理系统案例
基于EOSTM的电信线路维护管理系统案例随着电信公司产品的丰富和客户的增加,电信网络和线路也越来越庞大和复杂,从而导致电信公司的线路维护工作日益繁重。目前,绝大多数电信公司的线路维护管理工作仍然处于人工方式阶段,缺乏有效的信息系统作为支撑和工具基于EOSTM的电信线路维护管理系统案例
mdreamj 嵌入式系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved