基于DSP的函数发生器及数据采集系统设计课程设计_第1页
基于DSP的函数发生器及数据采集系统设计课程设计_第2页
基于DSP的函数发生器及数据采集系统设计课程设计_第3页
基于DSP的函数发生器及数据采集系统设计课程设计_第4页
基于DSP的函数发生器及数据采集系统设计课程设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 1 课程设计(论文) 题 目 名 称 基于 dsp 的函数发生器及数据采集系统 课 程 名 称 dsp 原理与应用 学 生 姓 名 学 号 系 、专 业 信息工程系、通信工程 指 导 教 师 2010 年 11 月 11 日 摘要 在21世纪的今天,信号发生器已经广泛地应用于雷达应用,通信系统的仿真 与测试等国防、科研和工业领域。而随着社会的不断进步和科研的不断深入,对信 号发生器的波形可编程性、波形的精度与稳定性等性能提出了更高的要求。基于 dsp的信号发生器正是以其编程的高度灵活性,波形的高精度与高稳定性等特点而 脱颖而出,具有极大的应用价值和广泛的应用前景。 该函数信号发生器主要由t

2、ms320c5410和tlc320ad50c两大部分组成。 在dsp芯片上完成对波形的编程,通过多通道缓冲串口向tlc320ad50c(数模 转换器)发送波形数据,通过tlc320ad50c的插值滤波等措施产生模拟波行输 出。 该函数信号发生器的硬件设计中tms3205410和tlc320ad50c的连接采 用spi协议,tlc320ad50c作为spi主器件,提供帧同步和时钟信号,多通道 缓冲串口作为spi从器件。 通过软硬件的联合调试最终实现了方波、三角波、锯齿波和正弦波等波形的产 生,并成功的实现了其波形的幅度和频率可调性。 关键词:函数信号发生器,tms3205410,tlc320ad

3、50c, spi协议 i i abstract nowadays in the 21st century, the signal generator has been widely used in national defense, scientific research and industrial fields such as radar applications, the simulation and testing of communication systems. with the developing of society and the deepening of scientif

4、ic research, the waveform of the programmable and the accuracy and stability properties signal generator is needed for higher improved than before. dsp-based signal generator which is famous for its highly flexibility in its programming, highly-precision waveform characteristics with highly stabilit

5、y and come to the fore,has a great value and extensive application prospects in future. the signal generator is composed of two major parts,the tms320c5410 and tlc320ad50c. the waveform is programmed on the dsp chips ,then the data is sent through mcbsp to tlc320ad50c (dac),and with the help of the

6、interpolation filtering of the tlc320ad50c, the analog wave line output is formed. the signal generator hardware design ,the connection of tms3205410 and tlc320ad50c is based on spi protocol.tlc320ad50c is as the spi master device, provides frame synchronization and clock signals, mcbsp is as the sp

7、i from the device. the generated of waveforms such as square wave, triangle wave, sawtooth and sine wave and so on is finally come true ,and the amplitude and frequency adjustable is successfully realization ,with the joint commissioning of hardware and software. key words: signal generator, tms3205

8、410, tlc320ad50c, mcbsp, spi protocol 目录 摘要i abstractii 第 1 章 前言1 第 2 章 发生器简介2 第 3 章 总体设计方案3 3.1 cpu 单元4 3.2 硬件电路设计7 3.3 芯片简介7 3.4 接口设计8 3.5 程序设计9 第 4 章 调试及仿真12 第 5 章 设计总结14 参考文献15 附录16 1 1 第 1 章 前言 在现在电子学的各个领域,常常需要高精度且频率可方便调节的信号发生器。 各种波形曲线均可以用三角函数方程来表示。能够产生多种波形,如三角形,锯齿 形,矩形波(含方波) 、正弦波的电路被称为函数信号发生器。

