DSP第四章TMS320C54x定时器/计数器

合集下载

第4章TMS320C54XDSP指令系统10PPT课件

第4章TMS320C54XDSP指令系统10PPT课件
56
57
中断指令同样可以改变程序指针PC的值,使程序从一个地址跳转 到另一个地址执行。但与调用指令一样,DSP在执行完中断服务程序 后要返回发生中断的地方继续执行原来的程序。当发生中断时,DSP 会置INTM为1,屏蔽所有可屏蔽中断,并在中断标志寄存器IFR中设 置相应的中断标志。
INTR指令使ST1的INTM位(bit11)置1关中断
14
算术运算类指令
’c54x的算术运算指令丰富,且运算能力强大。算术运 算指令用于完成加减乘除等算术运算。按照功能可将算术运算 类指令分为7组:
(1)加法指令(Add) (2)减法指令(Subtract) (3)乘法指令(Multiply) (4)乘加指令(Multiply-accumulate) (5)乘减指令(Multiply-subtract) (6)双字指令(32比特操作数) (7)专用指令(Application-specific)
25
举例:应用 SUBC DATA, A 计算( 8/2)
................................
stm #1001h , AR3 stm #1002h , AR4 ld #20h , DP st #0002h , 00h ld #0008h , A
rpt #15 subc 00h, A stl A,*AR3
;将相减的结果(高16位) ;存入1063地址单元
23
24
利用SUBC实现除法运算
在‘C54X中没有提供专门的除法指令, 一般有两种方法来完成除法。
一种是用乘法来代替,除以某个数相当于乘以其倒 数,所以先求出其倒数,然后相乘。这种方法适用于 除以一个常数。
另一种方法是使用SUBC(条件移位减法)指令, 重复16次减法操作完成一次除法运算。

TMS320C54xDSP(精)知识分享

TMS320C54xDSP(精)知识分享

T M S320C54x D S P(精)TMS320C54x DSP CPU与外设第一章综述1 总线结构C54x包括8条16比特宽度的总线,其中:●一条程序总线(PB)●三条数据总线(CB、DB、EB)●四条地址总线(PAB、CAB、DAB、EAB)2CPUC54x的CPU结构包括:●40比特的ALU,其输入来自16比特立即数、16比特来自数据存储器的数据、暂时存储器、T中的16比特数、数据存储器中两个16比特字、数据存储器中32比特字、累加器中40比特字。

●2个40比特的累加器,分为三个部分,保护位(39-32比特)、高位字(31-16比特)、低位字(15-0比特)。

●桶型移位器,可产生0到31比特的左移或0到16比特的右移。

●17×17比特的乘法器●40比特的加法器●比较选择和存储单元CSSU●数据地址产生器DAGEN●程序地址产生器PAGEN3外设C54x包括:●通用I/O引脚,XF和BIO●定时器●PLL时钟产生器●HPI口,8比特或16比特●同步串口●带缓存串口,BSP●多路带缓存串口,McBSP●时分复用串口,TDM●可编程等待状态产生器●可编程bank-switching模块●外部总线接口●IEEE1149.1标准JTAG口第二章存储器一般而言,C54x的存储空间可达192K16比特字,64K程序空间,64K数据空间,64KI/O空间。

依赖其并行的工艺特性和片上RAM双向访问的性能,在一个机器周期内,C54x可以执行4条并行并行存储器操作:取指令,两操作数读,一操作数写。

使用片内存储器有三个优点:高速执行(不需要等待),低开销,低功耗。

1 存储空间分配图(以C549为例)复位后,中断矢量表位于程序区FF80H 位置,可重新定位于程序空间任何一个128字的页面(其地址高9比特即页号由PMST 中IPTR 确定)。

2 程序存储区C54x 有片内ROM 、DARAM 、SARAM ,这些区域可以通过软件配置到程序空间。

TMS320C54x系列DSP概述

TMS320C54x系列DSP概述

