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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11435|回复: 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信号,才开始接收数据呢?
7 u1 H3 u6 _* r* _2 H" F1 O
分享到:  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  E5 Q) F5 K5 u$ G
l楼主你好,我最近也在做FPGA与DSP之间的图像数据的传输,我想请教一下,请问这个CLOCK START ENABLE 配置 ...

! P$ j9 j! H" a, i7 Z. ^寄存器初始化那里就给出来了啊,如果DSP要发数据给FPGA, 那么CLOCK是由DSP去控制的,如果DSP要接收FPGA的数据,则CLOCK是由FPGA控制的,START跟ENABLE信号是用来控制发送使能的。这是我的初始化配置(我是用8位宽度通信的,对于DSP来说,B是发送,A是接收):/ Q" z9 i3 q/ C& ?- C
static void UPPInit(void)) W: g" ^: h. Y+ v- }
{* Z3 e' n# d4 b/ x, X; e5 M: F
    unsigned int temp_reg = 0;( ?# [( j# `0 o" m" R7 Y

4 u/ b$ L, M& m8 T. m) f& w    // Channel B params
; D3 x/ A6 |( y    CSL_FINST(temp_reg, UPP_UPCTL_DPFB, LJZF);     //Left-justified, zero filled5 X4 }* h9 d' Q& P: r2 A, ^6 M' |0 q/ F
    CSL_FINST(temp_reg, UPP_UPCTL_IWB, 8BIT);      //8-bit interface' _' t! _; u9 F- L6 R6 L% N
    CSL_FINST(temp_reg, UPP_UPCTL_DPWB, FULL);     //Channel B bit width = 8
7 p$ ?' j* U$ |1 _4 s# d+ n    CSL_FINST(temp_reg, UPP_UPCTL_DRB, SINGLE);    //Single data rate6 j, ~, V& r4 V; D9 m
+ |7 q" a- ?* s+ C8 Y
    // Channel A params
7 ]! U' p$ ~, Y8 S    CSL_FINST(temp_reg, UPP_UPCTL_DPFA, LJZF);     //Left-justified, zero filled! u/ Q: i( j9 x7 Y
    CSL_FINST(temp_reg, UPP_UPCTL_IWA, 8BIT);      //8-bit interface- a1 q, ?1 E- |6 t
    CSL_FINST(temp_reg, UPP_UPCTL_DPWA, FULL);     //Channel A bit width = 8
2 ?$ l& T8 }$ W$ e" Z0 U) p8 j    CSL_FINST(temp_reg, UPP_UPCTL_DRA, SINGLE);    //Single data rate0 F, W; I; g) Z8 ]4 ^) B
8 \0 L" ?% ]- [$ c
    CSL_FINST(temp_reg, UPP_UPCTL_CHN, TWO);       //Channel A and Channel B are both active., [" M0 F) O: T& }( t
    CSL_FINST(temp_reg, UPP_UPCTL_MODE, DUPLEX0);  //Channel B transmit Channel A receive7 g2 Z+ e( e& W8 {9 F. t! p

