0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【有那么点详细的CW32学习笔记】模数转换器

jf_08851166 来源:jf_08851166 作者:jf_08851166 2024-02-29 09:41 次阅读

本章为大家带来模数转换器ADC)的使用教学,按照惯例,我们先来说一下模数转换器本身。

首先是功能,模数转换器接收电压信号并输出一个数字信号,该数字信号是一个数字,这个数字指示了电压信号的大小。通常来说,想要判断大小就需要有对比,因此该数字指示的电压大小实际上是一个比较的结果。ADC将需要测量的电压信号Ut与已知电压的信号U作比较,并最终输出一个数字表示Ut相当于多少比例的U。

接下来就可以看看CW32的ADC外设结构框图了,图中按块划分了ADC外设的不同功能区。

wKgZomXe2xGACIsPAAORHVtF7mQ820.png


ADC会将左侧红框中某一指定通道(由程序指定)所连接的电信号与下方红框中选定的参考电压(由程序选定)进行比较,完成紫色方框中的步骤后,最终输出一个数字(暂记为value)并存放在右侧红框中的寄存器里面。Value的范围取决于ADC的位数,若ADC为12位,则value最大为2^12=4096,最小值为0,value指示了相比于参考电压U,输入电压Ut的值,计算方法如下:可以认为ADC将参考电压分成了4096份,最终输出的结果反映了输入电压够得上其中多少份,例如参考电压选择2.5V,最终转换的结果数据为2048,那么就认定输入通道的实际电压值是2.5/4096*2048=1.25V,其他情况以此类推。由于参考电压的存在,ADC无法直接测量比参考电压值高的信号,输入通道连接的电压不能高于参考电压。

现在来简单说说紫色方框内的部分,这一部分是ADC的核心部分,根据ADC转换原理的不同,这一部分的电路结构也不一样,CW32的ADC是逐次逼近型ADC,它会先把通道中的电压信号采样并被内部的采样保持放大器输出且保持稳定(这一步叫采样保持),随后ADC用逐次逼近的方法得到一个12位的数字(这一步叫量化编码),需要重点关心的是采样保持阶段的持续时间,这个时间越久,最终用于量化编码阶段的采样电压值就越精确,我们就能得到更精确的转换结果。

从上述步骤来看,使用ADC需要进行如下操作:

1.必要的IO初始化和外设时钟初始化;

2.正确设置ADC的采样通道和参考电压;

3.选择合适的ADC采样时间;

4.启动ADC并等待转换完成;

5.读取转换结果寄存器得到电压值;

首先需要说明的是IO初始化的问题。对于使用ADC功能的IO,它本质上并不是“将这个IO复用为ADC功能”,而是把这个IO设置为模拟输入,也就是不将IO上的电信号量化成数字信号,这一点在GPIO电路结构图里面可以看到。

wKgZomXe20aACi5wAALn6abTjl0244.png


这个模拟功能从结果上来看就是ADC复用,不过还是请大家理解其本质。

下一个要说的是采样通道。ADC一般都会有多个采样通道,开发者从中挑选一些通道接入电路来使用。ADC外设同一时间只能对某一个通道上的电压进行转换,所以如果需要采样四个通道的电压,只能顺序转换,这个转换顺序是可以手动设置的。ADC拥有4个可填入的配置项,暂且称为序列0~3,ADC会根据另外一个配置项(ADC_SQR寄存器的ENS位段)来判断该转换这4个序列中的哪些,序列里面需要填写的内容就是AD采样的通道号,配置完成之后ADC就会按照这4个序列内填的通道号按顺序进行AD转换。更具体的配置方法直接参考ADC_SQR寄存器描述即可

wKgaomXe212AESs9AASSz2UVn8M442.png

图中有一些前文没说到的配置项,因为这些配置项是一些ADC附带的特殊功能。具体的功能在手册ADC章节的寄存器描述中有详细说明,代码中的注释也已经详细标注。

该配置中,ADC被配置为单通道单次转换模式,也就是说ADC一次转换只能转换一个ADC通道,并且转换完成之后就会停下来等待CPU发出下一次转换开始的指令(相对的,还有连续模式和扫描模式)。

配置完成后,再编写一个启动ADC的函数就行了,该函数需要包含启动、等待转换完成、返回数据的功能,如图所示:

wKgaomXe232AIq_GAAJG0FC2fAE570.png


上图的具体步骤对应了手册中描述的步骤,详细说明见用户手册22.5.1章节。

ADC一般用法的介绍到此就结束了,但ADC还有很多其他功能,比如连续模式、扫描模式、硬件触发采集和DMA访问,这些模式可以帮助我们更好地使用ADC功能,后续的章节会介绍一种不消耗CPU资源的ADC采集方法,真正实现全自动采集。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    98

    文章

    6497

    浏览量

    544512
  • 模数转换器
    +关注

    关注

    26

    文章

    3203

    浏览量

    126816
  • CW32
    +关注

    关注

    1

    文章

    203

    浏览量

    632
