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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11637|回复: 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信号,才开始接收数据呢?
4 c, E( }/ k. a; f% ~
分享到:  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:40' O' Y. u0 i# I* Z6 r" U
你的数据是写入L2区还是DDR?DDR的数据读写是很慢的
' r' b7 z; k+ V9 ~
数据是写到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:406 u0 ]  o/ y2 ^  [7 Z$ m  Q" u
你的数据是写入L2区还是DDR?DDR的数据读写是很慢的

0 h) T1 k; K4 _数据是写到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
" v( T5 b& Y5 D) s9 `你的数据是写入L2区还是DDR?DDR的数据读写是很慢的
2 `! {+ W' R0 _! n& N  x" T
数据是写到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:349 g2 N9 K3 U. G( ]7 W
数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了 ...

- O. U4 ~" ?! i! i6 }: K" l0 [; |DDR存储数据慢是必然的,L2不用开缓存使用,直接使用就行,把你的接收数组放在L2区即可
回复 支持 反对

使用道具 举报

3

主题

14

帖子

75

积分

注册会员

Rank: 2

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

/ [7 z% M' F' F7 q; A你好,”接收数组放在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:545 T& S4 [$ x- a. j
l楼主你好,我最近也在做FPGA与DSP之间的图像数据的传输,我想请教一下,请问这个CLOCK START ENABLE 配置 ...
: m) A1 ?$ |' G; c. G
寄存器初始化那里就给出来了啊,如果DSP要发数据给FPGA, 那么CLOCK是由DSP去控制的,如果DSP要接收FPGA的数据,则CLOCK是由FPGA控制的,START跟ENABLE信号是用来控制发送使能的。这是我的初始化配置(我是用8位宽度通信的,对于DSP来说,B是发送,A是接收):
+ y/ E3 v( ^6 ystatic void UPPInit(void)
$ S5 @0 W. ^7 O{
2 `! i. Z8 S: r" n    unsigned int temp_reg = 0;  P1 X" P7 v1 @; g7 n+ O, n

7 @; D( v7 F3 s& I3 u  c) [0 }% h    // Channel B params
" ?& F, r' S! a9 ]& }5 Z    CSL_FINST(temp_reg, UPP_UPCTL_DPFB, LJZF);     //Left-justified, zero filled3 Q" P. _# d5 |" [* I) B
    CSL_FINST(temp_reg, UPP_UPCTL_IWB, 8BIT);      //8-bit interface6 A. g7 t) j5 q& S  w7 @% b
    CSL_FINST(temp_reg, UPP_UPCTL_DPWB, FULL);     //Channel B bit width = 8+ c% S+ L& H3 y7 t% K# f) g
    CSL_FINST(temp_reg, UPP_UPCTL_DRB, SINGLE);    //Single data rate
; \$ ^) y8 p9 R0 W( L, R" C. E) {5 b% X
    // Channel A params
; ^* J* x0 _, C: I9 i& S0 ~( {    CSL_FINST(temp_reg, UPP_UPCTL_DPFA, LJZF);     //Left-justified, zero filled
' `, g1 n% g' I1 T% Q' t+ i    CSL_FINST(temp_reg, UPP_UPCTL_IWA, 8BIT);      //8-bit interface
% G* ~# S3 Q% H% I* j( E( G    CSL_FINST(temp_reg, UPP_UPCTL_DPWA, FULL);     //Channel A bit width = 8/ Y+ u1 W6 \; I! W) Z
    CSL_FINST(temp_reg, UPP_UPCTL_DRA, SINGLE);    //Single data rate) y( ]1 i- ]" ~8 a/ [+ a% z4 f

2 v& T+ r2 ]. [% F8 a& L) l2 g    CSL_FINST(temp_reg, UPP_UPCTL_CHN, TWO);       //Channel A and Channel B are both active.2 E  t0 Q; ~5 C0 w2 `* G7 ?
    CSL_FINST(temp_reg, UPP_UPCTL_MODE, DUPLEX0);  //Channel B transmit Channel A receive1 F, J6 [) T) W0 W7 Y
8 h+ L2 U9 O$ E
    upp_reg_hdl->UPCTL = temp_reg;: X% o2 |, J( [

+ F4 {7 M. b; Q1 f/ u( F. O" }/ Q    temp_reg = 0;   ) \) B! c% }/ q9 |+ y: |
, I9 k2 n; Q( n7 X" i; X
    // Channel A params8 H! Q5 m/ B5 l& B
    //CSL_FINST(temp_reg, UPP_UPICR_TRISA, ENABLE);  //Channel A data pins are in a high-impedance state while idle# a. h& z% }+ G9 ?
    //CSL_FINS(temp_reg, UPP_UPICR_CLKDIVA, UPP_CLOCK_DIV); //Clock divisor# G0 p) d: ]# r# w; h
    CSL_FINST(temp_reg, UPP_UPICR_STARTA, ENABLE); //Channel A START Signal Enable.
  C& L! ~% K7 Z% F1 {% m    CSL_FINST(temp_reg, UPP_UPICR_ENAA, ENABLE);   //Channel A ENABLE Signal Enable. ]+ ^/ T- D' @
" y# ?( [8 Y* q0 }6 x4 H
    // Channel B params
9 H+ k! x; A: r# x# o6 v% b, X* A$ F    CSL_FINS(temp_reg, UPP_UPICR_CLKDIVB, UPP_CLOCK_DIV);
! N, I" G( c" t( s: V, N3 J( T    CSL_FINST(temp_reg, UPP_UPICR_STARTB, ENABLE); //Channel B START Signal Enable.
: w9 g" ]4 C% E% G- g    CSL_FINST(temp_reg, UPP_UPICR_ENAB, ENABLE);  //Channel B ENABLE Signal Enable
: J! A8 d! I! r0 F# ~' E) G, g* z+ L; f% j
    upp_reg_hdl->UPICR = temp_reg;
3 a" P$ W/ t  c/ R% x! \8 H0 V" r# t( O# V$ j
    //temp_reg = 0;, M% J' I& ^; u4 Y6 b; h

- o, a$ U4 i& T+ ]3 ^    //CSL_FINS(temp_reg, UPP_UPIVR_VALB, 0x7b7b);   //Channel B idle value
1 Y* e- y: J, B' a+ k  l    //CSL_FINS(temp_reg, UPP_UPIVR_VALA, 0x7f7f);   //Channel A idle value/ Q8 Y6 o. g9 Y/ D1 B

1 r- ~3 @$ H* c8 P  x9 a    //upp_reg_hdl->UPIVR = temp_reg;
9 r. A0 T% ]9 Z
* M2 J. R( M  V! R, {# R- s    //temp_reg = 0;
# T- [3 {  o- Q$ v
/ |8 G1 a4 \6 ~- b    //CSL_FINST(temp_reg, UPP_UPTCR_RDSIZEI, 256B);  //set 256B DMA I
& Z( S2 d( i: N4 g, N    //upp_reg_hdl->UPTCR = temp_reg;* f" S6 }! C; P2 j7 i# S

  i" J+ o- k1 g/ z    //temp_reg = 0;  G6 h, K; P5 I! v7 t: Z$ ]7 X
    //CSL_FINST(temp_reg, UPP_UPDLB_BA, ENABLE);  //B to A loopback mode enable
8 N5 I0 z+ ^  J  r: `5 l" u, t+ `& z    //upp_reg_hdl->UPDLB = temp_reg;
: ~8 E( D) c1 y# k& Y2 G 5 P( W$ J4 s/ ?- P
}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-21 13:50 , Processed in 0.043974 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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