9、函数信号发生器在电 路实验和设备检测中具有十分广泛的用途。函数信号发生器的实现方法通常有以下 几种: (1)用分立元件组成的函数发生器:通常是单函数发生器且频率不高,其工 作很不稳定,不易调试。 (2)可以由晶体管,运放ic等通用器件制作,更多的则是用专门的函数信 号发生器ic产生。早期的函数信号发生器ic,如 l8038、ba205、xr2207/2209等,它们的功能较少,精度不高,频率上限只有 300khz,无法产生更高的信号,调节方式也不够灵活,频率和占空比不能独立调 节,二者相互影响。 (3)利用单片机集成芯片的函数信号发生器:能产生多种波形,达到较高的 频率,且易于调试,鉴于此,美

10、国马克西姆公司开发了新一代函数信号发生器 icmax038,它克服了(2)中芯片的缺点,可以达到更高的技术指标,是上述芯 片望尘莫及的。max038频率高,精度好,因此它被称为高频精密函数信号发生 器ic。在锁相环,压控振荡器,频率合成器,脉宽调制器等电路的设计, max038都是优选的器件。 (4)利用专用直接数字合成dds芯片函数发生器:能够产生任意波形并达 到很高的频率。但成本较高。 综合分析以上四种实现方法的性价比,我们决定采用单片集成芯片ax038来 设计函数发生器。频率越高、产生波形种类越多的发生器性能越好,但器件成本和 技术要求也大大提高,因此在满足工作要求的前提下,性价比高的发

11、生器是我们的 首选。max038芯片是一种高频精密的函数发生器,可产生三角波、锯齿波、正 弦波、方波及脉冲波,且频率及占空比的控制可独立进行。 lin管脚电流范围在 10400a时电路获得最佳工作性能。输出波形的选择由逻辑地址引脚a0和a1 的组合来决定:a1a010或11时,输出正弦波;a1a000时,输出方波; a1a001时输出三角波。波形切换可在03s内完成,但输出波形有05s 的延迟时间。输出频率由lin引脚的电流、sosc引脚的对地电容量和fadj的 电压来决定。 2 2 第 2 章 发生器简介 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。 凡是产生测试信号

12、的仪器,统称为信号源,也称为信号发生器,它用于产生被测电 路所需特定参数的电测试信号。 函数发生器是使用最广的通用信号源,提供正弦波、锯齿波、方波、脉冲波等 波形,有的还同时具有调制和扫描功能。函数波形发生器在设计上分为模拟式和数 字合成式。众所周知,数字合成式函数信号源(dds)无论就频率、幅度乃至信号 的信噪比(s/n)均优于模拟式,其锁相环(pll)的设计让输出信号不仅是频率 精准,而且相位抖动(phase jitter)及频率漂移均能达到相当稳定的状态,但数字 式信号源中,数字电路与模拟电路之间的干扰始终难以有效克服,也造成在小信号 的输出上不如模拟式的函数信号发生器,如今市场上的大部

13、分函数信号发生器均为 dds信号源。 任意波形发生器,是一种特殊的信号源,不仅具有一般信号源波形生成能力, 而且可以仿真实际电路测试中需要的任意波形。在我们实际的电路的运行中,由于 各种干扰和响应的存在,实际电路往往存在各种缺陷信号和瞬变信号,如果在设计 之初没有考虑这些情况,有的将会产生灾难性后果。任意波发生器可以帮您完成实 验,仿真实际电路,对您的设计进行全面的测试。 由于任意波形发生往往依赖计算机通讯输出波形数据。在计算机传输中,通过 专用的波形编辑软件生成波形,有利于扩充仪器的能力,更进一步仿真实验。另外, 内置一定数量的非易失性存储器,随机存取编辑波形,有利于参考对比,或通过随 机接

14、口通讯传输到计算机作更进一步分析与处理。有些任意波形发生器有波形下载 功能,在作一些麻烦费用高或风险性大的实验时,通过数字示波器等仪器把波形实 时记录下来,然后通过计算机接口传输到信号源,直接下载到设计电路,更进一步 实验验证。 由于模拟技术实现的信号发生器要求大量的硬件来做支撑,所以它的复杂度会 随着波形的复杂度增加随之不成比例增加,同时由模拟电路构成的信号发生器不但 参数的准确度你难以保证,而且体积和功耗都很大;而由数字电路构成的信号发生 器,体积较大,价格较贵;加上人们对特殊信号需求的增加,对波形的精度、稳定 性、幅度和频率的可调性要求的增加,单纯的模拟和数字电路构成的信号发生器已 经难

