×
单片机 > 单片机程序设计 > 详情

LPC2103之Analog-to-Digital Converter

发布时间:2020-06-08 发布时间:
|
Analog-to-Digital Converter (ADC)
 
 
Features
LPC2103的ADC特性:
         1.  10bit逐次逼近型模数转换器
         2.  低功耗模式
         3.  测量范围0V—VDD(3.3V)(通常为3V,不超过VDDA)
         4.  10bit转换时间 > 2.44us
         5.  单输入或多输入突发转换模式
         6.  每路模数通道有专用的结果寄存器
 
 
Description
         APB时钟为A/D转换基本时钟。转换器中包括可编程分频时钟,逐次逼近处理所需的时钟最大能达到4.5MHz,彻底准确的转换需要11个这样的时钟周期。
 
 
Pin description
Pin Type Description
AD0.7:0 Input 模拟输入端口。
VDD(3V3) Reference 参考电压
VDDA,VSSA Power 模拟电压和地
 
 
Register description
//模数控制寄存器
#define AD0CR            (*((volatile unsigned long *) 0xE0034000))            
         A/D转换发生前,必须设置ADCR寄存器选择操作模式。复位值为0x00000001。可读可写寄存器。
信号 功能
7:0 SEL 选择AD0.7:0管脚哪一路进行采样和转换。8bit数据分别对应8路A/D输入管脚,有且只有一位可以写1。写0x00默认为0x01。
15:8 CLKDIV APB时钟(PCLK)的分频系数。必须使得A/D转换时钟小等于4.5MHz。
16 BURST 1——突发模式,转换时间和转换精度由CLKS决定
0——正常模式,11clock/10bits
19:17 CLKS 突发(BURST)模式下转换时钟周期选择(转换时间和转换精度的取舍)。
000——11clock/10bits
001——10clock/9bits
010——9clock/8bits
011——8clock/7bits
100——7clock/6bits
101——6clock/5bits
110——5clock/4bits
111——4clock/3bits
20   保留
21 PDN 1——A/D转换可操作
0——A/D转换工作于低功耗模式
23:22   保留
26:24 START 当BURST位为0时,以下设置控制是否以及何时A/D转换开始。
000——不启动(该值应该使用于PDN=0时)
001——立刻启动
010——Start conversion when the edge selected by bit 27 occurs on P0.16/EINT0/MAT0.2 pin.
011——Start conversion when the edge selected by bit 27 occurs on P0.22.
100——Start conversion when the edge selected by bit 27 occurs on MAT0.1.
101——Start conversion when the edge selected by bit 27 occurs on MAT0.3.
110——Start conversion when the edge selected by bit 27 occurs on MAT1.0.
111——Start conversion when the edge selected by bit 27 occurs on MAT1.1.
27 EDGE 此位的设置仅在START选择了010-111时
1——Start conversion on a falling edge on the selected CAP/MAT signal.
0——Start conversion on a rising edge on the selected CAP/MAT signal.
31:28   保留
 
//模数全局数据寄存器
#define AD0GDR           (*((volatile unsigned long *) 0xE0034004))            
可读可写寄存器。该寄存器包括了ADC的DONE位和最近的A/D转换结果。
信号 功能
5:0   保留
15:6 RESULT 转换结果
23:16   保留
26:24 CHN 该位包含了RESULT位所转换的通道。
29:27   保留
30 OVERUN 溢出标志位
31 DONE A/D转换完成该位置1,读该位和写ADCR时该位清除。当写ADCR时转换正在进行中,该位置1并且开始新的转换。
 
