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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8930|回复: 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信号,才开始接收数据呢?# |0 T# l; E, V6 o' B, S( O
回复

使用道具 举报

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& B* y& h% p) J' t3 d8 p9 ?
你的数据是写入L2区还是DDR?DDR的数据读写是很慢的

. z* B( F' M, n$ N1 p  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:408 W3 B% a* ?# q, o' F
你的数据是写入L2区还是DDR?DDR的数据读写是很慢的

# B+ L! _6 Q, X, P. d数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了,呵呵,大侠,如果要用32K 的L2 Cache存UPP接收数据的话,应该怎么用啊?
回复 支持 反对

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
 楼主| 发表于 2015-5-15 11:34:18 | 显示全部楼层
weibo1988821 发表于 2015-5-14 19:40
; n( a# Y  u$ X: \你的数据是写入L2区还是DDR?DDR的数据读写是很慢的
2 t* n* j. D  y6 F7 F9 D
数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了,呵呵,大侠,如果要用32K 的L2 Cache存UPP接收数据的话,应该怎么用啊?
回复 支持 反对

使用道具 举报

2

主题

50

帖子

502

积分

版主

Rank: 7Rank: 7Rank: 7

积分
502
发表于 2015-5-15 15:19:47 | 显示全部楼层
378087736 发表于 2015-5-15 11:34
4 y, y# ~  @  _& V/ s, @6 Q& V数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了 ...
0 f7 k2 m  I* l' V& L2 _
DDR存储数据慢是必然的,L2不用开缓存使用,直接使用就行,把你的接收数组放在L2区即可
回复 支持 反对

使用道具 举报

3

主题

14

帖子

75

积分

注册会员

Rank: 2

积分
75
发表于 2015-5-18 10:56:05 | 显示全部楼层
weibo1988821 发表于 2015-5-15 15:19
5 g, g5 v4 u: V$ Q3 l. K0 b1 cDDR存储数据慢是必然的,L2不用开缓存使用,直接使用就行,把你的接收数组放在L2区即可 ...

( |! u5 c5 F1 t$ {+ `你好,”接收数组放在L2区“语句怎样实现?
回复 支持 反对

使用道具 举报

1

主题

11

帖子

1064

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

0

主题

184

帖子

1137

积分

QQ游客

积分
1137
发表于 2015-11-3 09:33:28 | 显示全部楼层
CLOCK需要配置频率,START和ENABLE配置使能或者禁用,还有极性
回复 支持 反对

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
 楼主| 发表于 2015-11-10 18:53:34 | 显示全部楼层
zhuma 发表于 2015-9-11 09:54( @8 R: H( I! J8 S$ ^9 C# N( Y: O
l楼主你好,我最近也在做FPGA与DSP之间的图像数据的传输,我想请教一下,请问这个CLOCK START ENABLE 配置 ...

; a5 p7 |6 E5 ~! C, R0 _" x寄存器初始化那里就给出来了啊,如果DSP要发数据给FPGA, 那么CLOCK是由DSP去控制的,如果DSP要接收FPGA的数据,则CLOCK是由FPGA控制的,START跟ENABLE信号是用来控制发送使能的。这是我的初始化配置(我是用8位宽度通信的,对于DSP来说,B是发送,A是接收):
# Q6 p* ^+ h8 }static void UPPInit(void)% c. [9 X: L- y5 S$ ~
{8 S: L1 w- _: l9 @
    unsigned int temp_reg = 0;
; e! R+ S) E9 ]: N! J. j. V9 ^$ X7 H
    // Channel B params
( l( h$ M. s3 R0 M& [% V  e8 \    CSL_FINST(temp_reg, UPP_UPCTL_DPFB, LJZF);     //Left-justified, zero filled
; G5 X' ~3 h; `7 U% f    CSL_FINST(temp_reg, UPP_UPCTL_IWB, 8BIT);      //8-bit interface
! J' A) \8 v1 ~! l2 C1 k    CSL_FINST(temp_reg, UPP_UPCTL_DPWB, FULL);     //Channel B bit width = 87 p5 u9 d: t: Q- j% o3 X, r
    CSL_FINST(temp_reg, UPP_UPCTL_DRB, SINGLE);    //Single data rate7 |8 ?/ O3 c% N2 y& T. f

6 d  x5 D: Q) p$ e; b    // Channel A params, L( G, t/ {1 r1 [
    CSL_FINST(temp_reg, UPP_UPCTL_DPFA, LJZF);     //Left-justified, zero filled- ~8 z4 A0 d+ l/ q7 P
    CSL_FINST(temp_reg, UPP_UPCTL_IWA, 8BIT);      //8-bit interface
: m' z2 G" w: `6 c    CSL_FINST(temp_reg, UPP_UPCTL_DPWA, FULL);     //Channel A bit width = 8
( T# ~9 T: n( @; t: r* N; ?& _) |    CSL_FINST(temp_reg, UPP_UPCTL_DRA, SINGLE);    //Single data rate
2 O! f  Z/ b5 O: D! b
9 i5 F0 G' z/ V. S3 N# g" S    CSL_FINST(temp_reg, UPP_UPCTL_CHN, TWO);       //Channel A and Channel B are both active.
& P, H" P' l7 p5 ~, G    CSL_FINST(temp_reg, UPP_UPCTL_MODE, DUPLEX0);  //Channel B transmit Channel A receive: N4 Y- @& v; `' e

7 P3 \" S* d' j- `* ~; r9 v    upp_reg_hdl->UPCTL = temp_reg;  M* M2 A: ]3 P7 m
) f1 G+ V- T: _$ l
    temp_reg = 0;   
& A6 Y* K$ l( q/ P; c4 U$ W# u; W: l8 q! W
    // Channel A params
/ h+ k; l% h( G# K; `0 s( t    //CSL_FINST(temp_reg, UPP_UPICR_TRISA, ENABLE);  //Channel A data pins are in a high-impedance state while idle. }  s6 L6 r3 F( [
    //CSL_FINS(temp_reg, UPP_UPICR_CLKDIVA, UPP_CLOCK_DIV); //Clock divisor
7 i* |+ e+ S; W4 i1 q2 x    CSL_FINST(temp_reg, UPP_UPICR_STARTA, ENABLE); //Channel A START Signal Enable.
; A) ~$ s: ~$ C( W/ X    CSL_FINST(temp_reg, UPP_UPICR_ENAA, ENABLE);   //Channel A ENABLE Signal Enable7 Y( r5 Y+ Y. g
8 d9 s3 ^4 y- F: o4 v
    // Channel B params8 |: ~% u8 N* K: n
    CSL_FINS(temp_reg, UPP_UPICR_CLKDIVB, UPP_CLOCK_DIV);
. J6 g5 X+ s& \; S  L( T    CSL_FINST(temp_reg, UPP_UPICR_STARTB, ENABLE); //Channel B START Signal Enable.
7 U$ a7 ]' S$ g" V; u    CSL_FINST(temp_reg, UPP_UPICR_ENAB, ENABLE);  //Channel B ENABLE Signal Enable2 Z1 r; x( P( i; f: r. O9 c
. w% h* c6 `; @
    upp_reg_hdl->UPICR = temp_reg;
$ U# ]% |" e$ k- b1 a
, Y& y; a( W+ F# S1 E    //temp_reg = 0;, e" W. ^0 j0 T# U0 M

5 p1 r: D1 p. W5 k7 T2 p    //CSL_FINS(temp_reg, UPP_UPIVR_VALB, 0x7b7b);   //Channel B idle value
4 r/ R- p) `: A* p; M6 X/ g1 [    //CSL_FINS(temp_reg, UPP_UPIVR_VALA, 0x7f7f);   //Channel A idle value: I2 D5 u$ U# {& U% |

$ h! l4 w9 b  W1 E, u# T$ o    //upp_reg_hdl->UPIVR = temp_reg;/ n% T- ]0 P7 }( H. v
5 n/ |. Z% y9 `8 Q& Q
    //temp_reg = 0;
5 K$ s" _0 c* d0 n) m1 z/ a, g8 m8 g6 z& H' R: S) n
    //CSL_FINST(temp_reg, UPP_UPTCR_RDSIZEI, 256B);  //set 256B DMA I * H& B) c  b# R# X3 P7 Q
    //upp_reg_hdl->UPTCR = temp_reg;
5 r5 E& A) w1 M
4 C( X, s0 b) [1 H7 R( _    //temp_reg = 0;  v$ r/ G. N3 A  C) C0 r  q  @
    //CSL_FINST(temp_reg, UPP_UPDLB_BA, ENABLE);  //B to A loopback mode enable
, n( ?, x2 e! w. X8 x    //upp_reg_hdl->UPDLB = temp_reg;
7 G, Y0 ~6 d3 F: P + f" Z8 s& V7 q8 g
}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 20:25 , Processed in 0.052058 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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