ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:20.25KB ,
资源ID:18942000      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18942000.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简简单单DSP系列学习活动第六期AD学习及使用精Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简简单单DSP系列学习活动第六期AD学习及使用精Word格式文档下载.docx

1、3、ADC采样模式 ADC采样有顺序采样和同时采样两种模式。顺序采样就是按照自动排序器的设置一个通道一个通道采样,而同时采样是按照顺序排序器的设置一对一对的采样,但是这一对的编号要一样,即ADCINA0 与ADCINB0,ADCINA1和ADCINB1同时采样。 2812的ADC是12位16通道的,可以分两个8通道的也可以级联为一个16通道的,这样的话就有4种工作模式,即:a、双通道顺序采样b、双通道同步采样c、级联模式顺序采样d、级联模式同步采样 就每种工作模式进行介绍,不对C代码进行详解,在讲这些之前,先说一下涉及到的比较重要而且难理解的寄存器 第一个:最大转换通道寄存器ADCMAXCON

2、V 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个

3、输入,SEQ2管理的是B通道的那8个输入,在级联模式下SEQ(即SEQ1)管理16个通道。 第三个:四个输入通道选择排序寄存器ADCCHSELSEQx(X=1、2、3、4),都是16位的寄存器,每个寄存器中的4位确定一个采样通道(因为4位最大值正好是16,这样每个4位就可以确定16个通道的任一个),这样一个寄存器确定4个通道,4个寄存器正好是确定16个通道。每个寄存器可以确定4个通道,这4个通道可以是一样的,甚至4个寄存器确定的都是一样的,这样就实现了过采样技术。 双通道顺序采样,用到的自动排序器是SEQ1,SEQ2,其中SEQ1将用到ADCADCCHSELSEQ1和ADCADCCHSELSE

4、Q2,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_C

5、ASC=0;/*设置顺序采样模式*/AdcRegs.ADCTRL3.bit.SMODE_SEL=0;/*每个序列发生器最大采样通道数为 8,总共可采样 16 通道 , SEQ1 将用到 ADCADCCHSELSEQ1、ADCADCCHSELSEQ2,SEQ2 将用到 ADCADCCHSELSEQ3、ADCADCCHSELSEQ4 */AdcRegs.MAX_CONV.all=0x0077;/*采样 ADCINA0*/AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0;/*采样 ADCINA1*/AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x1;/*采样

6、 ADCINA2*/AdcRegs.ADCCHSELSEQ1.bit.CONV02=0x2;/*采样 ADCINA3*/AdcRegs.ADCCHSELSEQ1.bit.CONV03=0x3;/*采样 ADCINA4*/AdcRegs.ADCCHSELSEQ2.bit.CONV04=0x4;/*采样 ADCINA5*/AdcRegs.ADCCHSELSEQ2.bit.CONV05=0x5;/*采样 ADCINA6*/AdcRegs.ADCCHSELSEQ2.bit.CONV06=0x6;/*采样 ADCINA7*/AdcRegs.ADCCHSELSEQ2.bit.CONV07=0x7;/*AD

7、CCHSELSEQx中的每4位的最高位为0*/*采样 ADCINB0*/AdcRegs.ADCCHSELSEQ3.bit.CONV08=0x8;/*采样 ADCINB1*/AdcRegs.ADCCHSELSEQ3.bit.CONV09=0x9;/*采样 ADCINB2*/AdcRegs.ADCCHSELSEQ3.bit.CONV10=0xA;/*采样 ADCINB3*/AdcRegs.ADCCHSELSEQ3.bit.CONV11=0xB;/*采样 ADCINB4*/AdcRegs.ADCCHSELSEQ4.bit.CONV12=0xC;/*采样 ADCINB5*/AdcRegs.ADCCHS

8、ELSEQ4.bit.CONV13=0xD;/*采样 ADCINB6*/AdcRegs.ADCCHSELSEQ4.bit.CONV14=0xE;/*采样 ADCINB7*/AdcRegs.ADCCHSELSEQ4.bit.CONV15=0xF;/*ADCCHSELSEQx中的每4位的最高位为1*/ 转换完成后,结果存放在结果缓冲寄存器ADCRESULTn(x=116)中,结果排序如下如果 SEQ1 和 SEQ2 两者都已经完成了转换,那么,结果如图 8 所示:ADCINA0-ADCRESULT0ADCINA1-ADCRESULT1ADCINA2-ADCRESULT2ADCINA3-ADCRES