第一章TMS320C54x系列DSP概述1.1DSP芯片概述1.什么是DSP芯片2.DSP芯片的基本结构1.2TMS320C54x系列DSP的结构和特点1.2.1TMS320C54x系列DSP的概述1.2.2 TMS320C54x系列DSP的特点.1.2.3 TMS320C54x系列DSP的内部硬件结构1.3 总线结构1.4 CPU状态和控制寄存器1.4.1 状态寄存器ST0和ST11.4.2 处理器工作模式状态(PMST)寄存器1.5 算数逻辑单元(ALU)1.5.1 ALU的输入1.5.2 溢出处理1.5.3 进位位1.5.4 双16位模式1.6 累加器A和B1.6.1 保存累加器的内容1.6.2 累加器移位和循环操作1.6.3 饱和处理累加器内容1.6.4 专用指令1.7 桶式移位器1.8 乘法器/加法器单元1.8.1 乘法器的输入源1.8.2 乘法/加法(MAC)指令1.8.3 MAC和MAS乘法运算的饱和处理1.9 比较、选择和存储单元1.10 指数编码器第二章存储器和I/O空间操作TMS320C54x DSP存储器概述存储器空间程序存储器程序存储器的可配置性片内ROM的组织程序存储器地址映射和片内ROM内容片内ROM的代码内容和映射扩展程序存储器数据存储器数据存储器的可配置性片内RAM的组织存储器映射寄存器I/O空间及其访问第三章寻址方式和程序控制3.1立即寻址3.2绝对寻址3.2.1数据存储器地址(dmad)寻址3.2.2程序存储器地址(pmad)寻址3.2.3端口地址(PA)寻址3.2.4*(lk)寻址3.3累加器寻址3.4直接寻址3.4.1基于DP的直接寻址3.4.2基于SP的直接寻址3.5间接寻址3.5.1单操作数寻址3.5.2ARAU和地址产生操作3.5.3单操作数地址的修改1.增加/减少地址(MOD=0、1、2或3)2.偏移地址修改(MOD=12或13)3.变址地址修改(MOD=5或6)4.循环地址修改(MOD=8、9、10、11或14)5.位反向寻址(MOD=4或7)3.5.4双操作数寻址3.5.5修正(ARP)模式3.6存储器映射寄存器寻址3.7堆栈寻址3.8数据类型3.9产生程序存储器地址3.10程序计数器(PC)3.11程序控制3.11.1分支转移1. 无条件分支转移2. 条件分支转移3. 远分支转移3.11.2 调用1.无条件调用2.条件调用3.远调用3.11.3 返回1.无条件返回2.条件返回3.远返回3.11.4 条件操作1.使用多个条件2.条件执行(XC)指令3.条件存储指令3.11.5 重复单条指令3.11.6 重复一个指令快3.12 复位操作3.13 TMS320C54x DSP的中断系统3.13.1 TMS320C54x DSP中断系统概述1. 中断分类2. 处理中断的步骤3.13.2 中断标志寄存器(IFR)3.13.3 中断屏蔽存储器(IMR)3.13.4 接收中断请求3.13.5 应答中断3.13.6 执行中断服务程序(ISR)3.13.7 保存中断上下文3.13.8 中断等待时间3.13.9 中断操作流程3.13.10 重新映射中断向量地址3.13.11 中断和中断向量表3.14 节电模式3.14.1 IDLE1模式3.14.2 IDLE2模式3.14.3 IDLE3模式3.14.4 保持(Hold)模式3.14.5 其他节电性能第四章流水线4.1流水线操作4.1.1 流水线的分支转移指令1. 分支转移指令B2. 延时分支转移指令BD4.1.2 流水线中的调用指令1. 调用指令CALL和CALLD2. 中断指令INTR4.1.3 流水线中的返回指令4.1.4 流水线中的条件执行4.1.5 流水线中的条件调用和分支转移1. 条件调用2. 条件分支转移4.2 中断和流水线4.3 双访问存储器和流水线4.3.1 解决取指和读操作数之间的冲突4.3.2 解决写操作数和读双操作数之间的冲突4.3.3 解决写操作数、写操作数和读双操作数的冲突4.4 单访问存储器和流水线4.5 流水线等待4.5.1 访问存储器映射寄存器的推荐指令4.5.2 更新ARx、BK或SP-解决冲突第五章汇编程序设计应用软件开发流程和工具COFF文件概述COFF文件的基本单元-段汇编器对段的处理1.未初始化段2.初始化的段3.自定义段4.子段(Subsections)5.段程序计数器6.使用段伪指令的简单实例链接器对段的处理重新定位运行时重新定位加载程序COFF文件中的符号1.外部符号2.符号表汇编语言程序格式汇编程序格式1.标号区2.助记符指令域3.代数指令域4.注释汇编语言的数据格式1.常数2.符号表达式1.算术操作符2.表达式上溢和下溢3.有效定义的表达式4.条件表达式5.可重定位的符号和合法表达式5.3.4 内置函数5.3.5 加载值到扩展程序存储器5.4 汇编伪指令5.4.1 定义段的伪指令5.4.2 初始化常数的伪指令5.4.3 对准段程序计数器的伪指令5.4.4 格式化输出清单文件的伪指令5.4.5 引用其他文件的伪指令5.4.6 条件汇编伪指令5.4.7 汇编时符号伪指令5.4.8 混和伪指令5.4.9 常用伪指令及其语法格式5.5 程序汇编5.5.1 运行汇编程序5.5.2 条件汇编5.5.3 列表文件5.5.4 交叉引用清单5.6 程序链接5.6.1 链接器的调用5.6.2 链接器的选项5.6.3 链接器命令文件(.cmd文件)5.7 编写链接器命令文件(.cmd文件)5.7.1 MEMORY指令5.7.2 SECTIONS指令1. SECTINS指令的使用方法2. 为输出段指定地址5.7.3 MEMORY和SECTIONS指令的默认算法5.7.4 命令文件编写及链接实例1. 命令文件2. 链接文件5.8 宏定义和调用宏5.8.1 宏定义5.8.2 调用宏5.8.3 使用递归和嵌入宏第六章汇编语言指令指令集概述算数操作逻辑操作程序控制加载和存储指令6.2 指令集的符号和缩写第七章C/C++编译器概述7.1C/C++编译器命令解释程序7.2调用编译器解释命令程序7.3改变编译器的选项7.3.1常用的选项7.3.2指定文件名7.3.3修改编译器对文件名的解释7.3.4修改编译器对文件名扩展的解释和命名7.3.5指定目录7.3.6控制汇编器的选项7.4 使用环境变量改变编译器特性7.4.1 制定文件目录(C_DIR和C54X_C_DIR)7.4.2 设置默认编译器选项(C_OPTION 或C54_C_OPTION) 7.5 控制预处理器7.5.1 预定义的宏名7.5.2 #include 文件的搜索路径7.5.3 用-i选项改变#include 文件的搜索路径7.5.4 产生预处理的列表文件(-ppo选项)7.5.5 预处理后继续编译(-ppa选项)7.5.6 产生一个带注释的预处理列表文件(-ppc选项)7.5.7 产生一个具有行控制信息的预处理列表文件(-ppl选项)7.5.8 产生#include伪指令包含的文件列表(-ppi选项)7.6 使用直接插入函数展开7.6.1 直接插入内部操作数7.6.2 无保护的定义控制直接插入7.6.3 使用预处理器符号_INLINE的保护直接插入7.6.4 直接插入限制7.7 使用交互列表工具7.8 编译错误简介7.8.1 控制诊断消息7.8.2 如何使用诊断选项第八章优化C/C++代码8.1使用C编译优化器8.2使用-O3选项8.2.1 控制文件级优化(-O1n选项)8.2.2 创建优化信息文件(-On n选项)8.3 执行程序级优化8.3.1 控制程序级优化(-Op n选项)8.3.2 混和C/C++语言和汇编的优化考虑因素8.4 自动直接插入扩展(-Oi选项)8.5 使用交互列表工具8.6 访问优化代码中的别名变量8.7 调试优化得代码和优化类型8.7.1 调试优化的代码8.7.2 压缩优化的代码(-gp和-O选项)8.7.3 可执行的优化类型1. 基于重要程度的寄存器分配2. 消除别名的歧义3. 分支转移优化和控制流简化4. 数据流优化5. 表达式简化6. 函数的直接插入展开7. 循环归纳变量优化和强度降低8. 循环不变代码的移动9. 循环旋转10. 尾部合并11. 自动增量寻址12. 重复块13. 延迟、转移、调用和返回14. 算数重排、符号简化和常数合并第九章链接C/C++代码9.1调用链接器9.1.1 单步调用链接器9.1.2 作为编译的步骤调用链接器9.2 禁用链接器(-c编译器选项)9.3 控制链接过程9.3.1 链接运行时支持库9.3.2 运行时初始化9.3.3 全局对象构造器9.3.4 指定初始化类型9.3.5 指定段在存储器中的分配9.3.6 链接器命令文件实例第十章TMS320C54x C/C++语言10.1 TMS320C54x C/C++语言的特点10.1.1 TMS320C54x C语言特点1. 标志符和常数2. 数据类型3. 数据转换4. 表达式5. 声明6. 预处理器10.1.2 TMS320C54x C++语言特点10.2 数据类型10.3 关键词10.3.1 const关键词10.3.2 ioport关键词10.3.3 interrupt关键词10.3.4 near 和far关键词10.3.5 volatile关键词10.4 寄存器变量和全局寄存器变量10.4.1 寄存器变量10.4.2 全局寄存器变量1. 何时使用全局变量寄存器2. 避免破坏寄存器的值3. 禁止编译器使用AR1和AR6 10.5 Pragma伪指令1. CODE_SECTION指令2. DA TA_SECTION指令3. FUNC_CANNOT_INLINE指令4. FUNC_EXT_CALLED指令5. FUNC_IS_PURE指令6. FUNC_IS_SYSTEM指令7. FUNC_NEVER_RETURNS指令8. FUNC_NO_ASG指令9. FUNC_NO_IND_ASG指令10. IDENT指令11. INTERRUPT指令12. NO_INTERRUPT指令10.6 初始化静态和全局变量10.7 C/C++和汇编语言混和编程10.7.1 用/C++代码调用汇编语言模块10.7.2 在C语言中插入汇编语句10.7.3 在程序中访问汇编语言变量10.7.4 访问汇编语言的常数第十一章运行时环境和支持库11.1存储器模式11.1.1 段11.1.2 C系统堆栈11.1.3 分配.const到程序存储器11.1.4 动态存储器分配11.1.5 变量初始化11.1.6 为静态和全局变量分配存储器11.1.7 子段/结构体定位11.1.8 字符串常数11.2 寄存器规定11.2.1 状态寄存器的位11.2.2 寄存器变量11.3 函数结构和调用规定11.3.1 函数如何进行调用11.3.2 被调用函数如何响应11.3.3 访问变量和局部变量11.3.4 分配帧和使用32位存储器读指令11.4 中断处理11.4.1 C语言中中断的基本知识11.4.2 使用C/C++中断程序11.4.3保存中断入口点的上下文11.5 系统初始化11.5.1 变量自动初始化11.5.2 全局构造器11.5.3 初始化表11.5.4 运行时变量的自动初始化11.5.5 在加载时变量的初始化11.6 运行时支持库函数11.6.1 库11.6.2 C的I/O函数1. 低级I/O的执行2. 为C的I/O添加一个设备3. 低级函数11.6.3 头文件1. 诊断消息头文件(assert.h/cassert)2. 字符测试和转换(ctype.h cctype)3. 错误报告(error.h/cerrno)4. 扩展寻址函数(extaddr.h)5. 低级输入/输出函数(file.h)6. 限制头文件(float.h/cfloat和limits.h/climits)7. 浮点数学函数(math.h/cmath)8. 非局部转移(set jump.h/cset jump)9. 变量可变头文件(stdarg.h/cstdarg)10. 标准定义头文件(stddef.h/cstddef)11. 输入/输出函数(stdio.h/cstdio)12. 通用工具头文件(stdlib.h/cstdlib)13. 字符串函数头文件(string.h/cstring)14. 时间函数头文件(time.h/ctime)15. 异常事件的处理(exception和stdexcept)16. 动态存储器管理(new)17. 运行时类型信息(typeinfo)第十二章集成开发环境(CCS)12.1CCS2.0系统的安装和配置S2.0系统的安装2.系统配置3.运行CCS2.012.2建立工程文件1.建立一个新的工程项目文件2.向工程项目中添加文件12.3设置工程项目选项12.3.1 编译器环境参数设置1. 设置结果显示2. 具体选项的设置12.3.2 链接器环境参数设置1. 设置结果显示2. 具体选项的设置12.4 编译、链接和运行目标文件12.4.1 编译和链接12.4.2 仿真运行输出目标文件12.5 查看存储器信息12.6 查看寄存器信息1. 查看CPU寄存器2. 查看外设寄存器12.7 修改存储器和寄存器内容1. 修改存储器内容2. 修改寄存器内容3. 修改变量内容12.8 设置断点和探测点1. 设置断点2. 设置探测点12.9 图形显示12.9.1 定义探测点和输入数据12.9.2 将探测点与数据文件链接起来12.9.3 建立幅值-时间图形1. 建立图形2. 链接图形到数据源激活图形12.9.4 建立“眼(Eye)”图形1. 建立图形2. 链接图形到数据源激活图形12.9.5 建立“合成(Constellation)”图形1. 建立图形2. 链接图形到数据源激活图形第十三章应用程序开发实例13.1提高系统性能的几种方法13.1.1 有效存储器分配的建议1. 安排SARAM和DARAM的数据分配2. 对于随即访问的变量,使用直接寻址,并将他们分配到同一个128字的页面3. 为中断而保留专用的CPU资源13.1.2 存储器定位要求13.1.3 堆栈初始化13.1.4 重叠管理13.1.5 存储取之间的移动13.2 算术运算13.2.1 除法和求模运算13.2.2 正弦和余弦运算13.2.3 扩展精度运算13.2.4 浮点运算13.3 快速傅立叶变换(FFT)的DSP实现13.3.1 离散傅立叶变换(DFT)13.3.2 快速傅立叶变换(FFT)13.3.3 快速傅立叶变换的DSP实现1. 实数FFT运算序列的存储分配2. 基2实数FFT运算的算法3. 计算所求信号的功率13.4 FIR滤波器的DSP实现1. FIR滤波器实现方法2. FIR的DSP实现程序代码13.5 IIR滤波器的DSP实现1. 无限脉冲响应(IIR)滤波器结构2. 双二次IIR滤波器的实例程序13.6 自适应滤波的DSP实现13.7 CODEC应用程序的DSP实现1. 编写汇编程序2. 链接命令文件。

