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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10763|回复: 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信号,才开始接收数据呢?# o; c) e% F- r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

2

主题

50

帖子

502

积分

版主

Rank: 7Rank: 7Rank: 7

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

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
板凳
 楼主| 发表于 2015-5-15 11:33:01 | 只看该作者
weibo1988821 发表于 2015-5-14 19:404 [) q/ [2 O0 ?
你的数据是写入L2区还是DDR?DDR的数据读写是很慢的
: ~  C( a) j3 X) \
数据是写到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
6 ]6 o3 F  \2 F) l2 b7 n. ]你的数据是写入L2区还是DDR?DDR的数据读写是很慢的

* e9 T, T& @; d6 ]数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了,呵呵,大侠,如果要用32K 的L2 Cache存UPP接收数据的话,应该怎么用啊?
回复 支持 反对

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
5#
 楼主| 发表于 2015-5-15 11:34:18 | 只看该作者
weibo1988821 发表于 2015-5-14 19:40/ ~" ?- u4 T' {
你的数据是写入L2区还是DDR?DDR的数据读写是很慢的

. d/ r' m# k( A6 T4 C+ e数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了,呵呵,大侠,如果要用32K 的L2 Cache存UPP接收数据的话,应该怎么用啊?
回复 支持 反对

使用道具 举报

2

主题

50

帖子

502

积分

版主

Rank: 7Rank: 7Rank: 7

积分
502
6#
发表于 2015-5-15 15:19:47 | 只看该作者
378087736 发表于 2015-5-15 11:346 c1 _  X0 ^. B) u
数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了 ...
2 Z7 ?) h  ~6 Z9 p: j$ m) x
DDR存储数据慢是必然的,L2不用开缓存使用,直接使用就行,把你的接收数组放在L2区即可
回复 支持 反对

使用道具 举报

3

主题

14

帖子

75

积分

注册会员

Rank: 2

积分
75
7#
发表于 2015-5-18 10:56:05 | 只看该作者
weibo1988821 发表于 2015-5-15 15:19
/ v* U  ^! L8 Q6 a% ~DDR存储数据慢是必然的,L2不用开缓存使用,直接使用就行,把你的接收数组放在L2区即可 ...
, [& F' F: o/ x* m  J3 H
你好,”接收数组放在L2区“语句怎样实现?
回复 支持 反对

使用道具 举报

1

主题

11

帖子

1064

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

0

主题

184

帖子

1137

积分

QQ游客

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

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
10#
 楼主| 发表于 2015-11-10 18:53:34 | 只看该作者
zhuma 发表于 2015-9-11 09:54& h  h2 W, q' H: _3 l4 r
l楼主你好,我最近也在做FPGA与DSP之间的图像数据的传输,我想请教一下,请问这个CLOCK START ENABLE 配置 ...
$ L) \, {- ?  C6 F9 Y( s2 j) M: p
寄存器初始化那里就给出来了啊,如果DSP要发数据给FPGA, 那么CLOCK是由DSP去控制的,如果DSP要接收FPGA的数据,则CLOCK是由FPGA控制的,START跟ENABLE信号是用来控制发送使能的。这是我的初始化配置(我是用8位宽度通信的,对于DSP来说,B是发送,A是接收):8 T  ]6 Q" T1 Z, w
static void UPPInit(void). l5 F4 a% l  C: o; o! c9 ?
{3 H0 l3 v  T$ C$ I' k
    unsigned int temp_reg = 0;  Z0 ^* K& s" w4 D) l2 z; B% m

& X- m4 Z  J% U6 o/ p3 }4 Z    // Channel B params& j% E. A" h1 I& L
    CSL_FINST(temp_reg, UPP_UPCTL_DPFB, LJZF);     //Left-justified, zero filled
  U+ ~7 k9 \) x( U+ G+ P6 \    CSL_FINST(temp_reg, UPP_UPCTL_IWB, 8BIT);      //8-bit interface) W  Q+ R: q4 S/ z- `& c4 V
    CSL_FINST(temp_reg, UPP_UPCTL_DPWB, FULL);     //Channel B bit width = 8) o  J& K& l" h
    CSL_FINST(temp_reg, UPP_UPCTL_DRB, SINGLE);    //Single data rate
4 R1 Y" o; b9 a2 T3 U& f7 I+ K" R1 n; K! F+ D+ E1 Y
    // Channel A params
+ n6 w8 _) a% F- S    CSL_FINST(temp_reg, UPP_UPCTL_DPFA, LJZF);     //Left-justified, zero filled" ?' M9 L( Z  b" B0 b; f2 }
    CSL_FINST(temp_reg, UPP_UPCTL_IWA, 8BIT);      //8-bit interface* g0 b' t& A  @  l
    CSL_FINST(temp_reg, UPP_UPCTL_DPWA, FULL);     //Channel A bit width = 8+ P2 F1 n7 t4 q( S$ Y- Y* b, e! U  P
    CSL_FINST(temp_reg, UPP_UPCTL_DRA, SINGLE);    //Single data rate