15、以满足这些要求,在这中情况下,基于dsp的信号发生器应运而生。 3 3 第 3 章 总体设计方案 利用matlab或者c语言离线计算信号原始数据(根据一定的函数:如通 用三角波、方波、正弦波或任意波) ,将原始数据以头文件的形式或*.dat(16进制) 文件读入给dsp,发出波形。将该波形经自制放大器(跟随或放大)电路,再输入 给实验箱a/d端子,可以进行数据采集,采集的数据可以存储成文件形式,再次利 matlab或c语言进行谱分析等。 dsp 控制器 d/a 转换器 a/d 转换器 图 3.1 系统框图 dsp控制模块作用为将读入的波形数据传送给d/a转换器发出波形,并且通 过a/d转换器对

16、数据采集,将采集的数据存储成文件的形式。d/a转换器作用是 进行数模转换,a/d转换器的作用为进行模数转换。 整个实验采用el-dsp-expii教学实验系统,el-dsp-expii教学实验系 统属于一种综合的教学实验系统,该系统采用双cpu设计,实现了dsp的多处理 器协调工作。两个dsp通过hpi口并行连接, cpu1可以通过 hpi 主机接口访 问cpu2的存储空间。该系统采用模块化分离式结构,使用灵活方便二次开发。可 根据自己的需求选用不同类型的cpu适配板,其公司所有cpu适配板是完全兼 容的,用户在不需要改变任何配置情况下,更换cpu适配板即可作ti公司的不同 类型的dsp的相关

17、试验。除此之外,在实验板上有丰富的外围扩展资源(数字、 模拟信号发生器,数字量io扩展,语音codec编解码、控制对象、人机接口等 单元) ,可以完成dsp基础实验、算法实验、控制对象实验和编解码通信试验。 4 4 cpu1cpu2 语音编码解码 模块 存续器扩展 模块 信号源 模块 a/d 模块 lcd 模块 数字量 输入、输出 模块 cpld d/a 模块 电源 模块 温控 模块 直流电机 模块 步进电机 模块 键盘 /led 模块 hpi 图 3.2 el-dsp-expii 教学实验系统功能框图 3.1 cpu 单元 cpu单元包括cpu1、cpu2两块cpu板,用户可根据需要选择不同

18、种类 的cpu板。板上除cpu之外还包括以下单元: 3.1.1 cpu 模式选择 cpu通常情况下可以根据用户需求工作在不同的模式下,主要用mp/error! 的电平来决定。当mp/error!为高电平时,dsp工作在微处理器模式,当 mp/error!为低电平时。dsp工作在为计算机方式。在不同模式下存储器映射表 有所不同。详细信息请查阅相应的数据手册。 3.1.2 电源模块 在cpu板上由于tms320vc54x数字信号处理器内核采用3.3v和1.8v 供电,因此需要将通用的5v转换成3.3v和1.8v。为中央处理器提供内部电源。 转换电路如图所示: c18 dgnd c20 c23 3.

19、3v1.8v c22c21 vcc nc 1 nc 2 1gnd 3 1en 4 1in 5 1in 6 nc 7 nc 8 2gnd 9 2en 10 2in 11 2in 12 nc 13 nc 14 nc 15 nc 16 2out 17 2out 18 2 sense 19 nc 20 nc 21 2 reset 22 1out 23 1out 24 1fb/ sense 25 nc 26 nc 27 1 reset 28 u3 c19 图 3.3 转换电路图 5 5 3.1.3 电平转换 由于数字信号处理其内部采用3.3v和1.8v供电,而且其输入输出接口电平 为3.3v,对于数字量

20、输出而言完全可以和5v电平兼容。但对于数字量输入而言, 由于其内部是3.3v,因此不能将中央处理器的输出口直接和外围扩展的5v器件相 连,必须加入电平转换期间进行电平转换和信号隔离。典型的就是数据线,必须进 行隔离,对于其他的涉及到的输入信号也要进行相应的转换。在cpu板上, u2(lvth16245)完成了该项功能。 3.1.4 复位电路以及时钟单元 复位电路主要包括上电复位和硬件手动复位,每次复位要求至少要有8到10 个系统时钟。因此要求适当的配置复位电路rc网络。时钟电源主要利用数字信号 处理器内部晶振源,并通过外部锁相环控制电路,选择适当倍频倍数,为cpu内 部提供系统时钟。 +3.3

