DSP实验三,数模转换.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP实验三,数模转换

实 验 报 告 3 实验项目名称: 模数转换实验18 实验室: K2-406 DSP室 指导教师:叶天凤 一、实验目的 掌握A\D转换的基本过程; 熟悉TMS320LF2407A片内A\D转换模块的技术指标和常用方法。 二、实验主要仪器与设备 计算机,ICETEK-LF2407-EDU实验箱 三、实验原理 1、TMS320LF2407A模数转换模块特性 -带内置采样和保持的10位模数转换模块ADC,最小转换时间为500ns。 -多达 16个的模拟输入通道(ADCIN0-ADCIN15)。 -自动排序的能力。一次可执行最多16个通道的“自动转换”,而每次要转换的通道都可通过编程来选择。 -两个独立的最多可选择8个转换通道的排序器可以独立工作,也可以级连后工作。 -排序控制器可决定模拟通道转换的顺序。 ——可单独访问的16个转换结果寄存器。 -多个触发源启动转换; -软件设置启动标志; -事件管理器(共两个)提供多个事件源; -外部ADCSOC引脚。 -灵活的中断控制。 -采用和保持获取时间窗口有单独的预定标控制。 -内置校验模式和自测试模式。 2、模数转换工作过程 -模数转换模块接到启动转换信号后,按照排序器的设置,开始转换第一个通道的数据; -经过一个采用时间的延迟后,将采用结果放入转换结果寄存器保存; -按顺序经行下一个通道的转换; -如果为连续转换方式则从新开始转换过程;否则等待下一个启动信号。 3、模数转换的程序控制 模数转换相对于计算机来说是一个较为缓慢的过程。一般采用中断方式启动 转换或保存结果,这样在CPU忙于其他工作室时可以可以少占用处理处理时间。设计转换程序应首先考虑处理过程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换手段,也要能及时地保存结果。 由于TMS320LF2407A DSP芯片内的A\D转换精度是10位的,转换结果的高10位为所需数值,所以在保留时应注意将结果的低6位去除,取出高10位有效数字。 4、实验程序分析 本实验程序设计设置DSP采用连续采集的方式工作,同时采集两个通道 (ADCIN0, ADCIN1)的模拟输量输入;使用片内通过定时器1产生定时中断,用以定时保存转换数据。 源程序框图如下所示: 主程序框图: 定时器中断服务程序框图: 本实验的源程序如下: #include 2407c.h #define ADCNUMBER 256 void interrupt gptime1(void); /* 中断服务程序,用于设置保存标志 */ void ADInit(void); /* 初始化A/D转换模块和通用定时器1 */ioport unsigned char port000c; /* I/O端口用于设置ICETEK-2407-A板上指示灯 */ unsigned int uWork,uWork1,nADCount,nLed,*pResult1,*pResult2; int nNewConvert,nWork; unsigned int nADCIn0[ADCNUMBER];/* 存储区1,保存通道ADCIN0的转换结果,循环保存 */ unsigned int nADCIn1[ADCNUMBER];/* 存储区2,保存通道ADCIN1的转换结果,循环保存 */ main() { asm( CLRC SXM); /* 清标志,关中断 */ asm( CLRC OVM); asm( CLRC CNF); pResult1=RESULT0; pResult2=RESULT1; nNewConvert=0; *WDCR=0x6f; *WDKEY=0x5555; *WDKEY=0xaaaa; /* 关闭看门狗中断 */ *SCSR1=0x81fe; /* 打开所有外设,设置时钟频率为40MHz */ uWork=(*WSGR); /* 设置I/O等待状态为0 */ uWork=0x0fe3f; (*WSGR)=uWork; ADInit(); /* 初始化A/D相关设备 */ *IMR=3; /* 使能定时器中断 */ *IFR=0xffff; /* 清所有中断标志 */ asm( clrc INTM); /* 开中断 */ while ( 1 ) { if ( nNewConvert ) /* 如果保存标志置位,以下开始转换和保存转换结果 */ { nNewConvert=0; /* 清保存标志 */ uWork=(*pResul

文档评论(0)

tianma2015 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档