基于fl2440的ADC以及Uart控制(c语言)

AD采集的原理:

1)逐次逼近法


逐次逼近式A/D 是比较常见的一种A/D 转换电路,转换的时间为微秒级。
采用逐次逼近法的A/D 转换器是由一个比较器、D/A 转换器、缓冲寄存器及控制逻辑电路组成。
它的基本原理是从高位到低位逐位试探比较,好像用天平称物体,从重到轻逐级增减砝码进行
试探。

2)双积分法

基本原理是将输入电压变换成与其平均值成正比的时间间隔,再把此时间间隔转换成数字量,属
于间接转换。

双积分法A/D 转换的过程是:先将开关接通待转换的模拟量V i,Vi 采样输入到积分器,
积分器从零开始进行固定时间T的正向积分,时间T到后,开关再接通与Vi 极性相反的基准电
压VREF,将VREF 输入到积分器,进行反向积分,直到输出为0V 时停止积分。Vi 越大,
积分器输出电压越大,反向积分时间也越长。计数器在反向积分时间内所计的数值,就是输入
模拟电压Vi 所对应的数字量,实现了A/D 转换。


3)电压频率转换法

它的工作原理是V/F 转换电路把输入的模拟电压转换成与模拟电压成正比的脉冲信号。
电压频率转换法的工作过程是:当模拟电压Vi 加到V/F 的输入端,便产生频率F 与Vi 成
正比的脉冲,在一定的时间内对该脉冲信号计数,时间到,统计到计数器的计数值正比于输入
电压Vi,从而完成A/D 转换。

 

对LSB 的理解(搞了一年多的单片机都还是晓得,惭愧):

LSB这一术语有着特定的含义,它表示的是数字流中的最后一位,也表示组成满量程输入范围的最小单位。对于12位转换器来说,LSB的值相当于模拟信号满量程输入范围除以2^12 或 4,096的商。如果用真实的数字来表示的话,对于满量程输入范围为4.096V的情况,一个12位转换器对应的LSB大小为1mV。但是,将LSB定义为4096个可能编码中的一个编码对于我们的理解是有好处的。

  让我们回到开头的技术指标,并将其转换到满量程输入范围为4.096V的12位转换器中:

  失调误差 = ±3LSB =±3mV,

  增益误差 =±5LSB = ±5mV,

KSPS(kilo Samples Per second) 用来描述AD的转换速率

所谓的转换速率(Conversion Rate)是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。

s3c2440的ADC模块:

模块功能图:


ADC 延时寄存器:
ADC 的使用分四个步骤:
1) 设置ADCCON 寄存器,选择输入信号通道,设置A/D 转换器的时钟。使能A/D 转换器的
预分频功能。计算A/D 时钟的公式:A/D 时钟频率=PLCK/(预分频值(PRSCVL)+1)。
2) 设置ADCTSC 寄存器,使用设为普通转换模式,这里不能使用触摸屏功能。ADCTSC 寄存
器多用于触摸屏,对于普通的ADC,使用默认值即可。
3) 设置ADCCON 寄存器,启动A/D 转换。如果设置READ_START 位,则读取转换数据(读
ADCDAT0 寄存器)时即启动下一次转换;否则,就通过设置ENABLE_START 位来启动A/D。
4) 转换结束时,读取ADCDAT0 寄存器来获取数值。如果使用查询方式,则可以不读取
ADCCON 寄存器的ECFLG 位来确定转换是否结束;否则可以使用INT_ADC 中断,发生
INT_ADC 中断时表示转换结束。

 

UART 模块图

 

 

AFC 自动控制流

UBRDIVn = (int)( UART clock / ( buad rate x 16) ) –1

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值