9、ULT3ADCINA4-ADCRESULT4ADCINA5-ADCRESULT5ADCINA6-ADCRESULT6ADCINA7-ADCRESULT7ADCINB0-ADCINB1-ADCRESULT8ADCINB2-ADCRESULT9ADCINB3-ADCRESULT10ADCINB4-ADCRESULT11ADCINB5-ADCRESULT13ADCINB6-ADCRESULT14ADCINB7-ADCRESULT15 双通道同步采样,就是一次有一对通道采样,像上面说的这一对是对应的。用到的自动排序器是SEQ1,SEQ2。其中SEQ1将用到ADCADCCHSELSEQ1,ADCADCC

10、HSELSEQ1中的每4位的最高位设置为0;SEQ2将用到ADCADCCHSELSEQ3,ADCADCCHSELSEQ3中的每4位的最高位设置为1;用到ADCMAXCONV中最后七位的低2位和高2位。低2位MAXCONV1_1-0决定SEQ1中的采样次数,每一次是一对,列如MAXCONV1_1-0=3,那么就是4对;高2位MAXCONV2_1-0决定SEQ2中的采样次数.转换顺序是从ADCADCCHSELSEQ1的最低4位开始一直到ADCADCCHSELSEQ3的最高4位这个顺序来的.C代码分析:这个是8对同步采样的,每个通道都采样一次AdcRegs.ADCTRL3.bit.SMODE_SEL

11、=1;/*每个序列发生器最大采样通道数为 4,总共可采样 8对通道 , SEQ1 将用到 ADCADCCHSELSEQ1、,SEQ2 将用到 ADCADCCHSELSEQ3、 */AdcRegs.MAX_CONV.all=0x0033;/*采样 ADCINA0,ADCINB0*/*采样 ADCINA1,ADCINB1*/*采样 ADCINA2,ADCINB2*/*采样 ADCINA3,ADCINB3*/*采样 ADCINA4,ADCINB4*/AdcRegs.ADCCHSELSEQ3.bit.CONV08=0x4;/*采样 ADCINA5,ADCINB5*/AdcRegs.ADCCHSELSE

12、Q3.bit.CONV09=0x5;/*采样 ADCINA6,ADCINB6*/AdcRegs.ADCCHSELSEQ3.bit.CONV10=0x6;/*采样 ADCINA7,ADCINB7*/AdcRegs.ADCCHSELSEQ3.bit.CONV11=0x7;ADCRESULT12 级联模式顺序采样,就是两个8通道的合并为一个16通道的,只用到一个排序器SEQ。顺序采样,就是一次采一个通道,最多采样16通道。SEQ 将用到 ADCADCCHSELSEQ1、ADCADCCHSELSEQ2、ADCADCCHSELSEQ3、ADCADCCHSELSEQ4 ,用到ADCMAXCONV中最后七位

13、的低4位。转换顺序是从ADCADCCHSELSEQ1的最低4位开始一直到ADCADCCHSELSEQ3的最高4位这个顺序来的.这个是顺序采样16通道/*级联模式 */AdcRegs.ADCTRL1.bit.SEQ_CASC=1;/*序列发生器最大采样通道数为 16, SEQ 将用到 ADCADCCHSELSEQ1、ADCADCCHSELSEQ2,ADCADCCHSELSEQ3、ADCADCCHSELSEQ4 ,用到ADCMAXCONV的低4位*/AdcRegs.MAX_CONV.all=0x000F;如果 SEQ已经完成了转换,那么,结果如图 所示: 级联模式同步采样,就是一次有一对通道采样,

14、像上面说的这一对是对应的。用到的自动排序器是SEQ将用到SEQADCADCCHSELSEQ1、ADCADCCHSELSEQ2.ADCADCCHSELSEQ1、ADCADCCHSELSEQ2中的每4位的最高位设置为0;用到ADCMAXCONV中最后七位的低3位。转换顺序是从ADCADCCHSELSEQ1的最低4位开始一直到ADCADCCHSELSEQ2的最高4位这个顺序来的.这个是8对同步采样的,每次采样俩个通道,每个通道都采样一次/*设置同步采样模式*/*序列发生器最大采样通道数为 8,总共可采样 8对通道 , SEQ 将用到 ADCADCCHSELSEQ1、 ADCADCCHSELSEQ2