21、v s1 r4 100 k c1 7 4.7uf reset r15 1k +3.3v 1 2 u3a 7414 3 4 u3b 7414 施密特触发器 d0 led 图 3.4 复位电路图 图 3.5 复位电路参数 6 6 3.1.5 语音处理单元 语音codec采用tlc320ad50芯片。该芯片采用sigma-delta技术提供 高精度低速信号变换,有两个串行同步变换通道、d/a转换前的差补滤波器和a/d 变换后的滤波器。其他部分提供片上时序和控制功能。sigma-delta结构可以实现 高精度低速的数模模数转换。芯片的各种应用软件配置可以通过串口来编程实现。 主要包括:复位、节电模式、

22、通信协议、串行时钟速率、信号采样速率、增益控制 和测试模式。最大采样速率22.05kb/s,采样精度16bit。 语音处理单元由语音输入模块、tlc320ad50模块、输出功率模块组成。语 音输入模块采用偏置和差动放大技术,并经过滤波和处理后将输入到语音编解码芯 片tlv320ad50,前端输入的电压范围为-2.5v-+2.5v。经过变换后输入到 ad50的芯片的差动信号范围为0-5v。tlc320ad50c作为主方式,通过 dsp的mcbsp0口进行通信。音频信号通过d/a转换后输出,由于 tlc320ad50输出的是差动信号,因此首先经过差动放大,然后可以推动功率为 0.4w的板载扬声器,

23、也可以接耳机输出。 音频 输入 前端 处理 ad5 0 dsp 音频 输出 功率 放大 mcbsp 图 3.6 语音处理单元原理框图 语音处理单元接口说明: j14:音频输入端子,可输入cd、声卡、mp3、麦克风等语音信号。 j15:音频输出端子,可接耳机、音箱。 j3: 语音处理单元输入信号接口 j1: 语音处理单元输出信号接口 j6: 地 语音处理单元拨码开关说明: s1: 拨码开关: 7 7 码位备注 1on:帧同步脉冲接通,缺省设置; off: 帧同步 脉冲关断; 2on:串口时钟接通,缺省设置;off: 缓冲串口时 钟关断; s2:拨码开关 码位备注 1on:直流量输入,off:交流

24、量输入,缺省设置 2on:扬声器输出off:扬声器关闭,缺省设置 语音处理单元可调电位器说明: “输入调节”: 逆时针音量变大 顺时针音量变小 “输出调节”: 逆时针音量变大 顺时针音量变小 注:语音处理单元的二号孔in和out通过导线的连接,可以为温控单元, 信号源单元提供a/d,d/a转换的功能。 3.2 硬件电路设计 在系统中,为了应用dsp卓越的数字信号处理能力,我们必须先将模拟信号 进行数字化(a/d转换) ,再对采样数据进行相应的算法处理,最后经过数字信号 模拟化(d/a转换)后输出。在dsp系统中的关键问题是怎样十分容易和高效地 实现这些转换,因此必然涉及到接口电路的设计。实验采

25、用一种单片内集成了 adc通道和dac通道的模拟接口电路tlc320ad50c(以下简称ad50)与 tms320vc5402缓冲串口的接口实现设计,然后,基于这种接口电路的硬件设计, 通过软件编程实现函数信号发生及数据采集。 3.3 芯片简介 tms320vc5402是ti公司生产的从属于tms320c54x系列的一个工作灵活、 高速、具有较高性价比、低功耗的16位定点通用dsp芯片。其主要特点包括:采 用改进的哈佛结构,1条程序总线(pb) ,3条数据总线(cb、db、eb)和4条 8 8 地址总线(pab,cab,dab,eab) ,带有专用硬件逻辑cpu,片内存储器,片 内外围专用的指

