S3C2440 ADC(模/数转换器)

本文部分内容转自zhaocj的博客,感谢!地址为:http://blog.csdn.net/zhaocj/article/details/5495730  

  

  A/D转换,又称为模/数转换,是将模拟量信号转换为计算机能够处理的数字信号。S3C2440集成了8通道10位CMOS A/D转换器,最大转换率为2.5MHz A/D转换器时钟下的500KSPS。A/D转换器支持片上采样-保持功能和掉电模式的操作。

  有如下特性:

  分辨率:10位

  差分线性误差:±1.0LSB

  积分线性误差:±2.0LSB

  最大转换率:500KSPS

  功耗低

  供电电压:3.3V

  模拟输入范围:0~3.3V

  片上采样-保持功能

  普通转换模式

  分离的X/Y方向转换模式

  自动(顺序)X/Y方向转换模式

  等待中断模式

 

  对于s3c2440来说,实现A/D转换比较简单,主要应用的是ADC控制寄存器ADCCON(如图1)和ADC转换数据寄存器ADCDAT0(如图2)。

 

图1 ADC控制寄存器(ADCCON)

 

  15位,用于标识A/D转换是否结束。

  第14位,用于使能是否进行预分频。

  第6~13位,存储的是预分频数值,因为A/D转换的速度不能太快,所以要通过预分频处理才可以得到正确的A/D转换速度,例如,我们想要得到A/D转换频率为1MHz,则预分频的值应为49。

  第3~5位,表示的是A/D转换的通道选择。

  第2位,可以实现A/D转换的待机模式。

  第1位,用于是否通过读取操作来使能A/D转换的开始。

  第0位,是在第1位被清零的情况下用于开启A/D转换。

  

  A/D转换时间的计算:

  当PCLK频率为50MHz并且预分频器的值为49时,共10位的转换时间如下:

    A/D转换器频率 = 50MHz / (49+1) = 1MHz

    转换时间 = 1 / (1MHz / 5周期 ) = 1/200KHz = 5us

  注释:次A/D转换器被设计为最高工作在2.5MHz时钟下,因此转换率可以达到500KSPS(每秒采样次数)。

  说明:上述公式中为什么是5周期?查了很久,找到一个解释:

  A/D converter freq=1MHZ,可是conversion time=1/(1MHZ/5 cycles),这个5 cycles是怎么来的,而且 1/频率 不就是时间么。原来是基础概念不清楚,这里的1MHZ仅仅是系统通过我们对AD预设分频以后得到的AD时钟频率,在2440里最大可以达到2.5MHZ,和我们的转换时间并不是成倒数关系。转换时间包括有:AD建立的时间(用几个时钟周期)、一位一位转换的时间(再用几个时钟周期)、保存数据的时间(再再用上几个时钟周期),在2440里面这些时间加起来应该是5个时钟周期,所以才会有上面的公式。另外SPS这个单位是ADC的参数:即每秒模数转换器采点数(采样率)。2440中最高可以达到500KSPS。

  

  寄存器ADCDAT0的低10位用于存储A/D转换后的数据。

 

 

图2 ADC转换数据寄存器(ADCDAT0)

  以AIN0为例,当模拟量通过AIN0通道传入A/D转换器,通过转换,将转换结果存储在ADCDAT寄存器的低10位中,而S3C2440的ADC转换器模拟量输入范围为0~3.3V,因此取ADCDAT寄存器的低10位数值1023对应3.3V,呈线性关系。

posted @ 2016-01-15 15:12  kelemay1016  阅读(1266)  评论(0编辑  收藏  举报