首页 » 互联网 » 小5带你飞(8)—AVR(ATmega 328P)单片机片内ADC的事理和运用(1)_存放器_电压

小5带你飞(8)—AVR(ATmega 328P)单片机片内ADC的事理和运用(1)_存放器_电压

雨夜梧桐 2024-10-27 09:52:15 0

扫一扫用手机浏览

文章目录 [+]

ATmega328p内部集成了一个10位的逐次逼近的A/D转换器。
该转换器与一个8通道的仿照多路复用器连接。
它能够对来自端口A的8路单端输入电压进行采样。

ADC转换模块的事理图

小5带你飞(8)—AVR(ATmega 328P)单片机片内ADC的事理和运用(1)_存放器_电压 小5带你飞(8)—AVR(ATmega 328P)单片机片内ADC的事理和运用(1)_存放器_电压 互联网

看一下它的基本特性:

小5带你飞(8)—AVR(ATmega 328P)单片机片内ADC的事理和运用(1)_存放器_电压 小5带你飞(8)—AVR(ATmega 328P)单片机片内ADC的事理和运用(1)_存放器_电压 互联网
(图片来自网络侵删)

10位分辨率

0.5 LSB积分非线性

±2 LSB绝对精度

13 -~260µs转换韶光

最高采样速率76.9 kSPS/s

6路可选的单端输入通道

2路额外多路复用单端输入通道(TQFP 、QFN/MLF)

温度传感器输入通道

ADC读取的结果可设置为左端对其

0~Vcc ADC输入电压范围

可选择1.1v ADC参考电压

自由连续转换模式和单次转换模式

在ADC转换完成时中断

就寝模式噪音肃清

ADC的供电和参考电压:

ADC由独立的专用的仿照电压引脚AVCC供电,AVCC和VCC的电压差别不能大于±0.3V。

ADC的参考电源可以是芯片内部的1.1v的参考电源,也可以是AVCC,也可以采取外部参考电源,利用外部参考电源的时候,外部参考电源可由引脚AREF接入,利用内部参考电压源的时候,可以通过在AREF引脚外部并接一个电容来提高ADC的抗噪性能。
这个电容一样平常可为0.1uF

与ADC有关的寄存器:

ADMUX:多路复用选择寄存器

bit6、bit7 :ADC参考电压选择。
如果在转换过程中改变了设置,则只有等待当前转换结束后才起浸染。
如果在 AREF引脚上施加了外部参考电压,则内部参考电压将不能当选择。
这个参考电压的选择见下图:

还是阐明一下:

00 :AREF,内部基准源关闭

01 :AVCC,AREF外接滤波电容

10 : 保留

11 :1.1v内部基准电压源,AREF外接滤波电容

bit5:转换结果对齐位。
置位左对齐,清位右对齐

bit4:一个保留位

bit3~bit0:仿照通道选择位

便是选择连接到哪个通道上,这个没啥说的。
看表就好了,如下:

2. ADCSRA:ADC掌握和状态寄存器A

bit7:ADC使能位。
置位则启动ADC功能,清位ADC功能关闭

bit6:ADC开始转换。

在单次转换模式下,该位置位将启动一次ADC转换,在连续转换模式下,该位置位,将启动首次转换

bit5:ADC自动触发使能位。

该位置位,则启动ADC自动触发功能。

bit4:ADC中断标志位

ADC转换结束且数据寄存器被更新后该位置位,如果ADIE及SREG寄存器中的全局中断使能位I被置位,

则ADC转换结束中断做事程序被实行,同时该位被硬件清零,也可以通过软件写1清零。

bit3:ADC中断使能位。
如果该位及SREG寄存器中的全局中断使能位I被置位,则ADC转换结束中断将被使能。

bit2~bit0:ADC预分频器的选择。
这三位决定ADC输入时钟与CPU时钟之间的分频系数,如下表:

3. ADCL 、 ADCH :ADC数据寄存器

分别是左对齐的和右对齐的数据

ADC转换结束后,转换结果将存在这两个寄存器当中。
首先ADMUX寄存器当中的ADLAR和MUXn影响转换结果在寄存器中的存放形式。
当ADCL被读取时,ADC数据寄存器在读取ADCH之前不会更新,如果转换结果为左对齐且只须要8位的精度,那么仅须要读取ADCH就可以了,否则需先读取ADCL然后读取ADCH。

4.ADCSRB :ADC掌握和状态寄存器B

bit2~bit0:ADC自动触发源的选择

解释一下吧:

000:连续转换模式

001:仿照比较器

010:外部中断要求0

011:定时器/计数器0比较匹配A

100:定时器/计数器0溢出

101: 定时器/计数器0比较匹配B

110:定时器DIDR0数器1溢出

111:定时器/计数器1捕捉事宜

5. DIDR0:数字输入禁用寄存器0

解释一下:

bit5~bit0 :当这些位置位,相应的ADC引脚的数字输入缓存区被禁止,相应的PIN寄存器读取的时候都为0,

仿照旗子暗记利用于ADC5~ADC0,是不须要这么做的,ADC6和ADC7是没有缓存区的。

下面来看看ADC的基本利用步骤:

ADC输入端口初始化

基准电压的设置,数据对齐办法的设置,通道的选择。
(ADMUX寄存器的配置)

AD使能,启动装换,中断的设置(ADCSRA寄存器的设置)

触发源的选择(ADCSRB寄存器的设置)

选择中断号,编写中断做事程序,读取ADC的数据(ADCL 、 ADCH )

好的,关于ADC的寄存器就写这么多了,下一篇我们来写ADC的驱动程序。

更多内容请关注头条号:小5嵌入式

标签:

相关文章

C语言中u32数据类型的探索与应用

在C语言编程中,数据类型是构成程序的基本元素。而u32作为一种无符号整型数据类型,因其占用内存空间较小、处理速度快等特点,在许多领...

互联网 2025-01-06 阅读0 评论0

C语言中捕捉上升沿,技术介绍与实际应用

在数字信号处理领域,上升沿检测是一个至关重要的技术。尤其是在C语言编程中,如何有效地捕捉上升沿,对于实现实时信号处理、数据采集等应...

互联网 2025-01-06 阅读0 评论0

C语言中的2s,详细介绍其应用与方法

在C语言编程中,2s是一个不可或缺的概念。它不仅代表了整数类型中的一种存储方式,更体现了C语言在底层编程中的优势。本文将从2s的应...

互联网 2025-01-06 阅读0 评论0

C语言中的e指数,探索自然数的神秘力量

在数学的海洋中,有一个特殊的数——e指数。它是自然数世界的神秘力量,隐藏在无数数学公式和自然现象之中。本文将带领大家走进C语言的世...

互联网 2025-01-06 阅读0 评论0