第4章定时器及硬件中断C55xDSP

第4章定时器及硬件中断C55xDSP

tint0:
b _Timer0
nop
.align 8
.text
第4章 定时器及硬件中断
c_int00:
amov #0,xdp
amov #STACK+200h,xsp
amov #SYSSTACK+200h,xssp
;init interupt(中断初始化)
bset intm
;禁止全局中断
mov #1,@ivpd ;初始化DSP中断矢量指
第4章 定时器及硬件中断
4.2 定时器及硬件中断实验
4.2.1 实验目的 ■了解C55x DSP定时器结构。 ■学习C5509定时器初始化。 ■了解C55x DSP中断。 ■学习中断处理。
第4章 定时器及硬件中断 4.2.2 实验设备
■PC兼容机一台;操作系统为Windows 2000(或 WindowsNT 4.0、Windows 98、Windows XP);计算机已经 安装CCS v3.1集成环境软件。
器设定为自动装载模式(ARB=1),当计数器TIM减到0时, 就会从PRD重新装载数据。定时器控制寄存器TCR如图4-2 所示,使用它的特定位可以实现对定时器进行配置、启动、 停止、装载和重新装载等,表4-1是对定时器控制寄存器 TCR的每位进行说明。
第4章 定时器及硬件中断 图4-2 定时器控制寄存器TCR
第4章 定时器及硬件中断
4.1 定时器硬件结构原理
TMS320VC5509 DSP有两个独立的20 bit软件可编程通用 减数计数定时器,它们可用于向CPU提供周期性的中断信号, 或给DMA控制器发送周期同步事件,也可以用于给外部设 备提供周期信号,还可以用于外部事件计数。 20 bit的通用定时器是减数计数器,它由两部分组成:4位预 分频计数器(PSC)和16位主计数器(TIM)。定时器结构框图如 图4-1所示。

