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 ...
随机推荐
- 为什么Controller层注入的是Service接口,而不是ServiceImpl实现类
转自csdn--https://blog.csdn.net/weixin_39565597/article/details/78078728 今天看代码发现,写法和自己理解的java写法不一致,就查找 ...
- sprinboot多个子模块下 依赖包没有找到 解决方案
最近因为在使用springboot开发项目,在开发过程中,发现自己的子模块导入通用的模块 在启动中 说找不到这个类 百度下 说我要在pom文件下 pulus 插件 那里 加上这段代码 <conf ...
- drf从入门到飞升仙界 01
web应用模式 # 1.django web框架,专门用来写web项目 # 2.前后端混合开发 - 作为后端人员也需要写模板语法 - 作为前后端都混合时期的全栈工程师,则需要都写,内容比较多 # 3. ...
- C++实现单链表相关操作
#include<iostream>#include<cstdlib>//C++动态分配存储空间using namespace std;#define OK 1#define ...
- ABAP 物料主数据 屏幕增强按钮
首先看效果,目标是在物料主数据中 基础数据页面新增一个按钮来满足跳转需求,这里以跳转百度为例 页面效果如下: 创建定制程序 事务代码 SPRO,路径:后勤-常规 -> 物料主数据 -> 配 ...
- Mybatis实现树状结构查询
1.实体类 @Data public class CourseChapterVO implements Serializable { private static final long serialV ...
- 常用的js优秀框架个人记录
一.树框架 zTree http://www.treejs.cn/
- mysql-逗号分隔关联查询
牛逼plus 每天一个知识点 tableA id num 1 1001,1002 2 1002 tableB id num name 1 1001 A 2 1002 B 想要的结果: id name ...
- std::unique_ptr release的使用
在c++中,动态内存管理是通过new/delete 运算符来进行的.由于确保在正确的时间释放内存是很困难的,为了避免内存泄漏,更加容易,安全地使用动态内存,C++11标准库提供了两种智能指针类型来管理 ...
- infoq上看视频1(持续更新)
打破工程师思维 http://www.infoq.com/cn/presentations/break-engineer-thinking 百姓网人: 从技术走向产品的那点儿事 http://www. ...