STM8S专题之ADC数据转换

简介

数字信号是一种离散的信号,模拟信号是一种连续的信号,如果数字电路需要处理模拟信号,则需要一种信号转换系统,相反,模拟电路要处理数字信号也需要进行信号转换。A/D与D/A 转换器就是两种信号进行处理的桥梁。
常见的A/D转换器有并联比较型、逐次逼近型、V-F型、双积分型等。
常见的D/A转换器有权电阻网络型、倒T型电阻网络型、权电容网络型、权电流型、开关树结构型等。

原理

系统框架

STM8S单片机型号不同,ADC的资源也不同。以ADC2为例,ADC2为10位逐次逼近型A/D转换器,可以提供16个输入通道。
系统结构
上图是A/D转换的结构图,左边是信号输入,中间是信号转换,右边是信号输出。核心部分是中间信号转换,下面有3条配置线。
ADON(ADC_CR1)为上电唤醒/启动转换,首次置1唤醒ADC,二次置1启动转换,置0关闭ADC。
CONT(ADC_CR1)为单次/连续转换,置0单次转换,置1连续转换。
CH[3:0](ADC_CSR)为模拟信号输入通道选择,配置值对应AIN0~AIN15。
启动ADC转换的触发信号有三种,软件触发(ADON),TIM1定时器触发信号(TRGO),外部引脚触发(ADC_ETR)。
AD转换相关引脚说明如下:
在这里插入图片描述

转换模式

ADC1高级AD转换器支持5种转换模式:单次模式、连续模式、带缓存连续模式、单次扫描模式、连续扫描模式。
ADC2普通AD转换器支持单次和连续模式。
单次模式
适合对不同通道逐一转换。
首先选定输入通道,配置CONT位为0,ADON位为1启动转换,转换完成后,转换结束标志位EOC(ADC_CSR)被置1,数据存储在ADC数据寄存器中。如果使能了转换结束中断EOCIE(ADC_CSR)产生一个中断请求。
ADC单次转换时序如下图:
在这里插入图片描述
连续转换

适合对选定通道连续转换。
ADC连续转换时序如下图:
在这里插入图片描述
首先选定通道,配置CONT置1开启连续转换模式,上电后,ADON首次置1唤醒转换单元,延时一段时间稳定时序,二次置1启动转换,转换完成EOC被置1,数据缓存在ADC_DR中(需要及时读取,可查询EOC或中断读取),如果使能中断的话会产生转换结束中断。然后自动启动下一次转换。EOC状态位需要软件清除。

转换速度

ADC转换速度取决于ADC时钟频率,ADC时钟频率取决于系统时钟频率和ADC分频系数。分频系数可通过SPSRL[2:0](ADC_CR1)位设置。
ADC转换一次需要14个时钟周期,3个采样,11个转换。

转换精度

以ADC2为例,分辨率为10位,模拟通道输入信号电压为5V,则最小电压等级为5/2的10次,分辨精度可以达到4.88mv。模拟信号高于IC参考电压时需要设计硬件分压电路。

寄存器

在这里插入图片描述
控制状态寄存器ADC_CSR
用于模拟输入通道选择,转换结束中断使能,转换结束标志位设定。
在这里插入图片描述
在这里插入图片描述

控制寄存器1ADC_CR1
用于分频系数配置,转换模式配置,上电唤醒/开启转换配置。
在这里插入图片描述
在这里插入图片描述
控制寄存器2ADC_CR2
外部触发方式配置,触发使能配置,数据对齐方式配置
在这里插入图片描述在这里插入图片描述
ADC转换后的数据是10位,需要两个寄存器存储。
左对齐:高8位写入ADC_DRH,其余位写入ADC_DRL。
右对齐:低8位写入ADC_DRL,其余位写入ADC_DRH。

流程

在这里插入图片描述

示例

注意

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值