26、令集,专用的汇编语言工具等。tms320vc5402含4k字节的片 内rom和16k字节的双存取ram,1个hpi(host port interface)接口,2个 多通道缓冲单口mcbsp(multi-channel buffered serial port) ,单周期指令执行 时间10ns,双电源(1.8v和3.3v)供电,带有符合ieee1149.1标准的jtag边 界扫描仿真逻辑。 ad50是ti公司生产的一个16位、音频范围(采样频率为2k22.05khz) 、 内含抗混叠滤波器和重构滤波器的模拟接口芯片,它有一个能与许多dsp芯片相连 的同步串行通信接口。ad50c片内还包括一个

27、定时器(调整采样率和帧同步延时) 和控制器(调整编程放大增益,锁相环pll,主从模式) 。ad50有28脚的塑料 sop封装(带dw后缀)和48脚的塑料扁平封装(带pt后缀) ,体积较小,适应于 便携设备。ad50的工作温度范围是070,单一5v电源供电或5v和3.3v 联合供电,工作时的最大功耗为120 mw。 3.4 接口设计 图 3.7 ad50 的内部结构简图 图1最上面第一通道为模拟信号输入监控通道,第二通道为模拟信号转化为数 字信号(a/d)通道,第三通道为数字信号转化为模拟信号(d/a)通道,最下面一 路是ad50的工作频率和采样频率控制通道。本文所述的输入时钟(mclk)为 8

28、.192mhz,a/d与d/a的采样频率为mclk/(128*n)hz(n为ad50c 的第4个寄存器46位所设)。 9 9 ad50与dsp的引脚连接方式 图 3.8 系统硬件连线图 ad50与tms320vc5402是以spi方式连接的。ad50工作在主机模式 (m/s=1) ,提供sclk(数据移位时钟)和fs(帧同步脉冲) 。 tms320vc5402工作于spi方式的从机模式,bclkx1和bfsx1为输入引脚, 在接数据和发数据时都是利用外界时钟和移位脉冲。 3.5 程序设计 3.5.1 程序流程图 开始 dsp 串口1 初始化 dsp中断控制设置 复位 ad50c 给寄存器 1

29、编程 给寄存器 2 编程 给寄存器 4 编程 给寄存器 3 编程 开始 发送 d/a转换数据接 收 a/d转换数据 结束 图 3.9 软件流程图 3.5.2 关键代码 初始化dsp串口 stm spcr1, mcbsp1_spsa ; 将spcr1对应的子地址放到子地址寄存器 10 10 spr中 stm #0000h, mcbsp1_spsd ; 将#0000h加载到spcr1中,使接收中断由帧 有效信号触发 stm spcr2, mcbsp1_spsa ; 将spcr2对应的子地址放到子地址寄存器 spr中 stm #0000h, mcbsp1_spsd ;帧同步发生器复位,发送器复位 s

30、tm rcr1, mcbsp1_spsa ; 将rcr1对应的子地址放到子地址寄存器spr stm #0040h, mcbsp1_spsd ; 接收帧长度16位 stm rcr2, mcbsp1_spsa ; 将rcr2对应的子地址放到子地址寄存器spr stm #0040h, mcbsp1_spsd ; 接收为单相,每帧16位 stm xcr1, mcbsp1_spsa ; 将xcr1对应的子地址放到子地址寄存器spr stm #0040h, mcbsp1_spsd ; 接收每帧16位 stm xcr2, mcbsp1_spsa ; 将xcr2对应的子地址放到子地址寄存器spr stm #0

31、040h, mcbsp1_spsd ; 发送为单相,每帧16位 stm pcr, mcbsp1_spsa ; 将pcr对应的子地址放到子地址寄存器spr stm #000eh, mcbsp1_spsd ;工作于从模式 初始化ad50c rsbx xf ;复位ad50 call wait nop stm spcr1, mcbsp1_spsa ;允许mcbsp1接收数据 ldm mcbsp1_spsd,a or #0 x0001, a stlm a, mcbsp1_spsd stm spcr2, mcbsp1_spsa ; 允许mcbsp1发送数据 ldm mcbsp1_spsd,a or #0