第4章 TMS320C54xDSP寻址方式

第4章 TMS320C54xDSP寻址方式

第4章 TMS320C54xTM DSP汇编语言与混合编程 (2) MVDK 语 法:助记符方式 MVDK Smem,dmad 执行过程:(dmad)→EAR if (RC)≠0 Then (Smem)→通过EAR寻址的Dmem (EAR)+1→EAR Else (Smem)→通过EAR寻址的Dmem 该指令不会影响任何状态位。
第4章 TMS320C54xTM DSP汇编语言与混合编程
功能描述:把一个单数据存储器操作数Smem的内容复制 到一个通过dmad(地址在EAB地址寄存器EAR中)寻址的数 据存储器单元。可以循环执行该指令来转移数据存储器中 的连续字。
第4章 TMS320C54xTM DSP汇编语言与混合编程 例4.32 MVDK DAT10,8000H
一条指令中可对两种立即数编码, 一种是短立即数(3、5、8或9位),短立即数指令编码 为一个字长。 另一种是16位的长立即数,16位立即数的指令编码为两 个字长。
第4章 TMS320C54xTM DSP汇编语言与混合编程
支持立即数的指令
3位或5位立即数 8位立即数 9位立即数 16位立即数 ADD ADDM AND ANDM BITF CMPM LD MAC OR ORM RPT RPTZ ST STM SUB XOT XORM lK
第4章 TMS320C54xTM DSP汇编语言与混合编程 * 直接寻址 指令中的7 bit是一个数据页内的偏移地址,而 所在的数据页则由数据页指针DP或SP决定,该偏移值加上DP 和SP的值决定了在数据存储器中的实际地址; * 间接寻址 按照辅助寄存器中的地址访问存储器; * 存储器映射寄存器寻址 通过寻址存储器映射寄存器实现 寻址; * 堆栈寻址 把数据压入和弹出系统堆栈。