//模数状态寄存器
#define AD0STAT          (*((volatile unsigned long *) 0xE0034030))            
只读寄存器。该寄存器包括了所有A/D通道的DONE和OVERRUN标志位,也包括了A/D中断标志。
信号 功能
0 DONE0 该位反映了结果寄存器中A/D通道0的DONE状态。
1 DONE1 该位反映了结果寄存器中A/D通道1的DONE状态。
2 DONE2 该位反映了结果寄存器中A/D通道2的DONE状态。
3 DONE3 该位反映了结果寄存器中A/D通道3的DONE状态。
4 DONE4 该位反映了结果寄存器中A/D通道4的DONE状态。
5 DONE5 该位反映了结果寄存器中A/D通道5的DONE状态。
6 DONE6 该位反映了结果寄存器中A/D通道6的DONE状态。
7 DONE7 该位反映了结果寄存器中A/D通道7的DONE状态。
8 OVERRUN0 该位反映了结果寄存器中A/D通道0的OVERRUN状态。
9 OVERRUN1 该位反映了结果寄存器中A/D通道1的OVERRUN状态。
10 OVERRUN2 该位反映了结果寄存器中A/D通道2的OVERRUN状态。
11 OVERRUN3 该位反映了结果寄存器中A/D通道3的OVERRUN状态。
12 OVERRUN4 该位反映了结果寄存器中A/D通道4的OVERRUN状态。
13 OVERRUN5 该位反映了结果寄存器中A/D通道5的OVERRUN状态。
14 OVERRUN6 该位反映了结果寄存器中A/D通道6的OVERRUN状态。
15 OVERRUN7 该位反映了结果寄存器中A/D通道7的OVERRUN状态。
16 ADINT A/D中断标志位。当任何A/D DONE标志位置位时该位置位,并且影响ADINTEN寄存器的A/D中断。
31:17   保留
 
//模数中断使能寄存器
#define AD0INTEN         (*((volatile unsigned long *) 0xE003400C))            
         该寄存器控制A/D转换完成是否产生一个中断。
信号 功能
0 ADINTEN0 1——A/D通道0转换完成产生中断
0——A/D通道0转换完成不产生中断
1 ADINTEN 1 1——A/D通道1转换完成产生中断
0——A/D通道1转换完成不产生中断
2 ADINTEN 2 1——A/D通道2转换完成产生中断
0——A/D通道2转换完成不产生中断
3 ADINTEN 3 1——A/D通道3转换完成产生中断
0——A/D通道3转换完成不产生中断
4 ADINTEN 4 1——A/D通道4转换完成产生中断
0——A/D通道4转换完成不产生中断
5 ADINTEN 5 1——A/D通道5转换完成产生中断
0——A/D通道5转换完成不产生中断
6 ADINTEN 6 1——A/D通道6转换完成产生中断
0——A/D通道6转换完成不产生中断
7 ADINTEN 7 1——A/D通道7转换完成产生中断
0——A/D通道7转换完成不产生中断
8 ADINTEN 1——只要ADINTEN7:0使能就可以产生中断
0——只有ADDR中的全局DONE标志位使能才产生中断
31:9   保留
 
//模数通道0/1/2/3/4/5/6/7数据寄存器
//模数通道0数据寄存器
#define AD0DR0           (*((volatile unsigned long *) 0xE0034010))         
//模数通道1数据寄存器
#define AD0DR1           (*((volatile unsigned long *) 0xE0034014))           
//模数通道2数据寄存器
#define AD0DR2           (*((volatile unsigned long *) 0xE0034018))           
//模数通道3数据寄存器
#define AD0DR3           (*((volatile unsigned long *) 0xE003401C))            
//模数通道4数据寄存器
#define AD0DR4           (*((volatile unsigned long *) 0xE0034020))             
//模数通道5数据寄存器
#define AD0DR5           (*((volatile unsigned long *) 0xE0034024))            
//模数通道6数据寄存器
#define AD 0DR6           (*((volatile unsigned long *) 0xE0034028))            
//模数通道7数据寄存器
#define AD0DR7           (*((volatile unsigned long *) 0xE003402C))            
只读存储器。
信号 功能
5:0   保留
15:6 RESULT 转换结果。
29:16   保留
30 OVERRUN 溢出标志位。
31 DONE 完成标志位,读该寄存器清除该位
 




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机中高阻态的实质及意义