32、x0001, a stlm a, mcbsp1_spsd ld #0h, dp ; 数据放到第0页 rpt #23 nop 11 11 ssbx xf ;使ad50开始工作 nop nop call iftxrdy1 ;初始化ad50寄存器 stm #0 x0001 ; cbsp1_dxr1;要求辅助通信 nop call iftxrdy1 stm #0100h, mcbsp1_dxr1;写00h到寄存器1,15+1模式 call iftxrdy1 stm #0000h, mcbsp1_dxr1 nop nop rpt #20h nop call iftxrdy1 stm #0 x0001,

33、mcbsp1_dxr1;要求辅助通信 call iftxrdy1 stm #0200h, mcbsp1_dxr1;写00h到寄存器2 call iftxrdy1 stm #0000h, mcbsp1_dxr1 call iftxrdy1 stm #0 x0001, mcbsp1_dxr1;要求辅助通信 call iftxrdy1 stm #0300h, mcbsp1_dxr1;写00h到寄存器3 call iftxrdy1 stm #0000h, mcbsp1_dxr1 call iftxrdy1 stm #0 x0001, mcbsp1_dxr1;要求辅助通信 stm #0490h, mcb

34、sp1_dxr1;写00h到寄存器4;不使用内部pll;采样 频率为64k call iftxrdy1 12 12 stm #0000h, mcbsp1_dxr1 第 4 章 调试及仿真 1语音处理单元”的拨码开关设置: s1:拨码开关 码位备注 1on:帧同步脉冲接通 2on:串口时钟接通 s2: 拨码开关 码位备注 1off:交流量输入 2off:扬声器关闭 2用音频线连接“语音模块”的j14和j15 3运行ccs软件,加载程序; 4加载实验数据file/data/load 分别装载sin.dat和其它波形数据 5按f5运行程序,用示波器检测“语音处理单元”的2号孔接口“j1”输 出一个正

35、弦波; 图 4.1 正弦波图 13 13 图 4.2 方波图 图 4.3 三角波图 6查看数据存储器中的内容变化 加载实验数据file/data/load ,装载sin.dat,数据存储器内容为: 图 4.4 采集前时域波形图 对数据进行采集,数据存储器内容为: 14 14 图 4.5 采集后时域波形图 第 5 章 设计总结 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是 远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能 真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程 中遇到问题,可以说得是困难重重,难免会遇到过各种各样的

36、问题,同时在设计的 过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够 牢固。 通过这次课程设计,加强了我们动手、思考和解决问题的能力。同时我认为我 们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协 作的精神。某个人的离群都可能导致导致整项工作的失败。只有一个人知道原理是 远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失 败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们 这一点,这也是非常宝贵的。 对我而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经 历是一份拥有。这次课程设计必将成为

37、我人生旅途上一个非常美好的回忆! 15 15 参考文献 1 支长义等.dsp 原理及开发应用.北京:北京航空航天大学出版社,2006. 2 清源科技.tms320c54xdsp 硬件开发教程.北京:机械工业出版社,2003. 3 彭启琮等.dsp 技术的发展与应用.北京:高等教育出版社,2002. 4 苏涛等.dsp 实用技术.西安:西安电子科技大学出版社,2002. 5 刘益成.tms320c54xdsp 应用程序设计与开发.北京航空航天大学出版社,2002. 6 赵红怡.dsp 技术与应用实例(第二版).北京电子工业出版社,2008. 7 周霖.dsp 通信工程技术应用.北京国防工业出版社

38、,2004. 8 汪安民等.dsp 应用开发使用子程序.北京人民邮电出版社,2005. 9 张雄伟等.dsp 芯片的原理与开发应用.北京电子工业出版社,2000. 16 16 附录 源程序:源程序: /*you must load the data file wave.dat before your running the program!*/ extern void initc5402(void); extern void openmcbsp(void); extern void closemcbsp(void); extern void writead50(void); extern vo

39、id readad50(void); /* * main function program * void main(void) initc5402(); /* initialize c5402 dsp */ openmcbsp(); while (1) wrandread(); /* mainloop */ .global _initc5402 .global _openmcbsp .global _closemcbsp .global _wrandread .include mmregs.h _initc5402: nop ld #0, dp ; reset datapage pointer

