ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:25.10KB ,
资源ID:17843233      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17843233.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(TI DSP TMS320C66x学习笔记之通用并行端口uPPWord下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

TI DSP TMS320C66x学习笔记之通用并行端口uPPWord下载.docx

1、2.1 时钟产生与控制 uPP外设使用两个单独的时钟:模块时钟(控制其内部逻辑),以及运行在发送模式或者接口通道的发送时钟。这些时钟都是可配置的。不管是模块时钟,还是发送时钟都能可以比二分之一的设备CPU时钟速度更快。请参见特定器件的数据手册,了解更多信息。各通道的时钟引脚,I / O时钟,独立地得到根据它的操作方向。 2.1.1 发送模式(单倍速率)I/O时钟计算公式:固定除数限制了I / O时钟,最大速度是四分之一设备CPU时钟速度。 2.1.2 接收模式(单倍速率)该通道需要一个外部时钟来驱动它的时钟引脚。输入时钟不可分频,其最大允许速度为四分之一(?)CPU的时钟速度。 2.1.3 双

2、倍速率 UPP外设支持两个I / O的时钟方案:SDR - 单数据率 DDR - 双倍数据速率 SDR时钟数据来自于I/O时钟的DATA引脚产生的上升沿或下降沿。 DDR,数据的时序来自于I / O时钟的上升和下降沿。然而,DDR模式用于发送和接收模式 ,规定了最低时钟是(?)CPU时钟 。操作速度传输模式在每个数据速率的各种因子列于表2-1。在接收模式下,一个通道的I / O时钟由外部源产生的,但以相同的速度规定范围。 2.2 信号描述 每个UPP通道都有自己的一套控制和数据信号。表2-2列出每一个信号,并简要介绍了它们的功能。信号名称与设备略有不同。用于精确信号名称的设备特定数据手册。2.

3、5节阐述了uPP协议。 注意,DATA和XDATA引脚不是专用对单个I / O通道在相同的方式作为控制信号。由于实际原因,UPP数据引脚信道分配不是静态的。相反,使用由每个I / O信道的数据引脚(A,B)取决于UPP外设的操作模式。 表2-3总结了DATA和XDATA引脚分配给每个信道的各种操作模式,以及有关的寄存器的设置。有关这些引脚的更多信息,请参阅设备的数据手册。 2.3 引脚复用 丰富的引脚复用是用来适应最大数量的外围功能的最小可能的封装。引脚复用是控制在设备复位和软件可编程寄存器设置的硬件配置相结合。如何确定引脚复用影响UPP周围,看到具体器件的数据手册。 2.4 内部DMA控制器

4、描述 UPP外设包括一个内部的DMA控制器独立于任何设备的DMA,如EDMA。内部DMA控制器由两个DMA通道,I和Q,在所有工作模式下 ,移动数据to/from uPP的外设接口(I/O)的通道 。本节介绍了如何程序内部的DMA通道。 2.4.1 DMA编程概念 uPP内部的DMA控制器使用类似的EDMA进行2D传输的简化编程模型。 (See the KeyStone Architecture CommunicationsInfrastructure Digital Processor Enhanced Direct Memory Access (EDMA3) Controller User

5、s Guide (SPRUGS5) for more information). 。每个DMA通道可以用四个参数进行配置:窗口地址,字节数,行数和行偏移地址。图2-3显示了这些参数定义的典型DMA窗口。窗口地址Window Address(UPxD0.ADDR)在数据缓冲区中的第一个字节的内存地址。当uPP工作在接收模式中,DMA通道开始从这个地址 “写”并从uPP I/O通道需要输入的数据。当uPP工作在发射模式中,DMA通道开始从这个地址“读”并将数据传递到UPP I/O通道。窗口的地址可以驻留在任何可用的存储空间(包括EMIF),但它必须与一个64位的边界(即,低3位必须为0)。不对齐的

6、地址都会自动调整到一个适当的对齐值时写的UPxD0。字节数Byte Count(UPxD1.BCNT) 每Line的Byte数。字节数必须是偶数。行数Line Count(UPxD1.LNCNT) 每Window的Line数。转移的总字节数等于二,其中每行的字节数是一个字节,而我是行计数。线偏移地址Line Offset Address(UPxD2.LNOFFSET) 偏移地址的第一个字节之间的连续线。线偏移地址不能超过65528(fff8h)字节,内存中必须对齐 64位的边界(即,低3位必须为0)。 该Line偏移地址的某些值对数据缓冲区的结构有特殊的影响: Line Offset Addr

7、ess = Byte Count 数据缓冲区是一个连续的块在内存中的大小等于(Line数)X(Byte数)。 Line Offset Address = 0 数据缓冲区为一个Line的Byte数。如果I/O通道为传输模式,该Line被多次发送(Line Count)直到DMA传输完成。如果I/O通道为接收模式,这个缓冲区将被输入的数据反复覆盖。 在一个DMA传输的编程中,写DMA通道描述寄存器适当的域,UPIDn对应DMA 通道I,UPQDn对应DMA通道Q。如果相关的I/O通道的初始化和闲置,DMA传输和I/O事务立即开始。2.6节描述如何一步一步配置I/O DMA通道和开始一个uPP传递。

8、 每个DMA通道前一个DMA传输(由第一个描述符)仍在运行时,允许第二个描述符去排队。UPxS2.PEND位指示可能有一个新的DMA参数集被写入到DMA描述寄存器。每个DMA通道可以有一个活动的传输和一个排队的传输。这允许每个I/O通道通过DMA传输边界进行不间断的、连续的事务。 内部DMA控制器不支持自动重装DMA传输描述符。每个描述符集必须通过软件明确地写到UPxDn寄存器。 所有uPP中断事件起源于内部DMA控制器。2.8节列出并解释了所有uPP中断事件。 内部DMA控制器总是在64字节的脉冲串中写入数据。但是,DMA读取操作具有可配置的脉冲串长度,这可能根据使用的uPP阈值配置寄存器(

9、UPTCR)的RDSIZEI和RDSIZEQ位来设置每个通道。DMA通道等待,直到指定的字节数离开其内部缓冲区,在执行从内存中读取另一个脉冲串之前。 注意,UPTCR寄存器的TXSIZEA和TXSIZEB位不是DMA参数;相反,它们为uPP接口通道控制传输阈值。 2.4.2 数据交替模式(Data Interleave Mode) 数据交替模式是一种将两个DMA通道都映射到单个接口通道的特殊配置。由于uPP外设只有两个DMA通道,所以数据交替模式只能使用在uPP外设的单通道模式下。根据不同条件,数据交替模式有两种形式: 1.单倍速率交替-只用于发送 UPCTL.CHN = 0 (single-

10、channel mode) UPCTL.DRA = 0 (single data rate) UPCTL.MODE = 1 (transmit mode) UPCTL.SDRTXIL = 1 (enable SDR transmit interleave) UPCTL.DDRDEMUX = 0 (disable DDR interleave) 2.双倍速率交替-发送或接收 UPCTL.CHN = 0 (single-channel mode) UPCTL.DRA = 1 (double data rate) UPCTL.MODE = 0 or 1 (receive or transmit mo

11、de; not duplex) UPCTL.SDRTXIL = 0 (disable SDR transmit interleave) UPCTL.DDRDEMUX = 1 (enable DDR interleave) 2.1节中讲过SDR和DDR的区别描述。 在数据交替模式下,只有I/O通道A被用。单通道关联到两个数据缓冲区,被它们各自的DMA通道(I和Q)服务。 在SDR交替模式下,START信号被用作缓冲区选择线:START=1表示当前字来自DMA通道I;START=0表示当前字来自DMA通道Q。 在DDR交替模式下,由通道I开始从数据缓冲区轮流取出每个字:Channel I Word

12、 0, Channel Q Word 0, Channel I Word 1, Channel QWord 1, 等. 2.5节显示两种数据交错模式的信号图。 2.4.3 接口与DMA通道映射 通常情况下,DMA通道的I和Q各自被映射到接口通道A和B中。数据交错模式是个例外,因为它分配两个DMA通道服务接口通道A。表2-4概括了各种工作模式DMA通道映射。 2.5 协议描述 uPP外设由两个独立通道,每个具有其自己的数据线和控制信号。一个通道可以被配置去运行在发送模式或者接收模式,并使用uPP信道控制寄存器(UPCTL)去使用8或16数据线(8位或16位模式)。一个通道使用uPP接口配置寄存器

13、(UPICR)也可以被配置为忽略某些控制信号。每个uPP默认为8位模式,并使用所有四个控制信号,除非另外进行配置。表2-5总结了在接收和发送模式所需要的基本操作的信号。下面的小节描述每个信号的作用。 2.5.1 DATA7:0信号 在8位模式中,DATA 7:0包括该通道的整个数据总线。在16位模式,DATA 7:0包括16位字的最低-显著位。该通道的数据宽度使用UPCTL的IWX位选中。 在发送模式中,这些管脚是输出 ,为通道的相应的DMA通道提供传输数据 。当通道空闲,他们的行为取决于UPICR的TRISx位。这些引脚可以配置为驱动空闲值(的TRISx=0,在UPP接口idle值寄存器(U

14、PIVR)VALx域),或在一个高阻抗状态,空闲时(TRISx=1)。 在接收模式中,这些管脚是输入,提供数据到通道相应的DMA通道。 注意,DATA信号映射不同的DATA和XDATA管脚关于各种UPP配置。参见2.2节以获取更多信息。 2.5.2 DATA15:8信号 在8位模式中,DATA 15:8不使用。在16位模式下,DATA 15:8组成的16位字的最高8位。通一个道还可以被配置为使用其数据仅部分15:8引脚,它允许从8到16位的任何总的数据宽度。2.5.8节描述了数据格式和包装中的9位至15位的配置。 在使用时,方向和DATA的行为:在158发送和接收模式中的相同数据的方向和行为7

15、:0。 2.5.3 START信号 uPP发送器使起始信号时,它传送一个数据线的第一个字。 A线在通道的相关DMA通道来定义的;更多关于DMA编程概念,见2.4。START信号为高电平有效默认,但其极性由UPICR的STARTPOLx位控制。 在发射模式中,START是一个输出信号,并且总是驱动;在接收模式下,START是一个输入信号,并且可以使用在UPICR的STARTX位禁用。 当通道被配置为发送模式启用数据交织( 在UPCTL中SDRTXIL=1),START信号功能完全改变。 START信号,现在断言在由DMA通道一见2.5.7节这个另类的行为提供了每一个数据字。 2.5.4 ENAB

16、LE信号 2.5.5 WAIT信号 在数据传输过程中, WAIT信号允许接收者申请临时暂停。当接收者断言一个WAIT,发送者以暂停发送作为响应,直到WAIT释放。接收者忽略所有传入的数据,直到WAIT被释放。一旦WAIT被释放,发送者可以恢复对下一个字传输。如图2-5所示等待信号的时序。该WAIT信号是高电平有效默认,但其极性由UPICR所述WAITPOLx位控制。 在发送模式下,WAIT是(i)输入信号,UPICP的WAITx位可能被禁用;在接收模式下,WAIT是一个(o)输出信号。 2.5.6 CLOCK信号 2.5.7 信号时序图 在下面的图中,信号被标记(i)表明信号输入到uPP;(o

17、)表明信号从uPP输出。从单个DMA通道的数据字被指定的Dx,而数据字必须来自特定DMA通道指定Ix或Qx去分别指示DMA通道I或Q。有关DMA通道和数据的交错模式的更多信息,请参见2.4节。 所有信号图绘制在默认状态信号极性。除了数据,所有信号都在uPP接口配置寄存器(UPICR)中独立配置。注意:START断言-来自DMA通道I的每个数据字。 2.5.8 数据格式 uPP外设在UPP通道控制寄存器(UPCTL)的IWX和DPWx中设置,可支持使用8位到16位之间的任何数据字的宽度。对于8位操作,UPP读取/写入存储器的8位字;16位运算,UPP读取/写入内存的16位字。 对于N位操作(8&

18、lt;N&16),该UPP外设读取/写入内存的16位字。“额外”位通过在UPCTL所述DFWx位选择来由UPP根据一个数据打包方案进行填补。有三种可选的数据打包方式:右对齐,零扩展- 数据占用的N个LSB。在(16- N)的最高位被清0。右对齐,符号扩展- 数据占用的N个LSB。的(16- N)个MSB都相同的值(N- 1)位。左对齐,零填充- 数据占用N个MSB。在(16- N)LSB被清零。 表2-6列出了一些示例数据为N =12(即12位操作)。在发射模式中,传送的每个数据字从存储器打包版本是使用分配给UPP信道的所有16个数据引脚。在接收模式中,每个输入数据字(仅使用N个数据引脚)的填

19、充版本存储在存储器中。 2.6 初始化和操作 uPP必须正确地初始化去确保操作成功。 注意 - 当初始化UPP外设的uPP接口配置寄存器(UPICR)编程必须使用一个单一的,32位的写。一个接一个的写UPICR字段可能会导致意想不到的结果。 本节提供一步步指导初始化和运行UPP外设的各种模式。这些说明给出假定该设备刚出来的上电复位(POR)状态。 步骤2-1 1.对适当的引脚进行复用设置。请参见特定器件的数据手册和/或引脚多路复用实用程序以获取更多信息。 2. 使能uPP外设的电源和时钟。请参见特定器件的数据手册。 3.将uPP外设控制寄存器(UPPCR)的SWRST位为1,使得uPP处于软件

20、复位。 4.等待至少200器件时钟周期,然后清除SWRST位为0,以使模块脱离复位。 5.编程UPP配置寄存器:UPCTL,UPICR,UPIVR,UPTCR和UPDLB。每个寄存器的基本功能是简介如下;有关详细信息,请参阅第3节。 5a UPCTL- 发送/接收选择(见表2-7),数据宽度,数据格式,数据速率,数据交织使能 5b UPICR- 信号使能,信号反相,时钟分频(仅发送模式) 5c UPIVR- 空闲值(仅发送模式) 5d UPTCR- I / O传输阈值(仅发送模式),DMA读脉冲串大小 5e UPDLB- 数字环回(见表2-7) 6.设置uPP中断使能设置寄存器(UPIES)中

21、断产生所需的事件。注册一个中断服务例程(ISR)如果需要的话;否则,轮询是必需的。 7.设置uPP外设控制寄存器(UPPCR)的EN位为1,打开uPP外设。 8.为uPP使用去分配和/或初始化数据缓冲器。 9.设置uPP DMA通道描述符寄存器去使用带有它们第一个传输的DMA通道:UPID0-2和/或UPQD0-2。 10.留意中断事件。根据需要重新编程DMA(检查UPP DMA通道状态寄存器中的PEND位(UPxS2)为0)。 10a 如果轮询,检查UPIES。读一位为1表示相应的事件已经发生. 相应位写1来清除。 10b 如果使用ISR,检查UPIES的ISR中。根据伪代码在第2.6.4节

22、结构的ISR。 2.6.2 配置示例 uPP外设是灵活的,有多个正交配置选择。表2-7总结了选择所述模块的基本操作模式。 注意 - 数字回路(DLB)模式是一种配置,uPP内部外设路线数据和控制信号从一个通道到另一个通道。DLB只能当外设被配置在双工模式时被用(即,UPCTL.MODE=2h或3h)。DLB是用于调试目的主要是有用的,并且需要信道之间没有物理连接。标准UPP引脚多路复用必须应用,即使管脚不被使用。 除了表2-7中,有几个选择,(每通道)进行:数据宽度 - 8位,9位至16位 数据包装 - 9位到15位数据宽度 数据速率 - 单倍,双倍 数据交替 -只有单通道模式 时钟分频 -

23、只发送模式 单独控制信号使 单独控制信号的极性 空闲价值 - 只发送模式 发送阈值 - 只发送模式 DMA读脉冲串大小 表2-8列出了一个例子设置UPP参数为双工模式0。此配置会将UPP外设设置为通道A接收通道B发送的双工模式。每个信道使用16位接口与不同的数据格式。 2.6.3 系统调优技巧 uPP外设可以高速运行,以非常高的速度传输数据。当工作接近其上限的uPP,调整某些参数可以帮助减少错误的发生率和发生服务uPP数据的软件开销。表2-9列出了几个参数,可以在系统优化非常有用。一个参数被定义为一个“粗”调节,如果改变参数直接改变外设吞吐量。“精”调节不改变外设的吞吐量,但它确实影响到一般的

24、系统性能。 2.6.4 中断服务程序示例 以下伪代码用于写入uPP中断服务路由(ISR)函数的模板。请注意,UPP组合所有事件到单个CPU中断,同时如果前面的中断仍然没有从ISR返回,一个新的中断将不调用ISR。为了允许进一步调用ISR,结束中断UPP寄存器(UPEOI)必须写入零值。因此,ISR应检查多个事件,在处理每一个事件后应继续复查,直到没有更多的事件被发现。然后,它在返回之前必须写UPEOI=0。cpp view plain copyFunction upp_isr interrupt_status = UPIER while (interrupt_status != 0) if (

25、interrupt_status.EOLI) UPIER.EOLI = 1 / clear EOLI / Handle EOLI. if (interrupt_status.EOWI) UPIER.EOWI = 1 / clear EOWI / Handle EOWI. if (interrupt_status.ERRI) UPIER.ERRI = 1 / clear ERRI / Handle ERRI. if (interrupt_status.UORI) UPIER.UORI = 1 / clear UORI / Handle UORI. if (interrupt_status.DPE

26、I) UPIER.DPEI = 1 / clear DPEI / Handle DPEI. if (interrupt_status.EOLQ) UPIER.EOLQ = 1 / clear EOLQ / Handle EOLQ. if (interrupt_status.EOWQ) UPIER.EOWQ = 1 / clear EOWQ / Handle EOWQ. if (interrupt_status.ERRQ) UPIER.ERRQ = 1 / clear ERRQ / Handle ERRQ. if (interrupt_status.UORQ) UPIER.UORQ = 1 /

27、clear UORQ / Handle UORQ. if (interrupt_status.DPEQ) UPIER.DPEQ = 1 / clear DPEQ / Handle DPEQ. / loop again if any interrupts are left interrupt_status = UPIER / end of while / write end of interrupt vector to allow future calls UPEOI = 0 / end of function 2.7 复位注意事项 以下各节讨论软硬件复位的行为。 2.7.1 软件复位 软件复位

28、清零uPP内部状态机,但不重置的UPP寄存器的内容。下面的过程进行的UPP外设的软件复位。 步骤2-2: 1.向uPP外设控制寄存器(UPPCR)EN位写0(禁用uPP)。 2.查看UPPCR中DB位为活动;等到DMA控制器处于非活动状态/空闲。 3.编写UPPCR中SWRST位为1(地方UPP软件复位)。 4.编写UPPCR中SWRST位为0(UPP带来了软件复位)。 2.7.2 硬件复位 当处理器复位管脚有效,整个处理器复位,并保持复位状态,直到RESET引脚释放。作为器件复位的一部分,UPP状态机复位,UPP寄存器被强制为默认状态(见第3节)。 2.8 中断支持 UPP外设生成八个中断事

29、件,都依赖于内部的DMA通道I和Q。UPP外设自动将所有中断事件到一个单一芯片级的中断。个别事件可能使用UPP中断使能设置寄存器(UPIES)和禁用使用UPP中断使能清除寄存器(UPIEC)启用。只有启用的事件产生中断和中断使能状态寄存器(UPIER)断言位。禁用事件不会产生中断,但做断言中断原始状态寄存器(UPISR)位。 一个中断服务例程(ISR)可以被分配给处理UPP芯片级使用的中断控制器模块中断。如果发生在靠近UPP事件彼此,单个CPU的中断(并在ISR单个调用)可以代表多个中断事件。因此,UPP ISR必须符合一定的结构要求:在ISR必须能够返回前处理多个事件。在ISR必须处理后续事件,在事件发生后,但它返回之前,调用它。在ISR必须写00h到结束中断UPP寄存器(UPEOI)返回之前。这使得后续UPP事件产生CPU中断。 2.6节提供了展示这些要求的样品ISR。 2.8.1 Line结束事件(EOL) 2.8.2 Window结束事件(EOW) 2.8.3 内部总线错误事件(ERR) 2.8.4 欠载或溢出事件(UOR) 2.8.5 DMA编程错误事件

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1