收藏 人收藏

    评论

    相关推荐

    那么点详细CW32学习笔记】单片机启动\库函数构成

    此篇文章是CW32F030C8T6的参考资料,很详细,适合初学者。
    的头像 发表于 08-10 11:13 1117次阅读
    【<b class='flag-5'>有</b><b class='flag-5'>那么点</b><b class='flag-5'>详细</b>的<b class='flag-5'>CW32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>】单片机启动\库函数构成

    那么点详细CW32学习笔记】通用定时——输出比较

    本章以CW32通用定时为例介绍单片机定时的用法。 定时是单片机中一个非常传统且重要的外设,定时的 本质其实就是一个计数
    的头像 发表于 12-28 11:24 1317次阅读
    【<b class='flag-5'>有</b><b class='flag-5'>那么点</b><b class='flag-5'>详细</b>的<b class='flag-5'>CW32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>】通用定时<b class='flag-5'>器</b>——输出比较

    那么点详细CW32学习笔记】看手册配置时钟树

    本章针对CW32F030C8T6的时钟树进行详细解析,续第一章启动文件的相关讲解。
    的头像 发表于 08-17 14:54 977次阅读
    【<b class='flag-5'>有</b><b class='flag-5'>那么点</b><b class='flag-5'>详细</b>的<b class='flag-5'>CW32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>】看手册配置时钟树

    ADI模数转换器应用笔记

    本帖最后由 wuyu2009 于 2013-3-30 17:21 编辑 ADI模数转换器应用笔记绝对清晰清晰要用好压解压,我用好压软件压缩的
    发表于 03-30 16:24

    ADI放大器+模数转换器应用笔记,ADI实验室电路合集

    `《ADI放大器应用笔记-第一册》包括第一部分 - 放大器产品的应用;第二部分 - 放大器基本概念指标和测试评估;每款放大器电路包含详细的设计文档;《ADI模数转换器应用笔记-第一册》
    发表于 04-13 17:33

    AD9675KBCZ模数转换器

    针对低成本、低功耗、小尺寸及易用性而设计。它内置8通道的可变增益放大器(VGA)、低噪声前置放大器(LNA)、具有可编程相位旋转功能的CW谐波抑制I/Q解调、抗混叠滤波(AAF)、模数转换
    发表于 10-19 11:10

    什么是光学模数转换器?原理是什么?哪些技术指标?

    什么是光学模数转换器?光学模数转换器的主要技术指标光学模数转换器的研究进展光学模数转换器的应用
    发表于 04-20 06:52

    ADC模数转换器相关资料下载

    嵌入式知识-ARM裸机-学习笔记(12):ADC模数转换器一、ADC1. 什么是ADCADC(analog digital converter):模数
    发表于 07-01 11:25

    模数转换器(ADC)的配置哪些流程?

    模数转换器(ADC)是什么?模数转换器(ADC)的配置哪些流程?配置流程的代码是什么?
    发表于 07-14 08:43

    模数转换器ADC简介

    ESP32 之 ESP-IDF 学习笔记(七)——模数转换器(ADC)文章目录ESP32 之 ESP-IDF 学习笔记(七)——
    发表于 02-17 06:28

    CW32系列模数转换器(ADC)

    模数转换器(ADC)的主要功能是将模拟量转换为数字量,方便MCU进行处理。下面以CW32L083为例介绍CW系列的模数转换器的特点和功能,并
    发表于 06-01 11:59

    电流积分模数转换器(ADC),什么是电流积分模数转换器(AD

    电流积分模数转换器(ADC),什么是电流积分模数转换器(ADC) 模数转换器(Analog to digital Converter,简称ADC)是模拟与数字世界的接口,为了适应计算机、通
    发表于 03-24 13:31 3166次阅读

    ADI模数转换器应用笔记

    ADI模数转换器应用笔记下载。
    发表于 06-04 14:30 43次下载

    浅谈CW32系列模数转换器(ADC)

    CW32系列模数转换器(ADC)
    的头像 发表于 10-25 15:43 1138次阅读
    浅谈<b class='flag-5'>CW32</b>系列<b class='flag-5'>模数转换器</b>(ADC)

    那么点详细CW32学习笔记】通用异步收发—发送篇

    本章介绍CW32通用异步收发的使用。 虽然大部分时候会被简单称为“串口”,但实际上 用“串口”来指代UART并不正确 。串口对应并口的概念,在串口通信中,数据被以二进制形式发送,并且每次发送都只
    的头像 发表于 11-17 17:30 764次阅读
    【<b class='flag-5'>有</b><b class='flag-5'>那么点</b><b class='flag-5'>详细</b>的<b class='flag-5'>CW32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>】通用异步收发<b class='flag-5'>器</b>—发送篇