[“简简单单DSP”系列学习活动——第六期AD学习及使用.docVIP

  • 4
  • 0
  • 约1.22万字
  • 约 10页
  • 2017-01-06 发布于北京
  • 举报

[“简简单单DSP”系列学习活动——第六期AD学习及使用.doc

[“简简单单DSP”系列学习活动——第六期AD学习及使用

“简简单单DSP”系列学习活动—第六期AD学习及使用 “简简单单DSP”系列学习活动——第六期AD学习及使用 2812的AD是一个12位的,实际只有一个AD转换器,但是有16个输入通道,通过内部模拟开关选择。这16个通道可以分为两个8通道的,也可以级联为一个16通道的。 ADC功能包括: 1、ADC时钟 外部高速时钟HSPCLK经过变换后作为AD的时钟。 HSPCLK先要被控制寄存器3ADCTRL3寄存器中的ADCCLKPS[3:0]位除,随后经过2分频(当ADCTRL1寄存器中的位CPS=1)或不分频(当ADCTRL1寄存器中的位CPS=0)就得到ADC的时钟基准,但是最大为25M。 ADCCLKPS=0时,ADCCLK=HSPCLK/(ADCTRL1[7]+1) ADCCLKPS!=0时,ADCCLK=HSPCLK/[2x(ADCCLKPS)x(ADCTRL1[7]+1)]例如:外部晶振时钟30M,PLL倍频后为150M,HSPCLK=25M,ADCCLKPS=5,ADCTRL1[7]=1,则 ADCCLK=25/2X5x(1+1)=1.25M 2、采样频率 ADC转换包括采样、保持、量化、编码四个阶段,他把连续的模拟量量化为开关数字量,就相当于在模拟量和AD引脚中间有一个开关,开关闭合,模拟量就输入到AD采样引脚,开关断开,ADC引脚上的模拟量就没有了,采样频率就是采样和保持的时间,就是这个开关闭合的时间。采样时间长短不影响其他操作,这个采样时间控制SOC脉冲宽度。由ADC时钟和ADC控制寄存器1ADCTRL1中的ACQ_PS[11:8]位决定。 Fsoc=ADCCLK/(ACQ_PS[11:8]+1)。 3、ADC采样模式 ADC采样有顺序采样和同时采样两种模式。 顺序采样就是按照自动排序器的设置一个通道一个通道采样,而同时采样是按照顺序排序器的设置一对一对的采样,但是这一对的编号要一样,即ADCINA0 与ADCINB0,ADCINA1和ADCINB1……同时采样。 2812的ADC是12位16通道的,可以分两个8通道的也可以级联为一个16通道的,这样的话就有4种工作模式,即: a、双通道顺序采样 b、双通道同步采样 c、级联模式顺序采样 d、级联模式同步采样 就每种工作模式进行介绍,不对C代码进行详解,在讲这些之前,先说一下涉及到的比较重要而且难理解的寄存器 第一个:最大转换通道寄存器ADCMAXCONV ADCMAXCONV中能用的位是最后七位,在双通道采样模式下,自动排序寄存器SEQ1(A通道)用到的是MAXCONV1_2-0,就是低三位,采样的通道数=MAXCONV1_2-0+1;自动排序寄存器SEQ2(B通道)用到的是MAXCONV2_2-0,就是高三位,采样的通道数=MAXCONV2_2-0+1;在级联模式下,自动排序器SEQ用到的是MAXCONV1_3-0,采样的通道数=MAXCONV1_3-0+1。 第二个:自动排序器SEQ1 SEQ2 SEQ 自动排序器就是管理在什么时间A、B通道的哪一个通道进行采样,就是把这16个通道排列顺序。在双通道模式下,SEQ1管理的是A通道的那8个输入,SEQ2管理的是B通道的那8个输入,在级联模式下SEQ(即SEQ1)管理16个通道。 第三个:四个输入通道选择排序寄存器ADCCHSELSEQx(X=1、2、3、4),都是16位的寄存器,每个寄存器中的4位确定一个采样通道(因为4位最大值正好是16,这样每个4位就可以确定16个通道的任一个),这样一个寄存器确定4个通道,4个寄存器正好是确定16个通道。每个寄存器可以确定4个通道,这4个通道可以是一样的,甚至4个寄存器确定的都是一样的,这样就实现了过采样技术。 a、双通道顺序采样 双通道顺序采样,用到的自动排序器是SEQ1,SEQ2,其中SEQ1将用到ADCADCCHSELSEQ1和ADCADCCHSELSEQ2,ADCCHSELSEQx中的每4位的最高位设置为0;SEQ2将用到ADCADCCHSELSEQ3和ADCADCCHSELSEQ4,ADCCHSELSEQx中的每4位的最高位设置为1;用到ADCMAXCONV中最后七位的低三位和高三位。低三位MAXCONV1_2-0决定SEQ1中的采样次数;高三位MAXCONV2_2-0决定SEQ2中的采样次数.转换顺序是从ADCADCCHSELSEQ1的最低4位开始一直到ADCADCCHSELSEQ4的最高4位这个顺序来的。 C代码分析:这个是16个顺序采样的,每个通道都采样一次 /*双通道发生器模式 */ AdcRegs.ADCTRL1.bit.SEQ_CASC=0; /*设置顺序采样模式*/ AdcRegs.ADCTRL3.bit.SMODE_SEL

文档评论(0)

1亿VIP精品文档

相关文档