CH573 CH582 CH579外设ADC例程讲解
在adc的例程中共有六种AD测量,1、温度测量,2、单通道测量,3、DMA单通道测量,4、差分通道测量,5、触摸按键测量,6、中断方式单通道测量,接下来我们逐一描述。
粗调:粗调使得用0db测量VINTA电压时为2048,
在例程中都会去获取粗调制,使用通道1也就是PA5作为校准通道,
在ch573中可以使用通道6去校准,那么PA5仍可使用,
ch579仅可使用通道1校准,且不可使用通道1采集数据,
ch582中使用通道1作为校准通道,且可以使用通道1采集数据。
VINTA正常值为1.035-1.065V之间,若需要得到精确的电压值,则在计算式Vref需使用实际的VINTA电压值。
一、温度测量
首先调用adc温度测试初始化函数,其次获取adc内部偏差值,再调用adc采集函数就可以获取adc模拟值了,最后使用温度转化公式(adc.c文件的最下面一个函数),将模拟值转化成温度值。
目前转化后的温度相对值也就是变化值是正确的,但绝对值需要自己修正,如实际温度20度,转化温度5度,则在转化结果上加15。
二、单通道测量
首先,配置单通道的IO为浮空输入,然后调用单通道初始化函数(可传两个参数,采样频率和增益,测量不同的电压值需使用不同的增益),其次选择IO对应的通道,再获取adc内部偏差值,在调用adc采集函数获取电压模拟值,最后使用手册中公式转化。


四种增益选择相应的公式进行计算,根据实测电压范围选择增益。
三.DMA通道测量

四.差分通道测量

使能差分选择0#通道:实际是对AIN0(正端PA4)和AIN2(负端PA12)的电压进行差分转换;
使能差分选择1#通道:实际是对AIN1(正端PA5)和AIN3(负端PA13)的电压进行差分转换;
Vref=1.05V(更精确可测内部模拟电路的电源节点VINTA 的实际电压值)
ADC 转换后的结果,如果数据大于0x800(十进制2048)表示差分正端的电压高于差分负端的电压;如果数据小于0x800表示差分正端的电压低于差分负端的电压。以PGA增益选择0dB为例,理论可测电压范围为-1.05V~1.05V,0x400表示差分正端的电压低于差分负端的电压约0.5Vref,0x000表示差分正端的电压低于差分负端的电压约1.0Vref,PGA增益选择6dB时,理论可测电压范围为-0.5025V~0.5025V(0.5Vref),PGA增益选择-6dB时,理论可测电压范围为-2.1V~2.1V(2Vref),PGA增益选择-12dB时,理论可测电压范围为-4.2V~4.2V(4Vref),
测量范围可参考手册。
增益选择0dB时P =1;6dB时PGA =2;-6dB时P =1/2;-12dB时P=1/4。
计算公式:(|测量值-0x800|/0x800/P)*1.05
如PGA选择0dB时:
正端比负端大0.5V,测量值为3032,带入公式计算得0.504V
正端比负端小0.5V,测量值为1060,带入公式计算得0.506V
正端比负端大1.0V,测量值为4002,带入公式计算得1.002V
正端比负端小1.0V,测量值为96,带入公式计算得1.000V
如PGA选择-6dB时:
正端比负端大0.5V,测量值为2551,带入公式计算得0.516V
正端比负端小0.5V,测量值为1552,带入公式计算得0.506V
正端比负端大1.0V,测量值为3040,带入公式计算得1.017V
正端比负端小1.0V,测量值为1066,带入公式计算得1.006V
正端比负端大2.0V,测量值为4020,带入公式计算得2.022V
正端比负端小2.0V,测量值为87,带入公式计算得2.010V
五.触摸按键测量

六.中断方式单通道测量

CH573 CH582 CH579外设ADC例程讲解的更多相关文章
- CH58X/CH57X/V208的Broadcaster(广播者)例程讲解
在对ble进行应用的时候,每个用户的需求可能不尽相同.这里着重介绍从机Broadcaster例程,只广播不连接. 使用该例程时可以在手机使用APP上对Broadcaster进行调试. 安卓端在应用市场 ...
- 说说M451例程讲解之LED
/**************************************************************************//** * @file main.c * @ve ...
- 说说M451例程讲解之定时器
关于定时器 相信很多人都不会陌生,无论是51还是32,任何微控制器,都会有定时器 定时器控制器包含 4 组 32-位定时器,TIMER0~TIMER3,提供用户便捷的计数定时功能.定时器可执行很多功能 ...
- M451例程讲解之GPIO.H
到了CORTEX-M4,几乎每一快都有很大的知识量,单单GPIO库文件这一项就有很长的章节要描述,加油吧 GPIO.h.是最基础的一个库文件,下面结合数据手册来一一进行讲解: 先把库文件粘上,方便一一 ...
- 奋斗STM32V3版ADC例程
https://wenku.baidu.com/view/a60b2042c850ad02de8041b7.html
- 说说M451例程讲解之串口
/**************************************************************************//** * @file main.c * @ve ...
- M451例程讲解之按键
/**************************************************************************//** * @file main.c * @ve ...
- CH58X/CH57X/V208 Observer(观察者)例程讨论讲解
使用的是沁恒的CH582M的Observer例程与官方的demo板. 本例程的功能是主机扫描到从机的MAC地址并打印出来. 先对宏定义进行理解讨论. 最大响应扫描数为8,在串口调试助手那里可以看到打印 ...
- 【iCore2 模块相关资料】iM_LAN 100M 以太网模块UDP例程
============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...
- 【iCore2 双核心板视频教程一】iM_LAN 100M 以太网模块UDP例程(包含视频教程)
============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...
随机推荐
- div css 页面中心弹窗窗口
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- 在C++创建动态数组
计算首行两数相加 #include <iostream>11 #include <vector> using namespace std; int main() { vecto ...
- sed: -e 表达式 #1, 字符 1: 未知的命令:“'”
https://blog.csdn.net/linmingan/article/details/80007727 加双引号!! 利用sed更改文件test.txt的第一行为abc: sed -i '1 ...
- 2357. 使数组中所有元素都等于零 (Easy)
问题描述 2357. 使数组中所有元素都等于零 (Easy) 给你一个非负整数数组 nums .在一步操作中,你必须: 选出一个正整数 x , x 需要小于或等于 nums 中 最小 的 非零 元素. ...
- el-scrollbar 饿了么滚动条不出现 bug
el-scrollbar 饿了么滚动条不出现 bug 解决方法:el-scrollbar 的直接子元素样式需要设置为 display: inline-block;
- Java数组之数组的使用
数组的使用 普通的for循环 For-Each循环 数组作方法入参 数组作返回值 public class ArrayDemo03 { public static void main(String[] ...
- Qt中资源文件qrc中的路径访问
首先先看一下我们的qrc文件目录结构: 在文件系统中的目录结构是这样的: 请务必注意这边的前缀(按照网友推荐,大部分项目前缀都是只写一个"/"): 接下来进入正题,我们来分 ...
- MySQL利用information_schema库注入
information_schema库简单说就是MySQL里的一个目录库,MySQL是一本书,information_schema库这个存储数据库元数据的库就是书的目录或者索引. 库>表> ...
- JAVA随机获取集合里的元素
@Test public void aaa(){ String[] sbNo = new String[]{"asd","asd","asd" ...
- Spring Boot 启动时自动执行代码的几种方式
来源:https://mp.weixin.qq.com/s/xHAYFaNBRys3iokdJmhzHA 前言 java自身的启动时加载方式 Spring启动时加载方式 代码测试 总结 1.前言 目前 ...