7 F  G1 G( g6 j    upp_reg_hdl->UPCTL = temp_reg;
6 D. N( p8 Y, E6 h3 `: d: m" l, ~% }$ n+ f
    temp_reg = 0;   
$ v2 H- v7 z( H; \
. e% c5 J: f$ R# {- o& {    // Channel A params
" e5 c4 V# g0 d- \9 {    //CSL_FINST(temp_reg, UPP_UPICR_TRISA, ENABLE);  //Channel A data pins are in a high-impedance state while idle  |+ Y0 j7 r: v
    //CSL_FINS(temp_reg, UPP_UPICR_CLKDIVA, UPP_CLOCK_DIV); //Clock divisor, L: E. b: v9 @) B
    CSL_FINST(temp_reg, UPP_UPICR_STARTA, ENABLE); //Channel A START Signal Enable.. F' Z! x7 f0 _4 f( ^8 J6 ?
    CSL_FINST(temp_reg, UPP_UPICR_ENAA, ENABLE);   //Channel A ENABLE Signal Enable
2 `, k, Q) k( c5 b% D" |
* ^$ P4 X$ r7 W8 P5 K' l    // Channel B params3 L3 v: j- v& ^* w1 p
    CSL_FINS(temp_reg, UPP_UPICR_CLKDIVB, UPP_CLOCK_DIV);+ t; A0 E1 o7 {( @4 T# E$ M4 T/ Q, ?
    CSL_FINST(temp_reg, UPP_UPICR_STARTB, ENABLE); //Channel B START Signal Enable.
5 A5 I/ C* \! U9 e4 }6 E3 @    CSL_FINST(temp_reg, UPP_UPICR_ENAB, ENABLE);  //Channel B ENABLE Signal Enable
0 i1 b% f7 ?2 B* a" D8 w' j+ ~8 a5 _4 N) f- h. k) z
    upp_reg_hdl->UPICR = temp_reg;
1 F4 v0 z7 ]+ b0 Y* F5 B' d& N% u: M, w9 \! B  L) N
    //temp_reg = 0;/ C7 ~+ ]: r/ W( }0 w% P
, O8 L, ^4 ]/ N- `  d# M
    //CSL_FINS(temp_reg, UPP_UPIVR_VALB, 0x7b7b);   //Channel B idle value) Q; k" f. s: K' \. c2 y. p" r. Z
    //CSL_FINS(temp_reg, UPP_UPIVR_VALA, 0x7f7f);   //Channel A idle value
2 y3 [* K$ w) @. m# v2 |5 ^6 l  E3 H9 b9 @0 r! X  S3 a
    //upp_reg_hdl->UPIVR = temp_reg;# M5 O% m  t$ R$ s( s

1 |+ O5 X7 Y/ T- K" h4 w    //temp_reg = 0;: Q5 J" q8 u8 J2 ]8 N  q
3 n1 [( f7 E" m  }
    //CSL_FINST(temp_reg, UPP_UPTCR_RDSIZEI, 256B);  //set 256B DMA I 7 k* e) I' C' w1 N4 _
    //upp_reg_hdl->UPTCR = temp_reg;# X5 `' {! {) d  Q
( N* @) k3 t9 {
    //temp_reg = 0;
( M+ E) R" @  P2 {* {5 P    //CSL_FINST(temp_reg, UPP_UPDLB_BA, ENABLE);  //B to A loopback mode enable
0 M3 w  s  j7 M    //upp_reg_hdl->UPDLB = temp_reg;
5 Y& ~( V% Y0 ~% Z* g5 i . D- `9 T: G- x1 l& \* N
}
回复 支持 反对

使用道具 举报

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, n4 ~5 f5 L* |. M" s  y
DDR存储数据慢是必然的,L2不用开缓存使用,直接使用就行,把你的接收数组放在L2区即可 ...

4 D' Q! n$ C2 a9 Y# _  m你好,”接收数组放在L2区“语句怎样实现?
回复 支持 反对

使用道具 举报

2

主题

50

帖子

502

积分

版主

Rank: 7Rank: 7Rank: 7

积分
502
6#
发表于 2015-5-15 15:19:47 | 只看该作者
378087736 发表于 2015-5-15 11:340 I: J* M( D- X# b' T
数据是写到DDR的呢,我在16M的DSP内存开了一段收UPP数据的,原因是DDR慢啊,我程序中实在是找不到原因了 ...
% U) I1 Z; s$ I% V
DDR存储数据慢是必然的,L2不用开缓存使用,直接使用就行,把你的接收数组放在L2区即可
回复 支持 反对

使用道具 举报

13

主题

41

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
QQ
5#
 楼主| 发表于 2015-5-15 11:34:18 | 只看该作者
weibo1988821 发表于 2015-5-14 19:40
5 ^2 s* I: R0 d你的数据是写入L2区还是DDR?DDR的数据读写是很慢的

& j' a- ]( C4 }. T, ]# _5 r. 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:402 d! S' p! L, g
你的数据是写入L2区还是DDR?DDR的数据读写是很慢的

2 l4 ?$ L( ^2 D5 c* l0 S' W7 a$ f* V数据是写到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
6 A; A% ]3 _7 s: g' _3 Y' ^) R) x; a) _你的数据是写入L2区还是DDR?DDR的数据读写是很慢的
% v) o9 g2 }2 ^% {+ c  x6 S
数据是写到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-10-26 02:16 , Processed in 0.049691 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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