您好,欢迎来到61ic! | [登录] [注册] 忘记密码 | 设为首页 帮助
 . 网站首页 . 业界新闻 . 设计中心 . 移动技术 . TI专栏 . ADI专栏 . FPGA专栏 . 代码工厂 . 官方商城 . 
 . 活动专区 . 新品快递 . 解决方案 . 前沿科技 . TI资源 . ADI资源 . FPGA资源 . 下载中心 . 产品展示 . 
加入收藏
付款方式
联系我们
您现在的位置: 61IC电子在线 >> TI专栏 >> TI C6000 DSP和ARM >> OMAP-L1x处理器 >> 正文
  [组图]OMAPL138的uPP通信(1)---DSP篇           ★★★ 【字体:
OMAPL138的uPP通信(1)---DSP篇
作者:xjf616    文章来源:xjf616    点击数:    更新时间:2013-10-24    
OMAPL138有多种地址数据总线如I2CSPIUART,这些接口能够满足一般的低速传送要求,但是在高速协同中却不能满足数据传输的需求。

    OMAPL138的高速传输接口即uPP(通用并行接口),专门用于大量数据送入内存或从中读出数据。uPP的传输速率为每时钟周期1个数据字(8位或16);或者针对双数据速率为每时钟周期2个数据字,但是时钟速率必须减半。uPP时钟速率可以高达处理器时钟速率的一半。对于在300MHz下运行的OMAP-L138处理器,uPP时钟可以达到75MHz。这使吞吐量可以达到150MB/s


以下是笔者在使用过程中对uPP的一些理解,记录以备忘。

 

1、  首先是uPP都有哪些IO资源,通信时会使用其中的哪些管脚?

上图可看出uPP有两个通道即通道A和通道B,通道AB都具有各自STARTENABLEWAITCLOCK信号控制管脚。而两个十六位的数据管脚DATA[15:0]不直接对应通道AXDATA[15:0]也不直接对应通道B。数据管脚DATA[15:0]XDATA[15:0]与通道AB的对应关系是通过配置寄存器uPCTL来实现的,如下图

UPCTL寄存器中的CHN IWA IWB 决定AB通道与DATA[15:0]XDATA[15:0]的关系。

举个例子,如果只想用通道A来接收数据,16位数据宽,配置代码如下

config.UPCTL.bits.IWA = 1;           //16 bit interface  &   16 bit data

config.UPCTL.bits.CHN = 0;           //only channel A is active ; single channel mode

config.UPCTL.bits.MODE = 0;          // all receive mode

其中MODE位配置uPP的收发模式,见下图:



2、  时钟

无论是同步还是异步,都必须有时钟源。uPP是同步的,发送方提供时钟源。

传输模式使用内部时钟:


上图的transmit Clock通过查看相关的手册可知是锁相环得出的PLL0_SYSCLK2,再将其二分频后再经过(UPICR.CLKDIV+1)分频,得到CLOCK pin的频率。

     

  接收模式使用外部时钟方式:




3、数据触发方式

单倍数据传输:SDR数据信号只能在时钟上升沿或者下降沿触发有效 

双倍数据传输:DDR数据信号在时钟上升沿和下降沿都触发有效  

 

 4DMAuPP具有2个独立的DMA模块(暂且这么翻译),分别称为DMA模块IDMA模块Q

通道AB在传输数据时是通过DMA模块来实现的,DMA模块与通道的对应关系如下图:



什么时候用到DMA I模块,什么时候用到DMA Q模块呢?或者两者都用上了,这是有你的通道AB使用情况决定的,如果是前面例子中的配置即

config.UPCTL.bits.IWA = 1;              //16 bit interface  &   16 bit data

config.UPCTL.bits.CHN = 0;              //only channel A is active ; single channel mode

config.UPCTL.bits.MODE = 0;             // all receive mode

只使用A通道,只接收模式,则对应上图DMA I模块将会为A通道服务,DMA Q模块不使用。

 



5DMA专用术语Windows AddressByte CountLine CountLine Offset Address在内存中关系。





上图很清楚的告诉我们Windows Address只指其起始地址,Line Offset Address 是指其偏移地址。然后一个疑问是为什么在图中看来,Line1Line2永远都分开着,LineLine之间是连续存放的还是无间隙的?

仔细阅读datasheet会发现,在述说这段的文字中总强调起始地址最好设置为aligned to a 64-bit (that is, the 3 LSBs must equal 0).再一琢磨,如果起始地址达到了aligned to a 64-bit 的要求,那LineLine就是无缝连接了。而且在实际应用中,LineLine之间都是连续存放的,因为配置DMA channel 的寄存器UPTCR只提供了64Bytes 128Bytes 256Bytes选项。

 

 

6、时序图




上图是单通道接收SDR模式,看似好好的时序图,START信号高电平使能整个uPP接收,但是datasheet中却表示START的极性是可以通过STARTx bit in UPICR来修改的,即START可以低电平触发使能uPP。给人一种感觉:start enalbe wait 信号又是可以禁止又是可以使能的,很容易迷惑人。到底怎么配置能达到通信要求,参考时序图,还是发送方接收方不一样配置?

回头一想,startenable的极性都可以自己定义,只要发送和接收配置成一致就行了,因为uPP大多时候用于与adc的无缝连接,虽然adc都是高电平触发使能的,但也没准有的adc是下降沿使能触发的。即adc也可能是高电平使能也可能是低电平使能。startenable信号极性使能的可配置型使得应用adc更加自由不再拘束了。

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    OMAPL138的uPP通信(2)---F…
    基于OMAPL138的linux内核移植
    OMAPL138 ubifs文件系统移植…
    GDBSERVER 用于OMAPL138调试…
    OMAPL138的DVSDK安装与使用(…
    OMAPL138的DVSDK安装与使用(…
    OMAPL138的DVSDK安装与使用(…
    OMAP片上PRU指令集
    OMAPL138开发笔记
    OMAPL138 pinmux setting
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61 湘ICP备13001086号-2