首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

2812 --- 内置ADC

2812 --- 内置ADC

AD的简单知识




AD,就是将模拟量转变为数字量的过程,一般分为取样、保持、量化、编码这4步。


由于模拟信号在时间上连续的,而数字信号在时间上离散的,所以转换时首先必须按 数字信号的节拍,对被转换的模拟信号采取样品。取样(Sample)的原理如图示。


开关受取样脉冲信号S(t)控制,S(t)=0时,开关断开,取样输出V1(t)=0;S(t)=1时,开关导通,V1(t)=V(t)。这样就把连续的模拟信号V(t)变成了一个个脉冲信号。


采样定理:取样信号S(t)的频率fs大于或等于模拟信号f(t)的最高频率Fmax(其频带的上限频率)的2倍,则输入信号V(t)的主要特征都能够被保留下来,将来可以通过滤波处理,从V1(t)中恢复原来的信号V(t)。


AD的采样频率和转换时间。

AD的采样频率取决于启动AD的速度,启动AD转换的方法有很多,例如软件直接启动,或者利用EV的一些事件来启动,启动的频率才是AD采样的频率,例如每隔1ms启动1次,则AD采用频率为1K。而AD时钟和AD的转换时间有关,和AD采样频率是无关的。


2812内部ADC的特点

2812的ADC模块是一个12位分辨率的、具有流水线结构的模数转换器,具有16个通道。对于每个序列发生器,一旦转换结束,已选择采样的通道值就会被保存到各个通道的结果寄存器中去。总共有16个结果寄存器Result Reg0—Result Reg15,用于分别保存16个通道的转换结果。

                                         2812 ADC的功能

1. 12位的ADC内核,内置2个采样保持器(S/H-A,S/H-B)。



2. 采样模式可以为顺序采样(Sequential Sampling)或者是同步采样(Simultaneous Sampling)

3. 模拟输入范围为0—3V(需要注意,输入不可超过3V,否则烧坏2812)一般输入最大值在3V的70%左右,为防止万一,一般先将要采样的信号经过运放处理(基准电压源偏置),
使输入电压范围在AD正常工作采样范围之内,在信号进DSP的AD口时,最好加一嵌位二极管。


4. 快速转换时间运行在25MHZ,ADC时钟或者12.5MSPS(每秒完成12.5个百万次的采样。)

5. 总共为16路输入通道,可编程多路选择输入。16路采样输入通道被分成了两组,每组8个,分别是ADCINA0……ADCINA7和ADCINB0……ADCINB7。
   
A组对应于采样保持器S/H-A,B组对应于采样保持器S/H-B。

6. 自动序列化,在单一事件段最大能够提供16个自动A/D转换。

7. 序列发生器可以按两个独立的8状态序列发生器(SEQ1和SEQ2)来运行,也可以按一个16状态的序列发生器(SEQ)来运行。

8. 共有16个转换结果寄存器来保存转换数值
  
式中: ADCLO为AD转换的参考电平,在实际使用的过程中,通常将其与GND连接,因此此时ADCLO的值为0。
       4095=2^12-1,对应于满量程输入为3V时的转换结果

9. 有多种触发方式来启动AD转换(SOC=start of conversion),包括:软件直接启动S/W,EVA的事件源,EVB的事件源和外部引脚启动。



10. 序列发生器可以运行在启动/停止模式。

11. 采样-保持的采集时间窗口可以预先设定。(ADCTRL1的位ACQ_PS3—ACQ_PS0决定了采集窗口的大小,这一位控制了SOC脉冲的宽度,也就是一开始开关S(t)的导通时间。
   SOC脉冲的宽度是(ACQ_PS+1)*ADCLK。)


                                        ADC时钟







Example. Clock Chain to the ADC





                   ADC工作模式


顺序采样、同步采样 (AdcRegs.ADCTRL1.bit.SEQ_CASC位控制) --- 采样方式
双序列发生器模式、级联模式(AdcRegs.ADCTRL3.bit.SMODE_SEL位控制)--- 序列放生器的模式
也就是说在双序列发生器模式下可以采用顺序采样和同步采样,在级联模式下我们依然可以采用顺序采样和同步采样两种方式


序列发生器的连续自动序列化模式和启动/停止模式

一个序列的转换数是由MAXCONVn进行控制的,在启动一个转换序列进行转换时,AD模块将MAXCONVn的值装载进自动序列状态寄存器ADCASEQSR的序列计数器状态位SEQCNTR。

当序列发生器从状态CONV00开始并顺序进行(CONV01,CONV02。。。。)时,SEQCNTR位从装入值开始递减,直到为0,结束一个序列的转换,完成转换数为(MAXCONVn+1)。

当ADCTRL1的CONT RUN位设为0时,AD的序列发生器运行在启动/停止模式,也就是说这种模式下,序列发生器在完成1个序列的转换之后将停止工作,在下一次转换启动开始之前,必须复位序列发生器,将转换器置为CONV00。
复位的方法如下:
AdcRegs.ADCTRL2.bit.RST_SEQ1=1;     //立即复位序列发生器为CONV00
AdcRegs.ADCTRL2.bit.RST_SEQ2=1;     //立即复位序列发生器为CONV08

当AD的控制寄存器1的CONT RUN位设为1时,AD的序列发生器运行在连续自动序列化模式,当序列转换结束时,转换序列自动重复开始,SOC触发时自动将MAXCONVn装入SEQCNTR,SEQ的状态变为CONV00。在这种情况下,为了避免重写数据,必须确保在下一个转换序列开始前,读取结果寄存器。
返回列表