ARM汇编语言程序设计基础第8章TMS320C54x片内外设及应用实例.ppt_第1页
ARM汇编语言程序设计基础第8章TMS320C54x片内外设及应用实例.ppt_第2页
ARM汇编语言程序设计基础第8章TMS320C54x片内外设及应用实例.ppt_第3页
ARM汇编语言程序设计基础第8章TMS320C54x片内外设及应用实例.ppt_第4页
ARM汇编语言程序设计基础第8章TMS320C54x片内外设及应用实例.ppt_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

第8章 TMS320C54x片内外设及应用实例,8.1 定时器 8.2 时钟发生器 8.3 定时器/计数器编程举例 8.4 多通道缓冲串口(McBSP) 8.5 多通道缓冲串口应用实例 8.6 主机接口(HPI) 8.7 外部总线操作,8.1 定时器,定时器的组成框图如图8-1所示。它有3个存储器映象寄存器:TIM、PRD和TCR。这3个寄存器在数据存储器中的地址及其说明如表8-1所示。定时器控制寄存器(TCR)位结构如图8-2所示,各控制位和状态位的功能如表8-2所示。,返回首页,图8-1 定时器组成框图,表8-1 定时器的三个寄存器,图8-2 TCR位结构图,表8-2 定时器控制寄存器(TCR)的功能,返回本节,8.2 时钟发生器,8.2.1 硬件配置PLL 8.2.2 软件可编程PLL,返回首页,8.2.1 硬件配置PLL,用于C541、C542、C543、C545和C546芯片。 所谓硬件配置PLL,就是通过C54x的3个引脚CLKMD1、CLKMD2和CLKMD3的状态,选定时钟方式,如表8-3所示。由表8-3可见,不用PLL时,CPU的时钟频率等于晶体振荡器频率或外部时钟频率的一半;若用PLL,CPU的时钟频率等于晶体振荡器频率或外部时钟频率乘以系数N(PLLN),使用PLL可以使用比CPU时钟低的外部时钟信号,以减少高速开关时钟所造成的高频噪声。,表8-3 时钟方式的配置,返回本节,8.2.2 软件可编程PLL,软件可编程PLL具有高度的灵活性,其时钟定标器提供各种时钟乘法器系数,并能直接接通和关断PLL。PLL的锁定定时器可以用于延迟转换PLL的时钟方式,直到锁定为止。通过软件编程,可以选用以下两种时钟方式(如表8-4 8-6、图8-3所示)。 PLL方式,其比例系数共31种。靠锁相环电路完成。 分频(DIV)方式,其比例系数为1/2和1/4,在此方式下,片内PLL电路不工作以降低功耗。,表8-4 复位时的时钟方式(C5402),表8-5 时钟方式寄存器CLKMD各位域功能,表8-6 比例系数与CLKMD的关系,图8-3 PLL锁定时间和CLKOUT频率的关系,返回本节,8.3 定时器/计数器编程举例,【例8-1】设时钟频率为16.384MHz,在TMS320C5402的XF端输出一个周期为2s的方波,方波的周期由片上定时器确定,采用中断方法实现。 1定时器0的初始化 (1)设置定时控制寄存器TCR(地址0026H)。 (2)设置定时寄存器TIM(地址0024H)。 (3)设置定时周期寄存器PRD(地址0025H)。,返回首页,2定时器对C5402的主时钟CLKOUT进行分频 CLKOUT与外部晶体振荡器频率(在本系统中外部晶体振荡器的频率为16.384MHz)之间的关系由C5402的三个引脚CLKMD1、CLKMD2和CLKMD3的电平值决定,为使主时钟频率为16.384MHz,应使CLKMD1=1、CLKMD2=1、CLKMD3=0,即PLL1。,3中断初始化 (1)中断屏蔽寄存器IMR中的定时屏蔽位TINT0置1,开放定时器0中断。 (2)状态控制寄存器ST1中的中断标志位INTM位清零,开放全部中断。,4汇编源程序如下: .mmregs .def _c_int00 STACK .usect “STACK“,100h t0_cout .usect “vars“,1 ;计数器 t0_flag .usect “vars”,1 ;当前XF输出电平标志。 t0_flag=1,则XF=1; ;t0_flag=0,则XF=0 TVAL .set 1639 ;16401061=1ms 因中断程序中计数器初值 ;t0_cout=1000,所以定时时间:1ms1000=1s TIM0 .set 0024H ;定时器0寄存器地址 PRD0 .set 0025H TCR0 .set 0026H .data,TIMES .int TVAL ;定时器时间常数 .text * ; 中断矢量表程序段 _c_int00 b start nop nop NMI rete ;非屏蔽中断 nop nop nop SINT17 .space 4*16 ;各软件中断 SINT18 .space 4*16 SINT19 .space 4*16 SINT20 .space 4*16 SINT21 .space 4*16,SINT22 .space 4*16 SINT23 .space 4*16 SINT24 .space 4*16 SINT25 .space 4*16 SINT26 .space 4*16 SINT27 .space 4*16 SINT28 .space 4*16 SINT29 .space 4*16 SINT30 .space 4*16 INT0 rsbx intm ;外中断0中断 rete nop nop INT1 rsbx intm ;外中断1中断 rete nop nop INT2 rsbx intm ;外中断2中断,rete nop nop TINT: bd timer ;定时器中断向量 nop nop nop RINT0: rete ;串口0接收中断 nop nop nop XINT0: rete ;串口0发送中断 nop nop nop SINT6 .space 4*16 ;软件中断 SINT7 .space 4*16 ;软件中断,INT3: rete ;外中断3中断 nop nop nop HPINT: rete ;主机中断 nop nop nop RINT1: rete ;串口1接收中断 nop nop nop XINT1: rete ;串口1发送中断 nop nop nop *,start: LD #0,DP STM #STACK+100h,SP STM #07FFFh,SWWSR STM #1020h,PMST ST #1000,*(t0_cout) ;计数器设置为 1000(1s) SSBX INTM ;关全部中断 LD #TIMES,A READA TIM0 ;初始化 TIM,PRD READA PRD0 STM #669h,TCR0 ;初始化TCR0 STM #8,IMR;初始化 IMR, 使能 timer0 中断 RSBX INTM ;开放全部中断 WAIT: B WAIT *,;定时器0中断服务子程序 timer: ADDM #-1,*(t0_cout) ;计数器减1 CMPM *(t0_cout),#0 ;判断是否为0 BC next,NTC ;不是0,退出循环 ST #1000,*(t0_cout);为0,设置计数器,并将XF取反 BITF t0_flag,#1 BC xf_out,NTC SSBX XF ST #0,t0_flag B next xf_out: RSBX XF ST #1,t0_flag next: RSBX INTM RETE .end,5链接命令文件times.cmd如下: times.obj -o times.out -m times.map MEMORY PAGE 0:RAM1: origin =1000h ,length =500h PAGE 1:SPRAM1: origin=0060h,length=20h SPRAM2: origin=0100h,length=200h SECTIONS .text :RAM1 PAGE 0 .data :RAM1 PAGE 0 vars :SPRAM1 PAGE 1 STACK :SPRAM2 PAGE 1 ,返回本节,8.4 多通道缓冲串口(McBSP),8.4.1 McBSP原理框图及信号接口 8.4.2 McBSP控制寄存器 8.4.3 时钟和帧同步 8.4.4 McBSP数据的接收和发送 8.4.5 有关的几个概念,返回首页,8.4.1 McBSP原理框图及信号接口,TMS320C54xx多通道缓冲串口(McBSP)由引脚、接收发送部分、时钟及帧同步信号产生、多通道选择以及CPU中断信号和DMA同步信号组成,如图8-4所示。 表8-7给出了有关引脚的定义,McBSP通过这7个引脚为外部设备提供了数据通道和控制通道。McBSP通过DX和DR实现DSP与外部设备的通信和数据交换。,图8-4 McBSP原理框图,表8-7 McBSP引脚说明,表8-8 McBSP内部信号说明,返回本节,8.4.2 McBSP控制寄存器,1控制寄存器及其映射地址 表8-9列出了McBSP控制寄存器及其映射地址。 子块数据寄存器SPSDx用于指定对应子地址寄存器中数据的读写,其内部连接方式如图8-5所示。这种方法的好处是可以将多个寄存器映射到一个较小的存储空间。,表8-9 McBSP控制寄存器及其映射地址,图8-5 子地址映射示意图,2串行口的配置 串口控制寄存器(SPCR1、SPCR2)和引脚控制寄存器(PCR)用于对串口进行配置,接收控制寄存器(RCR1、RCR2)和发送控制寄存器(XCR1、XCR2)分别对接收和发送操作进行控制。 (1)串口控制寄存器(SPCR1、SPCR2)串口控制寄存器1(SPCR1)结构如图8-6所示,表8-10为SPCR1控制位功能说明。串口控制寄存器2(SPCR2)结构如图8-7所示,表8-11为SPCR2控制位功能说明。 (2)引脚控制寄存器(PCR)。引脚控制寄存器(PCR)结构如图8-8所示,表8-12为PCR控制位功能说明。,图8-6 串口控制寄存器1(SPCR1),表8-10 SPCR1控制位功能说明,图8-7 串口控制寄存器2(SPCR2),表8-11 SPCR2控制位功能说明,图8-8 引脚控制寄存器(PCR),表8-12 PCR控制位功能说明,(3)接收控制寄存器(RCR1,2)。结构如图8-9所示,表8-13所示为RCR1控制位功能说明,表8-14所示为RCR2控制位功能说明。 (4)发送控制寄存器(XCR1,2)。发送控制寄存器(XCR1,2)结构如图8-10所示,表8-15所示为XCR1控制位功能说明,表8-16所示为XCR2控制位功能说明。,(a)RCR1,(b)RCR2,图8-9 接收控制寄存器(RCR1,2),表8-13 RCR1控制位功能说明,表8-14 RCR2控制位功能说明,(a)XCR1,(b)XCR2,图8-10 发送控制寄存器(XCR1,2),表8-15 XCR1控制位功能说明,表8-16 XCR2控制位功能说明,返回本节,8.4.3 时钟和帧同步,采样率发生器由三级时钟分频组成,如图8-11所示,可以产生可编程的CLKG(数据位时钟)信号和FSG(帧同步时钟)信号。CLKG和FSG是McBSP的内部信号,用于驱动接收/发送时钟信号(CLKR/X)和帧同步信号(FSR/X)。采样率发生器时钟既可以由内部的CPU时钟驱动(CLKSM=1),也可以由外部时钟源驱动(CLKSM=0)。采样率发生器寄存器SRGR1,2控制着采样率发生器的各种操作,其结构如图8-12所示。表8-17所示为SRGR1控制位功能说明,表8-18所示为SRGR2控制位功能说明。,图8-11 采样率发生器框图,(a)采样率发生器寄存器1 (SRGR1),(b) 采样率发生器寄存器2 (SRGR2),图8-12 采样率发生器寄存器SRGR1,2结构图,表8-17 SRGR1控制位功能说明,表8-18 SRGR2控制位功能说明,图8-13 可编程帧周期和帧脉冲宽度,返回本节,8.4.4 McBSP数据的接收和发送,数据的接收是通过三级缓冲完成的,例如,通过设置SPCR1寄存器的RINTM=00b,则可由RRDY信号驱动产生接收中断信号RINT,TMS320C54xx CPU响应中断,读取DRR中的数据。接收时序如图8-14所示。 数据的发送通过两级缓冲完成,通过设置SPCR2寄存器的XINTM=00b,可由XRDY驱动产生发送中断信号XINT,TMS320C54xx CPU响应中断,将下一个发送数据写入DXR中,随后XRDY降为0。发送时序如图8-15所示。,图8-14 数据的接收,图8-15 数据的发送,返回本节,8.4.5 有关的几个概念,1相的概念 在McBSP中,帧同步信号表示一次数据传输的开始。帧同步信号之后的数据流可以有两个相相1和相2。相的个数(1或2)可以通过设置RCR2和XCR2中的(R/X)PHASE位来实现。每帧的字数和每字的位数分别由(R/X)FRLEN1,2和(R/X)WDLEN1,2决定(如图8-6、8-18所示 )。,图8-16 例8-2的图,图8-17 例8-3的图,2数据延迟 每一帧都是从帧同步信号有效时到来的第一个时钟周期开始的。实际的数据接收或传输开始时刻相对于帧的开始时刻可以有延时,这一延时称为数据延迟,用RDATDLY和XDATDLY分别指定接收和发送的数据延迟。可编程数据延迟的范围为0、1、2个时钟周期(R/XDATDLY = 00b 10b),如图8-18所示。,图8-18 数据延迟,3SPI协议:McBSP时钟停止模式 SPI协议是一种主从配置的、支持一个主方、一个或多个从方的串行通信协议,一般使用4条信号线:串行移位时钟线(SCK)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、低电平有效的使能信号线( )。如图8-198-22所示、表8-19、20所示。,图8-19 McBSP作为SPI模式的主设备,图8-20 McBSP作为SPI模式的从设备,图8-21 CLKSTP=10b、CLKXP=0时钟停止模式1的时序图,图8-22 CLKSTP=11b、CLKXP=1时钟停止模式4的时序图,表8-19 McBSP寄存器位域设置(SPI模式的主设备),表8-20 McBSP寄存器位域设置(SPI模式的从设备),返回本节,8.5 多通道缓冲串口应用实例,8.5.1 TLV1572高速串行ADC与TMS320C5402接口设计 8.5.2 TLC5617串行DAC与TMS320C5402接口设计 8.5.3 语音接口芯片TLC320AD50C与TMS320C5402接口设计,返回首页,8.5.1 TLV1572高速串行ADC与TMS320C5402接口设计,1TLV1572芯片简介 TLV1572是高速同步串行的10位A/D转换芯片,单电源2.7 V至5.5 V供电,8引脚SOIC封装。功耗较低(3V供电功耗3W,5V供电功耗25W),当AD转换不进行期间自动进入省电模式。5V供电、时钟速率20MHz时最高转换速率为1.25 MSPS,3V供电、时钟速率10MHz时最高转换速率为625 KSPS。TLV1572 D封装引脚排列如图8-23所示,TLV1572的引脚说明如表8-21所示。,图8-23 TLV1572的引脚排列,表8-21 TLV1572引脚功能表,2TLV1572与TMS320系列DSP的连接,图8-24 TLV1572与TMS320系列DSP连接框图,图8-25 TLV1572 DSP工作方式时序图,3TLV1572与TMS320C5402的McBSP1接口软件编程 【例8-4】在本例应用中,TMS320C5402的McBSP1以CPU中断的方式读取TLV1572模数转换结果,并存放在DSP片内的DARAM区的3000H开始的单元中,共采样256个点,A/D转换的速率为64kHz,由串口McBSP1的帧频决定,TMS320C5402的主时钟频率为81.925MHz。其实现程序(略),返回本节,8.5.2 TLC5617串行DAC与TMS320C5402接口设计,1TLC5617工作原理 TLC5617是带有缓冲基准输入的双路10位电压输出数模转换器。 TLC5617通过与CMOS兼容的3线串行接口实现数字控制,器件接收的用于编程的16位字的前4位用于产生数据的传送模式,中间10位产生模拟输出,最后两位为任意的LSB位(如图8-268-28、表8-22、23所示)。,图8-26 TLC5617引脚排列,表8-22 TLC5617引脚功能说明,图8-27 TLC5617功能框图,图8-28 TLC5617的时序图,表8-23 可编程控制位(D15D12)功能表,2TLC5617与TMS320C5402的McBSP接口设计 TLC5617符合SPI数字通信协议,而TMS320C54xx系列DSP芯片的多通道缓冲串口(McBSP)工作于时钟停止模式时与SPI协议兼容。TLC5617与TMS320C5402的McBSP0接口连接如图8-29所示。,图8-29 TMS320C5402与TLC5617的连接,3软件设计 给出了较完整的软件程序,包括主程序、串口初始化程序和CPU中断服务程序,中断服务程序分别对数据进行处理,然后在TLC5617的A、B两个通道同时输出。TMS320C5402的主时钟频率为81.925MHz,数模转换速率为128kHz。汇编源程序(略),返回本节,8.5.3 语音接口芯片TLC320AD50C与TMS320C5402接口设计,1模拟接口芯片TLC320AD50C的工作原理 音频接口芯片TLC320AD50C集成了16位A/D和D/A转换器,使用过采样(over sampling)技术提供16位A/D和D/A低速信号转换,该器件包括两个串行的同步转换通道,工作方式和采样速率均可由DSP编程设置。其内部ADC之后有抽样滤波器,DAC之前有插值滤波器,接收和发送可同时进行。,图8-30 AD50C的引脚排列,图8-31 AD50C的内部结构框图,AD50C片内还包括一个定时器和控制器。该芯片可工作在单端或差分方式,支持3个从机级联,其参数设置模式采用单线串行口直接对内部寄存器编程,不受数据转换串行口的影响。 (1)ADC信号通道(如图8-32、8-33) (2)DAC信号通道(如图8-34所示) (3)AD50C的控制寄存器(如表8-24所示),图8-32 ADC通道主通信时序图,图8-33 ADC通道主通信和次通信时序图,图8-34 DAC信号通道主通信和次通信时序图,表8-24 控制寄存器1位功能表,表8-25 控制寄存器2位功能表,表8-26 控制寄存器3位功能表,表8-27 控制寄存器4位功能表,表8-28 寄存器映象表,2TLC320AD50C与TMS320C5402硬件接口设计 硬件连接采用AD50C为主控模式(=1),向C5402的McBSP0(从设备)提供SCLK(数据移位时钟)和FS(帧同步脉冲),并控制数据的传输过程。TMS320C5402工作于SPI方式的从机模式,CLKX0和FSX0为输入引脚,在接收数据和发送数据时都是利用外界时钟和移位脉冲。C5402与TLC320AD50C的硬件连接如图8-35所示。,图8-35 TMS320C5402与TLC320AD50C的硬件连接示意图,3软件编制过程 (1)TMS320C5402串口的初始化。 (2)AD50C初始化。 (3)用户代码的编写。,返回本节,8.6 主机接口(HPI),8.6.1 HPI-8接口的结构 8.6.2 HPI-8控制寄存器和接口信号 8.6.3 HPI-8接口与主机的连接框图 8.6.4 HPI的8条数据线作通用的I/O引脚,返回首页,8.6.1 HPI-8接口的结构,HPI-8是一个8位的并行口,外部主机是HPI的主控者,HPI-8作为主机的从设备,其框图如图8-36所示。其接口包括一个8比特的双向数据总线、各种控制信号及3个寄存器。片外的主机通过修改HPI控制寄存器(HPIC)设置工作方式,通过设置HPI地址寄存器(HPIA)来指定要访问的片内RAM单元,通过读/写数据锁存器(HPID)来对指定存储器单元读/写。主机通过HCNTL0、HCNTLl管脚电平选择3个寄存器中的一个。,图8-36 HPI-8框图,返回本节,8.6.2 HPI-8控制寄存器和接口信号,HPI控制寄存器(HPIC)状态位控制着HPI操作: (1)BOB:字节次序位。 (2)SMOD:标准HPI-8寻址方式位。 (3)DSPINT:主机向C54x发出中断位。 (4)HINT:C54x向主机发出中断位。 (5)XHPIA:增强HPI-8扩展寻址使能位。 (6)HPIENA:增强HPI-8使能状态位。,主机从HPIC寄存器读出数据,主机写入HPIC寄存器的数据,C54x从HPIC寄存器读出的数据,C54x写入HPIC寄存器的数据,图8-37 标准HPI-8的HPIC寄存器位结构图,主机从HPIC寄存器读出数据,主机写入HPIC寄存器的数据,C54xx从HPIC寄存器读出的数据,C54xx写入HPIC寄存器的数据,图8-38 增强HPI-8的HPIC寄存器位结构图,表8-29 HPI-8接口信号名称

温馨提示

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

评论

0/150

提交评论