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 ...
随机推荐
- babel npm包说明
babel-plugin-import 用于按需加载,在使用antd 的时候引入,可以减少包体积
- SVN创建自己的版本库
1.创建版本库 第一:新建文件夹 第二:将新建文件与SVN建立关联(创建版本库) 直接选择OK 点击确定后文件夹图标也换了 该下的信息就是用来协助我们存储数据的(不是数据) 2.获取SVN库中的数据并 ...
- vscode 部分替换(正则替换)
1. 数字 \d{n} 2. 数字和字母 [A-Za-z0-9]{n} 常用运算符与表达式 ^ 开始 () 域段 [] 包含,默认是一个字符长度 [^] 不包含,默认是一个字符长度 {n,m} 匹配长 ...
- 清华大学资源库 和 CocoaPods / Specs 等多个 资源库共存
1.如果本地pod 索引文件库只有清华大学的资源库[https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git].如果新在github上制 ...
- Unity3D发布Android注意事项
当你制作完一款游戏,准备发布Android平台时,需要进行一些设置.如下: 一.设置AndroidSDK路级和JDK路径 AndroidSDK目录可以通过AndroidStudio查看,如下: 这个路 ...
- 【2020NOI.AC省选模拟#9】C. 重复
题目链接 原题解: 通过计数相同的子序列对个数的方式来计算答案. 设$f(i,j)$为$S$的前$i$和$j$个字符的公共子序列对个数. 当$S_i=S_j$时,$f(i,j)=f(i,j-1)+f( ...
- Redis集群(主从复制)
主从复制主从复制原理 Redis集群中有很多Redis服务器,这些Reids服务器分为主服务器和从服务器. 从服务器会向主服务器发送命令:SYNC命令. 主服务器接收到SYNC命令后,开始执行GBSA ...
- 用python判断三角形的形状
# coding:utf-8 class point: def __init__(self,x,y,name): self.x = x self.y = y self.name = name '''两 ...
- 【python】读取nc文件
读取nc文件前的准备,安装一些库 1.先把几个用到的库下载 Cartopy 简介与安装(转载) - 简书 (jianshu.com) Python Extension Packages for Win ...
- tensorflow 模型批处理参数tensor快速赋值参考
批处理调用模型的时候,如果逐像素给tensor对象数据部分赋值的话,效率是很低的,尤其是对于一些图片数据,所以数据块直接拷贝可以大大提高效率, 先取得数据指针: output_tensor->f ...