第4章TMS320C54x汇编指令系统

第4章TMS320C54x汇编指令系统

表4-8 与逻辑运算指令
表4-9 或逻辑运算指令
表4-10 异或逻辑运算指令
表4-11 移位逻辑运算指令
表4-12 测试指令 返回本节
4.2.3 程序控制指令
程序控制指令包括分支转移指令、子程序调用指 令、中断指令、返回指令、重复指令、堆栈操作 指令及混合程序控制指令,分别如表4-13、表414、表4-15、表4-16、表4-17、表4-18及表4-19 所示。
表4-2 加法指令
表4-3 减法指令
表4-4 乘法指令
表4-5 乘加和乘减指令
表4-6 双精度(32位操作数)指令
表4-7 专用指令 返回本节
4.2.2 逻辑运算指令
逻辑指令包括与、或、异或(按位)、移位和测 试指令,分别如表4-8、表4-9、表4-10、表4-11、 表4-12所示。
表4-13 分支转移指令
表4-14 子程序调用指令
表4-15 中断指令
表4-16 返回指令
表4-17 Байду номын сангаас复指令
表4-18 堆栈操作指令
表4-19 混合程序控制指令 返回本节
4.2.4 加载和存储指令
加载和存储指令包括加载指令、存储指令、条件 存储指令、并行加载和存储指令、并行加载和乘 法指令、并行存储和加/减法指令、混合加载和存 储指令,分别如表4-20、表4-21、表4-22、表423、表4-24、表4-25、表4-26及表4-27所示。加 载指令是将存储器内容或立即数赋给目的寄存器; 存储指令是把源操作数或立即数存入存储器或寄 存器。
4.1 指令系统中的符号和缩写
表4-1 指令系统中的符号和缩写
返回首页
返回本节
4.2 指令系统
4.2.1 算术运算指令 4.2.2 逻辑运算指令 4.2.3 程序控制指令 4.2.4 加载和存储指令

