关于UPP速度问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11236|回复: 9
打印 上一主题 下一主题

关于UPP速度问题

[复制链接]

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
跳转到指定楼层
楼主
发表于 2015-5-14 19:31:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
      小弟最近在用138的UPP跟FPGA通信,使用的是8位数据线宽,单速率模式,每1ms从FPGA端发送2K左右字节的数据,DSP端接收数据,每次写完DMA的三个寄存器后直到DMA传输完成,接收这2KBytes需要的时间竟然用了1.7ms左右,不知道为什么会这么慢?FPGA发送的时钟为20MHZ。请问DSP的UPP侧不是不每次收到FPGA发的start信号,才开始接收数据呢?6 m. w( t! H0 @: F- w0 _9 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
10#
 楼主| 发表于 2015-11-10 18:53:34 | 只看该作者
zhuma 发表于 2015-9-11 09:54; T, t4 m# n; w
l楼主你好,我最近也在做FPGA与DSP之间的图像数据的传输,我想请教一下,请问这个CLOCK START ENABLE 配置 ...
  w9 q& ~9 R0 w! U: z) o
寄存器初始化那里就给出来了啊,如果DSP要发数据给FPGA, 那么CLOCK是由DSP去控制的,如果DSP要接收FPGA的数据,则CLOCK是由FPGA控制的,START跟ENABLE信号是用来控制发送使能的。这是我的初始化配置(我是用8位宽度通信的,对于DSP来说,B是发送,A是接收):* B) G$ [; x! n
static void UPPInit(void)
8 j' S. ]: s( }) |5 B{; z- ~! |( A, N' t6 j1 o
    unsigned int temp_reg = 0;
2 i1 A7 ~. w0 u' n% G$ c7 D7 e+ B8 C$ E; h" m( D. y& ^# |  {
    // Channel B params
# V7 Q2 e% i2 n3 p& B- p; c    CSL_FINST(temp_reg, UPP_UPCTL_DPFB, LJZF);     //Left-justified, zero filled
# o( [2 i5 y- c2 u* h- o7 Q    CSL_FINST(temp_reg, UPP_UPCTL_IWB, 8BIT);      //8-bit interface
. r; r7 Q, C! k7 z    CSL_FINST(temp_reg, UPP_UPCTL_DPWB, FULL);     //Channel B bit width = 8
5 v: z, s: B' k; ]- X    CSL_FINST(temp_reg, UPP_UPCTL_DRB, SINGLE);    //Single data rate# q* [8 `3 E, d6 q/ y& w
( `* [5 e0 }) t, K% \
    // Channel A params8 Y+ d2 P' z$ Y  O$ u- k: r
    CSL_FINST(temp_reg, UPP_UPCTL_DPFA, LJZF);     //Left-justified, zero filled
0 y! U3 |7 c0 X. x    CSL_FINST(temp_reg, UPP_UPCTL_IWA, 8BIT);      //8-bit interface4 H% L: f8 w; |
    CSL_FINST(temp_reg, UPP_UPCTL_DPWA, FULL);     //Channel A bit width = 8
: s2 V/ }. l1 d6 L    CSL_FINST(temp_reg, UPP_UPCTL_DRA, SINGLE);    //Single data rate, a& w8 }; {# f- {$ u/ Z

7 D- U4 H7 }- l; j    CSL_FINST(temp_reg, UPP_UPCTL_CHN, TWO);       //Channel A and Channel B are both active.
# w0 p8 a! w) Z$ Z- U; _' B    CSL_FINST(temp_reg, UPP_UPCTL_MODE, DUPLEX0);  //Channel B transmit Channel A receive
, s) `) Y5 L, }, G6 w. i7 d0 ^3 R; t( F
    upp_reg_hdl->UPCTL = temp_reg;
  y6 C/ r* x5 |2 d/ v
$ |6 M: U, ?4 @2 m4 X9 Z8 I4 Y7 U    temp_reg = 0;   
4 U1 V; U/ X$ W" _3 o0 e, e. C( B) S( c
    // Channel A params/ |) S, f$ D2 R0 O8 I7 @% B" v7 \
    //CSL_FINST(temp_reg, UPP_UPICR_TRISA, ENABLE);  //Channel A data pins are in a high-impedance state while idle
' c& S* N: Y7 O$ b; S% ?    //CSL_FINS(temp_reg, UPP_UPICR_CLKDIVA, UPP_CLOCK_DIV); //Clock divisor+ t; y/ a$ T5 A3 k$ [1 ?
    CSL_FINST(temp_reg, UPP_UPICR_STARTA, ENABLE); //Channel A START Signal Enable.
' Z" e+ }! O7 ?; A. r7 W: T    CSL_FINST(temp_reg, UPP_UPICR_ENAA, ENABLE);   //Channel A ENABLE Signal Enable
* q( [* h: ^- p7 w0 u
7 K1 j5 L5 Y1 z8 f) x! D; i6 f- o    // Channel B params
6 n8 _& @' P# W% j    CSL_FINS(temp_reg, UPP_UPICR_CLKDIVB, UPP_CLOCK_DIV);- j& [! S  u% c5 x
    CSL_FINST(temp_reg, UPP_UPICR_STARTB, ENABLE); //Channel B START Signal Enable." f; u# z0 V$ y3 ?. ?* E. q3 M
    CSL_FINST(temp_reg, UPP_UPICR_ENAB, ENABLE);  //Channel B ENABLE Signal Enable
( q- P* |+ X: u( U5 ?) Y9 D  v6 ^1 ]2 i( P
    upp_reg_hdl->UPICR = temp_reg;& m6 v! ~! S/ x0 }/ w& ]  Q* C

( N/ k; m7 {5 C    //temp_reg = 0;
+ @2 f# J; z1 q3 J6 z. B, g
- {7 f& V  A5 G    //CSL_FINS(temp_reg, UPP_UPIVR_VALB, 0x7b7b);   //Channel B idle value8 p$ \1 f" ?# g0 I' l# w
    //CSL_FINS(temp_reg, UPP_UPIVR_VALA, 0x7f7f);   //Channel A idle value
! l$ x9 H3 ^7 s# P# ]6 i3 ]( d2 [( _2 y$ k% i/ {
    //upp_reg_hdl->UPIVR = temp_reg;
7 Q2 }$ J  `+ v. I
; S5 v, v' C8 L0 Z' T! g    //temp_reg = 0;; h% a+ L" C. Y* I
. `0 p0 ~) q2 l& p
    //CSL_FINST(temp_reg, UPP_UPTCR_RDSIZEI, 256B);  //set 256B DMA I
7 y4 M% q- W1 H# E6 X    //upp_reg_hdl->UPTCR = temp_reg;
. _3 w8 j0 q& u! n' Q5 a: B6 N. m3 [6 F
    //temp_reg = 0;3 I$ m9 R+ Q9 z6 n4 c
    //CSL_FINST(temp_reg, UPP_UPDLB_BA, ENABLE);  //B to A loopback mode enable
7 u% a7 {' ~& k* f  K- O9 }. D" L    //upp_reg_hdl->UPDLB = temp_reg;
5 Q9 b: m& ^1 D$ {# w; b 9 t9 S0 D7 M9 K# R
}
回复 支持 反对

使用道具 举报

0

主题

184

帖子

1137

积分

QQ游客

积分
1137
9#
发表于 2015-11-3 09:33:28 | 只看该作者
CLOCK需要配置频率,START和ENABLE配置使能或者禁用,还有极性
回复 支持 反对

使用道具 举报

1

主题

11

帖子

1064

积分

金牌会员

Rank: 6Rank: 6

积分
1064
8#
发表于 2015-9-11 09:54:41 | 只看该作者
l楼主你好,我最近也在做FPGA与DSP之间的图像数据的传输,我想请教一下,请问这个CLOCK START ENABLE 配置是怎么样弄得,我研究了创龙给的事例程序,感觉没有在里面找到关于这几个信号的配置信息,楼主能不能指点一下?
回复 支持 反对

使用道具 举报

3

主题

14

帖子

75

积分

注册会员

Rank: 2

积分
75
7#
发表于 2015-5-18 10:56:05 | 只看该作者
weibo1988821 发表于 2015-5-15 15:19
4 L0 u/ [/ g' f4 ?DDR存储数据慢是必然的,L2不用开缓存使用,直接使用就行,把你的接收数组放在L2区即可 ...

+ Z$ V5 {7 l2 ^2 z你好,”接收数组放在L2区“语句怎样实现?
回复 支持 反对

使用道具 举报

2

主题

50

帖子

502

积分

版主

Rank: 7Rank: 7Rank: 7

积分
502
6#
发表于 2015-5-15 15:19:47 | 只看该作者
378087736 发表于 2015-5-15 11:34
9 ?1 B' |' O0 m0 n; p  Y数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了 ...

( A3 R6 c* t5 D  s. PDDR存储数据慢是必然的,L2不用开缓存使用,直接使用就行,把你的接收数组放在L2区即可
回复 支持 反对

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
5#
 楼主| 发表于 2015-5-15 11:34:18 | 只看该作者
weibo1988821 发表于 2015-5-14 19:401 y+ q& j1 d" V$ `1 B9 s4 e
你的数据是写入L2区还是DDR?DDR的数据读写是很慢的
/ ~& r! _' f* E2 N
数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了,呵呵,大侠,如果要用32K 的L2 Cache存UPP接收数据的话,应该怎么用啊?
回复 支持 反对

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
地板
 楼主| 发表于 2015-5-15 11:33:43 | 只看该作者
weibo1988821 发表于 2015-5-14 19:40
, v# q; D, p" q5 [; j你的数据是写入L2区还是DDR?DDR的数据读写是很慢的
8 D5 a3 {) U4 H+ I4 b1 G* I
数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了,呵呵,大侠,如果要用32K 的L2 Cache存UPP接收数据的话,应该怎么用啊?
回复 支持 反对

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
板凳
 楼主| 发表于 2015-5-15 11:33:01 | 只看该作者
weibo1988821 发表于 2015-5-14 19:40
# P, q4 i! \" c+ I! U+ \你的数据是写入L2区还是DDR?DDR的数据读写是很慢的

# _- `6 v2 [" j% }1 f, y. W  b8 g数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了,呵呵,大侠,如果要用32K 的L2 Cache存UPP接收数据的话,应该怎么用啊?
回复 支持 反对

使用道具 举报

2

主题

50

帖子

502

积分

版主

Rank: 7Rank: 7Rank: 7

积分
502
沙发
发表于 2015-5-14 19:40:04 | 只看该作者
你的数据是写入L2区还是DDR?DDR的数据读写是很慢的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-9-17 09:34 , Processed in 0.047275 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表