【转载】使用STM8SF103 ADC采样电压
硬件环境: STM8SF103 TSSOP20封装
因为项目需要用到AD采样电池电压,于是便开始了使用STM8S ADC进行采样,也就有了下文。
手册上对STM8S ADC的管脚描述如下:
STM8SF103这款芯片是TSSOP 20管脚封装,如下:
STM8SF103这款芯片能用的是5个AD采样通道,分别是AIN2~AIN6。其实是还有一个通道AIN7,但手册并没有对其描述。
这里还有一个很奇怪的地方,从ST资料中找到一个与上面的表数据不同的地方,如:
很明显的说STM8S103是存在这个AIN7通道的,再加上另外5个通道,应该是6个通道才对。
要做AD采样,首先要解决的就是AD的参考电压,之前查看手册上并没有描述AIN7通道,有的仅仅是几个外部采样通道。AIN7通道是内部通道,用于提供一个恒定的电压参考值。
从别的资料找到下面这句话,很明显是存在这么一个通道的,后面测试也证明这个是正确的。
第一步已经解决了,找到了一个参考电压,但这个电压到底是多少,手册也没有找到痕迹。只能是根据公式自己算出来。
Vin = (ADC * Vref) / 1024
Vref = Vin * 1024 / ADC (根据Vin这个恒定的值算出参考电压,这里的参考电压就是VCC且是变化的。实际上真正的参考电压是由AIN7提供的1.22V)
使用VCC做为参考电压,VCC很明显可以使用万用表先测出来,1024是因为STM8S这款的AD是10位精度。
我测试的VCC为3.19V,AD值基本上是出于稳定状态392左右,392 * 3.19 / 1024 = 1.221171875 自然就算出了参考电压值,这里取1.22。为了证明这个值是正确的,
使用电池供电,VCC为2.93V。分别采样8次,计算每一次的VCC电压。
n AD值 VCC
1 432 2.89V
2 429 2.91V
3 429 2.91V
4 429 2.91V
5 430 2.90V
6 430 2.90V
7 430 2.90V
8 431 2.89V
另外又使用3.19V进行测试,采样值也是很接近的,平均3.20左右。
还有另外一款STM8S903也有该采样通道AIN7,所有的AIN通道有8个,7个内部加上1个外部通道。如果没有能够提供参考电压,则必须使用外部器件供一个参考电压给AINx。可选用TL430。
由此可以看出: AIN7通道一定是存在于STM8S103的,并且参考电压为1.22V。
后记:
经本人测试确实如以上网友所说。
我用STM32 AD大半年也没有觉得哪里不好。只有设置和程序不对的问题,AD多通道,不同通道之间不需要延时等待。最多做了8通道加一温度,数值都是对的。但是AD采样的值不是固定的,有个上下波动。这个和参考电压有关。加软件滤波有助于改善波动。(具体版上有ADC值校准的帖子,可以搜下)
其次,ADC采样多通道必须要用DMA传输,DMA传输要注意设置buffersize以及起始地址。AD多通道之间要排好顺序。再则就是先使能DMA,再使能ADC转换。顺序不要错了,否则有的你玩的。
因为没有外部基准电压,而采用内部基准往往就是 VDDA的电压,面对大批量产品,往往此电压差异较大,如何消除此影响呢,
1、可以采用一路AD 连接一个类似 TL431的外部参考标准电压来获得 VDDA 的电压 从而 消除VDDA的不定值对要测AD的影响。
2、VDDA上连接一个 与电源电压相差不大的高精准电源,比如可以用TL431组成一个3.3v基准,但考虑TL431基准2.5,稳压到3.3需要加电阻匹配,电阻的误差也要考虑,所以此方案没采用。
【转载】使用STM8SF103 ADC采样电压的更多相关文章
- 使用STM8SF103 ADC采样电压(转)
源:使用STM8SF103 ADC采样电压 硬件环境: STM8SF103 TSSOP20封装 因为项目需要用到AD采样电池电压,于是便开始了使用STM8S ADC进行采样,也就有了下文. 手册上对S ...
- STM32中基于DMA的ADC采样实例之MQ-2烟雾传感器
最近学习了一下STM32中的ADC采样,由于手头正好有一个MQ-2的烟雾传感器,所以正好可以测试一把.体验ADC采样的过程.下面介绍一下这个MQ-2烟雾传感器. 1.MQ-2烟雾传感器简介 MQ-2气 ...
- ADC采样工作原理详解
如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?这个问题,是第一次接触ADC时候,大家都会遇到的问题.会读到什么值单片机会读到什么值?需要看一个特性,就是几位的AD ...
- STM32 多通道ADC采样,采用Timer1进行采样率控制,利用DMA进行传输
http://blog.csdn.net/varding/article/details/17559399 http://www.51hei.com/stm32/3842.html https://w ...
- ADC采样对MIC的干扰
使用EFM8SB的MCU做ADC采样,检测MIC Bias的电源,解码android耳机的线控.初始时, ADC的采样频率2KHz, 在录音时后播放,能固定的听到接近2K的一个噪声.示波器探测不到明显 ...
- DSP基础学习-ADC采样
DSP基础学习-ADC采样 彭会锋 2015-04-27 22:30:03 在查看ADC采样例程的时候我发现了下面的代码挺有意思的 EALLOW; GpioCtrlRegs.GPAMUX2.bit.G ...
- 利用基准电压效正Vcc做参考电压的ADC采样计算方法
利用基准电压效正Vcc做参考电压的ADC采样计算方法
- STM32的ADC采样时间
STM32的ADC采样时间与其ADC的时钟频率密不可分. 例:STM32F103系列的ADC的时钟是在APB2(最大72MHZ)上.我们可以对其分频: RCC_PCLK2_Div2: ADC cloc ...
- STM32 ADC 测电压
1. STM32F103 ADC 本例使用STM32F103芯片的PA1引脚测试模拟输入的电压值. 查看文档<STM32F103X.pdf>第31页,引脚定义图: 得知PA1使用ADC1的 ...
随机推荐
- 萌新学python
python python安装 进入官网http://www.python.org/download/ 下载 我下的是3.6.6大家可以根据需要下载(3.x和2.x不兼容请小心) 之后安装就可以了 p ...
- vscode编写python,引用本地py文件出现红色波浪线
前言 引用本地py文件出现红色波浪线,如下图: 原因 经过查询得知,vscode中的python插件默认使用的是pylint来做代码检查,因此需要对pylint做一些配置 解决方案 在setting. ...
- 营口6378.7939(薇)xiaojie:营口哪里有xiaomei
营口哪里有小姐服务大保健[微信:6378.7939倩儿小妹[营口叫小姐服务√o服务微信:6378.7939倩儿小妹[营口叫小姐服务][十微信:6378.7939倩儿小妹][营口叫小姐包夜服务][十微信 ...
- C语言实现表达式求值,支持+、-、*、/四则运算,并且支持多级括号,自定义了栈的操作。
以下是代码的实现使用gcc已经成功运行了,下面是效果图 #include <stdio.h> #include <stdlib.h> #define OPT_ADD 43 /* ...
- pytest框架: fixture之conftest.py
原文地址:https://blog.csdn.net/BearStarX/article/details/101000516 一.fixture优势1.fixture相对于setup和teardown ...
- 用 C 语言游戏编程开发!果然最担心的事又发生了!
30了.我要怎么办,老了.人就像一头小毛驴,方向都是牵着的人定的. 这个项目从去年开始的,一个手机游戏,当时接这个项目的时候其实没有太多考虑,我一向都喜欢打肿脸充胖子的,好面子,人家找上门来,不能不给 ...
- 搭建分布式 Redis Cluster 集群与 Redis 入门
目录 Redis 集群搭建 Redis 是啥 集群(Cluster) Redis Cluster 说明 Redis Cluster 节点 Redis Cluster 集群模式 不能保证一致性 创建和使 ...
- centos8安装zookeeper(单机方式)
一,下载zookeeper: 1,官网地址 http://zookeeper.apache.org/ 找到这个地址: https://mirrors.tuna.tsinghua.edu.cn/apac ...
- nginx优化:配置gzip压缩页面提高访问速度(nginx1.18.0)
一,为什么nginx要使用gzip 1,压缩的作用: 页面使用gzip压缩之后, 页面大小可以压缩到原来的1/7左右, 传输速度和页面打开时间都可以大幅度提高, 有利于用户访问页面体验的提升 2,Ng ...
- Ambari仓库安装教程
Ambari仓库安装教程 如果用户需要后续使用Ambari server进行安装Hadoop则必须搭建一个内部的yum源,否则直接下载速度将会很慢,当然该服务仅要搭建一个即可,可以一直使用. 一.Ce ...