TMS320C54x

TMS320C54x

TMS320C54xDSP CPU外设第一章综述1 总线结构C54x包括8条16比特宽度的总线,其中:●一条程序总线(PB)●三条数据总线(CB、DB、EB)●四条地址总线(PAB、CAB、DAB、EAB)2CPUC54x的CPU结构包括:●40比特的ALU,其输入来自16比特立即数、16比特来自数据存储器的数据、暂时存储器、T中的16比特数、数据存储器中两个16比特字、数据存储器中32比特字、累加器中40比特字。

●2个40比特的累加器,分为三个部分,保护位(39-32比特)、高位字(31-16比特)、低位字(15-0比特)。

●桶型移位器,可产生0到31比特的左移或0到16比特的右移。

●17×17比特的乘法器●40比特的加法器●比较选择和存储单元CSSU●数据地址产生器DAGEN●程序地址产生器PAGEN3外设C54x包括:●通用I/O引脚,XF和BIO●定时器●PLL时钟产生器●HPI口,8比特或16比特●同步串口●带缓存串口,BSP●多路带缓存串口,McBSP●时分复用串口,TDM●可编程等待状态产生器●可编程bank-switching模块●外部总线接口●IEEE1149.1标准JTAG口第二章 存储器一般而言,C54x 的存储空间可达192K16比特字,64K 程序空间,64K 数据空间,64KI/O 空间。