# e7 r0 @6 k- T4 H$ f( S2 n8 B# p, f7 m/ X' g- R8 p- t
    CSL_FINST(temp_reg, UPP_UPCTL_CHN, TWO);       //Channel A and Channel B are both active.
+ M7 B) z7 v5 |! W) W( M+ I- r    CSL_FINST(temp_reg, UPP_UPCTL_MODE, DUPLEX0);  //Channel B transmit Channel A receive
$ z( _. ~( T8 n! ]+ }9 h1 ~! e- k9 c3 N
    upp_reg_hdl->UPCTL = temp_reg;1 D  r$ E* p$ k2 `
7 D+ T+ ~7 F3 K* T
    temp_reg = 0;   ( ^  P  I( C9 O. o$ ^/ O

1 g$ }5 z/ y  K, ^    // Channel A params
5 i* l* V# a3 b' @; b. r    //CSL_FINST(temp_reg, UPP_UPICR_TRISA, ENABLE);  //Channel A data pins are in a high-impedance state while idle
1 h2 D9 I' V! e( s/ E: Y3 q    //CSL_FINS(temp_reg, UPP_UPICR_CLKDIVA, UPP_CLOCK_DIV); //Clock divisor
# N0 A( Q! x0 s0 G    CSL_FINST(temp_reg, UPP_UPICR_STARTA, ENABLE); //Channel A START Signal Enable.) g& b7 z2 R; b" u
    CSL_FINST(temp_reg, UPP_UPICR_ENAA, ENABLE);   //Channel A ENABLE Signal Enable
8 F4 R/ t: t+ k
6 F( o( _0 {3 J5 h/ W  S. D    // Channel B params  r+ J/ v" Q7 H2 w! @
    CSL_FINS(temp_reg, UPP_UPICR_CLKDIVB, UPP_CLOCK_DIV);
- s& [/ ^( d& H: O/ _% ~    CSL_FINST(temp_reg, UPP_UPICR_STARTB, ENABLE); //Channel B START Signal Enable.& k: S. o. H1 m$ H0 L! }) R# P
    CSL_FINST(temp_reg, UPP_UPICR_ENAB, ENABLE);  //Channel B ENABLE Signal Enable
4 R* O/ {! T. o, X5 o; s
) R1 U2 [+ {6 Q9 `3 J0 C    upp_reg_hdl->UPICR = temp_reg;6 g+ r- D. I1 _6 d' |4 @1 R4 D3 ?
8 Y- u( m9 z* t) K6 c
    //temp_reg = 0;8 j/ |% C& M& Z) K5 @

) J$ A! j9 J8 D. N    //CSL_FINS(temp_reg, UPP_UPIVR_VALB, 0x7b7b);   //Channel B idle value
. v; ?$ x: O9 p$ Q- n5 f    //CSL_FINS(temp_reg, UPP_UPIVR_VALA, 0x7f7f);   //Channel A idle value
, n  ?+ r( t& ~8 x- L3 B: S1 }
! T- o/ D3 J6 Y2 j    //upp_reg_hdl->UPIVR = temp_reg;  c8 I8 y* P! z" V% ]
3 F2 D& [( o$ j6 x% m
    //temp_reg = 0;- P3 v4 B- Q" [2 d- M$ L" x5 K

4 U9 b3 I3 I* A, N. L    //CSL_FINST(temp_reg, UPP_UPTCR_RDSIZEI, 256B);  //set 256B DMA I
3 j+ N& x+ _; k" ?    //upp_reg_hdl->UPTCR = temp_reg;" q2 Q  v$ l" D2 r8 ~/ M" T/ a
! \) U9 L  S* V* j
    //temp_reg = 0;
# V* s% U0 q  h0 [    //CSL_FINST(temp_reg, UPP_UPDLB_BA, ENABLE);  //B to A loopback mode enable
7 m9 Q3 X; ]3 W* I/ v8 C/ r    //upp_reg_hdl->UPDLB = temp_reg;# o1 a9 o% D" y' h

: y; C. S# Q) P}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 17:57 , Processed in 0.043009 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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