好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

汇编 定时器 dsp.doc

21页
  • 卖家[上传人]:mg****85
  • 文档编号:34413114
  • 上传时间:2018-02-24
  • 文档格式:DOC
  • 文档大小:400KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 汇编实验报告定时器一. 工作原理1.时钟部分1.1 C55x 时钟发生器的原理和配置方法TMS320VC5509A 的时钟发生器从 CLKIN 引脚输入,在内部修改这个信号(通过一个数字锁相环,PLL),来产生希望频率的输出时钟时钟发生器将这个输出时钟(即 CPU 时钟)送给 CPU、外设和其他C55 的内部模块也可以用可编程的时钟分频器对 CPU 时钟分频,在 CLKOUT 引脚上输出时钟发生器有一个时钟模式寄存器 CLKMD,用来控制和监视时钟发生器通过修改该寄存器可以触发两种主要的操作模式:1) 旁路模式PLL 被旁路掉,输出时钟的频率就等于输入时钟频率除以1、2、4因为 PLL 模块关闭,因此该模式可以用来降低功耗2)锁定模式输入时钟既可以乘以或除以一个系数来获得期望的输出频率,并且输入时钟相位与输入信号锁定本实验采用该模式2.定时器部分2.1 通用定时器介绍及其控制方法2.1.1 定时器的工作时钟 DSP 内部的 CPU 时钟,本实验采用该方式 引脚 TIN/TOUT 利用定时器控制寄存器(TCR)中的字段 FUNC 可以确定时钟源和 TIN/TOUT 引脚的功能2.1.2 控制方法介绍预定标计数寄存器(PSC)由输入时钟驱动,PSC 在每个输入时钟周期减 1;当其减到 0 时,TIM 减 1,当 TIM 减到 0,定时器向 CPU发送一个中断请求(TINT)或向 DMA 控制器发送同步事件。

      定时器发送中断信号或同步事件信号的频率可用下式计算:通过设置定时器控制寄存器(TCR)中的自动重装控制位 ARB,可使定时器工作于自动重装模式:当 TIM 减到 0,重新将周期寄存器(TDDR,PRD)的内容复制到计数寄存器(PSC,TIM)中,继续定时本实验的具体设置见后面寄存器设置部分2.2 定时器的使用 初始化定时器 停止/启动定时器 DSP 复位后定时器寄存器的值3.中断部分3.1 中断定义由硬件或软件驱动的信号,使 DSP 将当前的程序挂起,执行另一个称为中断服务子程序(ISR)的任务3.2 TMS320C55x 的中断系统C55x 支持 32 个 ISR有些 ISR 可以由软件或硬件触发,有些只能由软件触发3.3 DSP 处理中断的步骤(1)接收中断请求软件和硬件都要求 DSP 将当前程序挂起1PRD1TTIN入入(2)响应中断请求CPU 必须响应中断如果是可屏蔽中断,响应必须满足某些条件如果是不可屏蔽中断,则 CPU 立即响应3)准备进入中断服务子程序CPU 要执行的主要任务有: 完成当前指令的执行,并冲掉流水线上还未解码的指令 自动将某些必要的寄存器的值保存到数据堆栈和系统堆栈 从用户实现设置好的向量地址获取中断向量,该中断向量指向中断服务子程序(4)执行中断服务子程序。

      CPU 执行用户编写的 ISRISR 以一条中断返回指令结束,自动恢复步骤(3)中自动保存的寄存器值3.4 中断向量表4.汇编程序4.1 链接命令文件ISR 序 号 硬 件 中 断优 先 级 向 量 名 向 量 地 址 ISR 功 能 0 1( 最 高 ) RESTIV( IV0) IVPD:0h 复 位 ( 硬 件 或 软 件 ) 1 2 NMI( I1) IP:8h 硬 件 不 可 屏 蔽 中 断 ( NMI) 或 软 件 中 断 1 2 4 IV2 IVPD:10h 硬 件 或 软 件 中 断 3 6 I3 IP:18h 硬 件 或 软 件 中 断 4 7 IV4 IVPD:20h 硬 件 或 软 件 中 断 5 8 I5 IP:28h 硬 件 或 软 件 中 断 6 10 IV6 IVPD:30h 硬 件 或 软 件 中 断 7 1 I7 IP:38h 硬 件 或 软 件 中 断 8 12 IV8 IVPD:40h 硬 件 或 软 件 中 断 9 14 I9 IP:48h 硬 件 或 软 件 中 断 10 15 IV10 IVPD:50h 硬 件 或 软 件 中 断 1 16 I1 IP:58h 硬 件 或 软 件 中 断 12 18 IV12 IVPD:60h 硬 件 或 软 件 中 断 13 19 I13 IP:68h 硬 件 或 软 件 中 断 14 2 IV14 IVPD:70h 硬 件 或 软 件 中 断 15 23 I15 IP:78h 硬 件 或 软 件 中 断 16 5 IV16 IVPH:80h 硬 件 或 软 件 中 断 17 9 I17 IP:8h 硬 件 或 软 件 中 断 18 13 IV18 IVPH:90h 硬 件 或 软 件 中 断 19 17 I19 IP:98h 硬 件 或 软 件 中 断 20 20 IV20 IVPH:A0h 硬 件 或 软 件 中 断 21 21 I21 IP:8h 硬 件 或 软 件 中 断 2 24 IV2 IVPH:B0h 硬 件 或 软 件 中 断 23 25 I23 IP:8h 硬 件 或 软 件 中 断 24 3 BERIV(I24) IVPD:C0h 总 线 错 误 中 断 或 软 件 中 断 25 26 DLOGI(I25) IP:8h Dat Log中 断 或 软 件 中 断 26 27( 最 低 ) RTSIV(I26) IVPD:0h 实 时 操 作 系 统 中 断 或 软 件 中 断 27 — SI27 IP:8h 软 件 中 断 28 SIV28 IVPD:E0h 软 件 中 断 29 — SI29 IP:E8h 软 件 中 断 30 SIV30 IVPD:F0h 软 件 中 断 31 — SI31 IP:F8h 软 件 中 断 31 TMS320C55x 链接器有两个功能强大的指令,即 MEMORY 和SECTIONS。

      MEMORY 指令允许用户定义一个目标系统的存储器映射,可以命名存储器的各个部分,并且指定开始地址和大小SECTIONS 指令告诉链接器合成输入段为输出段,并且告诉链接器把这些输出段放在存储器的某个位置4.2 中断向量表及中断程序a) 程序中应包含中断向量表,VC5509A 默认向量表从程序区0 地址开始存放,根据IPVD 和IPVH 的值确定向量表的实际地址b) 向量表中每项为8 个字,存放一个跳转指令,跳转指令中的地址为相应服务程序入口地址第一个向量表的首项为复位向量,即CPU 复位操作完成后自动进入执行的程序入口c) 服务程序在服务操作完成后,清除相应中断标志,返回,完成一次中断服务 4.3 汇编源程序(见后)二. 寄存器配置1. 时钟模式寄存器(CLKMD),I/O 端口地址 0x1c00MOV #0x5467,PORT(#CLKMD);0101 0100 0110 0111工作在锁定模式下,输出时钟频率如下:PLLMULT/PLLDIV*输入频率=20*20M=400M;具体配置如下黑体部分: 位 字 段 说 明15 Rsvd 保留14 IAI退出 Idle 状态后,决定 PLL 是否重新锁定0 PLL 将使用与进入 Idle 状态之前相同的设置进行锁定1 PLL 将重新锁定过程13 IOB处理失锁0 时钟发生器不中断 PLL, PLL 继续输出时钟1 时钟发生器切换到旁路模式,重新开始 PLL 锁相过程12 TEST 必须保持为 011~7 PLL MULT 锁定模式下的 PLL 倍频值, 0~31(10100)6~5 PLL DIV 锁定模式下的 PLL 分频值, 0~3(01)4 PLL ENABLE使能或关闭 PLL0 关闭 PLL,进入旁路模式1 使能 PLL,进入锁定模式3~2 BYPASS DIV旁路下的分频值00 一分频01 二分频10 或 11 四分频1 BREAKLNPLL 失锁标志0 PLL 已经失锁1 锁定状态或有对 CLKMD 寄存器的写操作0 LOCK锁定模式标志0 时钟发生器处于旁路模式1 时钟发生器处于锁定模式2. 定时器包括 4 个寄存器2.1 定时器预定标寄存器 PRSCMOV #0x0002,PORT(#PRSC0);0000 0000 0000 0010位 字 段 数 值 说 明15~10 Rsvd — 保留9~6 PSC 0h~Fh 预定标计数寄存器5~4 Rsvd — 保留3~0 TDDR 0h~Fh 当 PSC 重新装入时,将 TDDR 的内容复制到 PSC 中2.2 主计数寄存器 TIMMOV #0x0000,PORT(#TIM0);0位 字 段 数 值 说 明15~0 TIM 0000h~FFFFh 主计数寄存器2.3 主周期寄存器 PRDMOV #0x1fff,PORT(#PRD0);0001 1111 1111 1111PRD0=0X1FFF;TDDR=0X0010;中断信号频率:内部时钟频率:400MTINT 频率=400M/(8M*5)=10hz;改变该寄存器的初始值,可以改变灯亮灭快慢。

      位 字 段 数 值 说 明15~0 PRD 0000h~FFFFh 主周期寄存器当 TIM 必须重新装入时,将 PRD 的内容复制到 TIM 中2.4 定时器控制寄存器 TCR设置定时器寄存器前,关闭定时器MOV #0x04f0,PORT(#TCR0);0000 0100 1111 0000设置完成后,开启定时器MOV #0x00e0,PORT(#TCR0);0000 0000 1110 0000具体配置如下黑体部分:位 字 段 数 值 说 明15 IDLEEN 01定时器的 Idle 使能位定时器不能进入 idle 状态如果 idle 状态寄存器中的 PERIS=1,定时器进入idle 状态14 INTEXT 01时钟源从内部切换到外部标志位定时器没有准备好使用外部时钟源定时器准备使用外部时钟源13 ERRTIM 01定时器错误标志没有监测到错误,或 ERRTIM 已被读取出错12~11 FUNCFUNC=00bFUNC=01bFUNC=10bFUNC=11b定时器工作模式选择位TIN/TOUT 为高阻态,时钟源是内部 CPU 时钟TIN/TOUT 为定时器输出,时钟源是内部 CPU 时钟TIN/TOUT 为通用输出,引脚电平反映的是DATOUT 位的值 TIN/TOUT 为定时器输入,时钟源是外部时钟10 TLB 01定时器装载位TIM、PSC 不重新装载将 PRD、TDDR 分别复制到 TIM、PSC 中9 SOFT 在调试中遇到断点时定时器的处理方法8 FREE7~6 PWID00011011定时器输出脉冲的宽度1 个 CPU 时钟周期2 个 CPU 时钟周期4 个 CPU 时钟周期8 个 CPU 时钟周期5 ARB 01自动重装控制位ARB 清 0每次 TIM 减为 0,PRD 装入 TIM 中,TDDR 装入 PSC 中4 TSS 01定时器停止状态位启动定时器停止定时器3 C/P 01定时器输出时钟/脉冲模式选择输出脉冲。

      脉冲宽度由 PWID 定义,极性由POLAR 定义输出时钟引脚上信号的占空比为 50%2 POLAR 01时钟输出极性位正极性负极性1 DATOUT 01当 TIN/TOUT 作为通用输出引脚,该位控制引脚上的电平低电平高电平0 Rsvd 0保留3.中断相关寄存器 定时器中断属于可屏蔽中断需要设置以下寄存器:因为采用定时器 0 中断,中断向量地址 0x20h;5000 系列 dsp 的中断向量可以重新定位但是它只能被重新定位 Page0 范围内的任何空间;(在 cmd 文件中给出)3.1 IVPD(dsp 向量的中断向量指针)3.2 IVPH(主机向量的中断向量指针)3.3 IER0(中断。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.