依赖其并行的工艺特性和片上RAM 双向访问的性能,在一个机器周期内,C54x 可以执行4条并行并行存储器操作:取指令,两操作数读,一操作数写。

使用片内存储器有三个优点:高速执行(不需要等待),低开销,低功耗。

1 存储空间分配图(以C549为例)复位后,中断矢量表位于程序区FF80H 位置,可重新定位于程序空间任何一个128字的页面(其地址高9比特即页号由PMST 中IPTR 确定)。

2 程序存储区C54x 有片内ROM 、DARAM 、SARAM ,这些区域可以通过软件配置到程序空间。

DSP第四章TMS320C54x定时器/计数器

DSP第四章TMS320C54x定时器/计数器
频系数TRC的TDDR=0。 时钟频率为4MHz,在XF端输出一个周期入4ms的方波,
方波的周期由片上定时器确定,采用中断方法实现。设计 步骤如下: (1)定时器初始化 ●关闭定时器,TCR中的TSS=1。 ●加载PRD。因为输出脉冲周期为4ms。 ●启动定时器,初姑化TDDR,TSS=0,TRB=1
TCR
定时器控制寄存器,包含定时器的 控制和状态位
15~12 11
10
9~6
保留
soft
free
PSC
5
4
TRB
TSS
图4-2 TCR位结构图
3~0 TDDR
表4-2 定时器控制寄存器(TCR)的功能
4.2 时钟发生器
硬件配置PLL
用于C541、C542、C543、C545和C546芯片。 所 谓 硬 件 配 置 PLL , 就 是 通 过 C54x 的 3 个 引 脚
通过外部中断请求输入、检测输入脉冲 频率。
3.周期信号检测
相邻脉冲时间差=两个脉冲之间 的差值+两次延迟响应时间差
相邻脉冲时间间隔=T(n+1)T(n)+3T机器周期
PLLN DIV
0
PLLD Ⅳ
X
PLLMUL 0~14
比例系数 0.5
0
X
15
0.25
1
0
0~14
PLLMUL+1
1
0
15
1
1
1
0或偶数
(PLLMUL+1)÷2
1
1
奇数
PLLMUL÷4
图5-3 PLL锁定时间和CLKOUT频率的关系
4.3 定时器/计数器编程和应用
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1
0
4007H
乘5,内部振荡器工作,PLL工作
0
0
1007H
乘2,内部振荡器工作,PLL工作
1
0
F007H
乘1,内部振荡器工作,PLL工作
1
1
0000H
乘1/2,内部振荡器工作,PLL不工作
0
1
F000H
乘1/4,内部振荡器工作,PLL不工作
1
1