15、*/AdcRegs.MAX_CONV.all=0x0007;AdcRegs.ADCCHSELSEQ2.bit.CONV6=0x6;AdcRegs.ADCCHSELSEQ2.bit.CONV7=0x7;如果 SEQ1都已经完成了转换,那么结果如图 所示: 通过上述的 4 种情况我们不难发现,双序列发生器同步采样和级联模式同步采样的结果是一样的,双 序列发生器顺序采样和级联模式顺序采样的结果也是一样的,就是寄存器配置有些差别,不可张冠李戴,否则采样不能正确进行。大家可以仔细比对,体会这 4 种情况的不同之处。在实际应用中,大家可以根据情况来进行选择,最简单的就是级联成 16 路,然后进行顺序采样。

16、4、序列发生器的连续自动序列化模式和启动/停止模式 我们知道,一个序列的转换数是由 MAXCONVn 进行控制的,在启动一个转换序列进行转换时,AD 模块将 MAXCONVn 的值装载进自动序列状态寄存器 ADCASEQSR 的序列计数器状态位 SEQCNTR。当序列发生器从状态 CONV00 开始并顺序进行(CONV01,CONV02。)时, SEQCNTR 位从装入值开始递减,直到为 0,结束一个序列的转换,完成转换数为(MAXCONVn+1)。 当 AD 的控制寄存器 1 的 CONT RUN 位设为 0 的时候,AD 的序列发生器运行在启动/停止模式,也就是说这种模式下,序列发生器在完

17、成 1 个序列的转换之后将停止工作,在下一次转换启动开始之前,必须复位序列发生器,将转换器置为 CONV00。复位的方法如下:复位序列发生器 :/*立即复位序列发生器为 CONV00 */AdcRegs.ADCTRL2.bit.RST_SEQ1=1;/*立即复位序列发生器为 CONV08*/AdcRegs.ADCTRL2.bit.RST_SEQ2=1; 当 AD 的控制寄存器 1 的 CONT RUN 位设为 1 的时候,AD 的序列发生器运行在连续自动序列化模式,当序列转换结束时,转换序列自动重复开始,SOC触发时自动将 MAXCONVn装入 SEQCNTR,SEQ的状态变为 CONV00。

18、在这种情况下,为了避免重写数据,必须确保在下一个转换序列开始前,读取结果寄存器。5、ADC的初始化 首先应该复位ADC,再给REF和bandgap电路上电,上电之后要由至少5MS的延时使电源稳定,再给ADC主模块上电。初始化函数在DSP281X_Adc.c库函数中,在主函数中调用即可#define ADC_usDELAY 8000L#define ADC_usDELAY2 20Lvoid InitAdc(void)extern void DSP28x_usDelay(Uint32 Count);AdcRegs.ADCTRL1.bit.RESET=1;/复位asm(“ RPT # 10 | NO

19、P”);/至少等待12周期以使复位有效AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; / Power up bandgap/reference circuitryDELAY_US(ADC_usDELAY); / Delay before powering up rest of ADCAdcRegs.ADCTRL3.bit.ADCPWDN = 1; / Power up rest of ADCDELAY_US(ADC_usDELAY2); / Delay after powering up ADC6、ADC启动在配置完ADC后,要选择它的启动模式。SEQ1 :软件立即启动 、EVA 的多种事件 外部引脚(GPIO/XINT2_ADCSOC)SEQ2 :软件立即启动 、 EVB 的多种事件?SEQ :软件立即启动 、EVA 的多种事件 、EVB 的多 种事件 、外部引脚(GPIO/XINT2_ADCSOC)对于这些触发方式的选择有控制寄存器2ADCTRL2决定.下面以一个完整的C代码为例说明ADC的配置,这个是工作在级联顺序采样,采样16通道,有软件触发,使能中断,工作在中断模式0.main()InitSysCtrl();/初始化cpuDINT;/关中断InitPieCtrl();/初始化pie寄存器IER = 0x0000;/

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1