40、 17 17 stm #0, clkmd ; software setting of dsp clock stm #0, clkmd ; (to divider mode before setting) tststatu1: ldm clkmd, a and #01b, a ;poll status bit bc tststatu1, aneq stm #0 xf7ff, clkmd * stm #0 x4007, clkmd ; set c5402 dsp clock to 100mhz ;(based on dsk crystal at 20mhz) * configure c5402 s

41、ystem registers * stm #0 x2000, swwsr ; 2 wait cycle for io space 0 wait cycle for data set wait states for bank switch: ; 64k mem bank, extra 0 cycle between ; consecutive prog/data read ;stm #0 x1800,st0 ; st0 at default setting ;stm #0 x2900,st1 ; st1 at default setting(note:intx=1) stm #0 x00a0,

42、pmst ; mc mode stop onchip timer0 stm #0 x0010, tcr1 ; stop onchip timer1 ; timer0 is used as main loop timer ;stm #2499, prd ; timer0 rate=cpuclk/1/(prd+1) ; =40m/2500=16khz * stm #6249, prd ; if cpu at 100m/6250=16khz * initialize mcbsp1 registers * stm spcr1, mcbsp1_spsa ; register subaddr of spc

43、r1 stm #0000h, mcbsp1_spsd ; mcbsp1 recv = leftjustify ; rint generated by frame sync stm spcr2, mcbsp1_spsa ; register subaddr for spcr2 ; xint generated by frame sync 18 18 stm #0000h, mcbsp1_spsd ; mcbsp1 tx = free(clock stops ; to run after sw breakpoint stm rcr1, mcbsp1_spsa ; register subaddr

44、of rcr1 stm #0040h, mcbsp1_spsd ; recv frame1 dlength = 16 bits stm rcr2, mcbsp1_spsa ; register subaddr of rcr2 stm #0040h, mcbsp1_spsd ; recv phase = 1 ; ret frame2 dlength = 16bits stm xcr1, mcbsp1_spsa ; register subaddr of xcr1 stm #0040h, mcbsp1_spsd ; set the same as recv stm xcr2, mcbsp1_sps

45、a ; register subaddr of xcr2 stm #0040h, mcbsp1_spsd ; set the same as recv stm pcr, mcbsp1_spsa ; register subaddress of pcr stm #000eh, mcbsp1_spsd ; clk and frame from external (slave) ; fs at pulsemode(00) * finish dsp initialization * stm #0 x0000, imr ; disable peripheral interrupts stm #0 xff

46、ff, ifr ; clear the intrupts flags ret ; return to main nop nop * waiting for mcbsp0 rx finished * ifrxrdy1: nop stm spcr1, mcbsp1_spsa ; enable mcbsp1 rx ldm mcbsp1_spsd, a and #0002h, a ; mask rrdy bit bc ifrxrdy1, aeq ; keep checking nop nop ret ; return nop 19 19 nop * waiting for mcbsp0 tx fini

47、shed * iftxrdy1: nop stm spcr2, mcbsp1_spsa ; enable mcbsp1 tx ldm mcbsp1_spsd, a and #0002h, a ; mask trdy bit bc iftxrdy1, aeq ; keep checking nop nop ret ; return nop nop * * _openmcbsp: rsbx xf call wait nop stm spcr1, mcbsp1_spsa ; enable mcbsp0 rx for adc data in ldm mcbsp1_spsd,a or #0 x0001,

48、 a stlm a, mcbsp1_spsd stm spcr2, mcbsp1_spsa ; enable mcbsp0 tx for dtmf out ldm mcbsp1_spsd,a or #0 x0001, a stlm a, mcbsp1_spsd ld #0h, dp ; load data page 0 rpt #23 nop ssbx xf 20 20 nop nop ;call iftxrdy1 ;stm #0 x0101, mcbsp1_dxr1 ;call iftxrdy1 ;stm #0 x0208, mcbsp1_dxr1 ;rsbxxf ; nop ;nop call iftxrdy1 stm #0 x0001, mcbsp1_dxr1;request seco

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论