保留
表4-5 时钟方式寄存器CLKMD各位域功能
表5-6 比例系数与CLKMD的关系
(2)中断初始化
●中断允许寄存器IFR中的定时中断位TINT=1, 清除未处理完的定时中断。
●中断屏蔽寄存器IMR中的定时屏蔽位TINT=1, 开放定时中断。
●状态控制寄存器ST1中的中断标志位INTM位 清零,开放全部中断。
(3)方波发生器程序清单
2.脉冲频率监测
图4-1 定时器组成框图
表4-1 定时器的三个寄存器
Timer0 地址
0024H
0025H
0026H
Timer1 地址
0030H
0031H
0032H
寄存器
说明
定时器寄存器,每计数一次自动减
TIM
1
定 时 器 周 期 寄 存 器 , 当 TIM 减 为 0
PRD
后,CPU自动将PRD的值装入TIM
频系数TRC的TDDR=0。 时钟频率为4MHz,在XF端输出一个周期入4ms的方波,
方波的周期由片上定时器确定,采用中断方法实现。设计 步骤如下: (1)定时器初始化 ●关闭定时器,TCR中的TSS=1。 ●加载PRD。因为输出脉冲周期为4ms。 ●启动定时器,初姑化TDDR,TSS=0,TRB=1
通过外部中断请求输入、检测输入脉冲 频率。
3.周期信号检测
相邻脉冲时间差=两个脉冲之间 的差值+两次延迟响应时间差
相邻脉冲时间间隔=T(n+1)T(n)+3T机器周期
CLKMD1、CLKMD2和CLKMD3的状态,选定时 钟方式,如表5-3所示。由表5-3可见,不用PLL时, CPU的时钟频率等于晶体振荡器频率或外部时钟 频率的一半;若用PLL,CPU的时钟频率等于晶 体振荡器频率或外部时钟频率乘以系数N (PLLN),使用PLL可以使用比CPU时钟低的 外部时钟信号,以减少高速开关时钟所造成的高 频噪声。
分频(DIV)方式,其比例系数为1/2和1/4,在此 方式下,片内PLL电路不工作以降低功耗。
CLKMD 1 0 0 0 1 1 1 1 0
表4-4 复位时的时钟方式(C5402)
CLKMD 2 0
0
CLKMD 3 0
1
CLKMD寄存 器
E007H
9007H
时钟方式
乘15,内部振荡器工作,PLL工作 乘10,内部振荡器工作,PLL工作
表5-3 时钟方式的配置
软件可编程PLL
软件可编程PLL具有高度的灵活性,其时钟定标 器提供各种时钟乘法器系数,并能直接接通和关 断PLL。PLL的锁定定时器可以用于延迟转换PLL 的时钟方式,直到锁定为止。通过软件编程,可 以选用以下两种时钟方式(如表4-4 , 4-6、图43所示)。
PLL方式,其比例系数共31种。靠锁相环电路完 成。
TCR
定时器控制寄存器,包含定时器的 控制和状态位
1free
PSC
5
4
TRB
TSS
图4-2 TCR位结构图
3~0 TDDR
表4-2 定时器控制寄存器(TCR)的功能
4.2 时钟发生器
硬件配置PLL
用于C541、C542、C543、C545和C546芯片。 所 谓 硬 件 配 置 PLL , 就 是 通 过 C54x 的 3 个 引 脚
第四章 TMS320C54x 定时器/计数器
TMS320C54x片内外设简介
1.通用I/O引脚 2.定时器 3.时钟发生器 4.主机接口(HPI) 5.串行口 6.软件可编程等待状态发生器 7.可编程分区转换逻辑
4.1 定时器结构
定时器的组成框图如图4-1所示。它有3个 存储器映象寄存器:TIM、PRD和TCR。这 3个寄存器在数据存储器中的地址及其说明 如表4-1所示。定时器控制寄存器(TCR) 位结构如图4-2所示,各控制位和状态位的 功能如表4-2所示。
PLLN DIV
0
PLLD Ⅳ
X
PLLMUL 0~14
比例系数 0.5
0
X
15
0.25
1
0
0~14
PLLMUL+1
1
0
15
1
1
1
0或偶数
(PLLMUL+1)÷2
1
1
奇数
PLLMUL÷4
图5-3 PLL锁定时间和CLKOUT频率的关系
4.3 定时器/计数器编程和应用
1.方波发生路 复位时,TIM和PRD的内容为最大值0FFFFH,定时器分
相关文档
最新文档