嵌入式开发者社区
标题:
omapl138的dsp核进行UPP数据发送的时候,出现数据错位的情况
[打印本页]
作者:
鹰飞
时间:
2016-11-1 10:53
标题:
omapl138的dsp核进行UPP数据发送的时候,出现数据错位的情况
程序upp通讯部分是从demo中uPP_B_TO_A移植过来。
% S: B' }" }/ m' H* |6 \3 s
( |8 D7 Q& U) L, C4 d8 o
1.linux系统下由arm控制dsp通过upp往fpga发送数据,程序运行过程中,开始upp数据传输接受正常。
5 x! Z4 f# X9 m
6 c4 Z4 c' I! o, i
2.由arm控制dsp不停的启动,停止upp数据发送;在某一次发送时出现数据错位(通过fpga从数据总线抓取数据),然后fpga接受的数据都是错位的,重新加载dsp程序也无法恢复fpga接收正常数据,重启上电L138后再运行dsp程序upp的数据恢复正常。
% v! q' F9 T- j) f! h8 H: I: h
, u( O4 I! P* f1 p/ J' C6 v
3.通过dlb寄存器进行BA回环发现错误的数据情况如下
(与通过fpga从数据总线抓取数据一致):发送缓冲的数据顺序是1~128,但是回环到A通道,收到的数据是64~127,0~63。在测试过程中仿真器查看到UPQD0-2的值跟正常时一样,发送区数据顺序正确(
在调试过程中查看寄存器及发送区地址,发送区是8字节对齐的,寄存器值没有发现异常) 。
经过一段时间的测试,发现不是数据错位,而是0-63的数据是上次发送的值,二64-127的数据是本次的值。每次错误的字节数不一致,有时是前面112个数据都是上次的,有时只有16个数据是上次,64是最多的情况。
5 \; b/ P' P3 p' i8 x
# H2 z y T9 m# x, h, I3 A( g9 G
4.
upp发送数据是通过fpga给dsp的gpio发送周期40us的方波,但是dsp以40us的间隔在gpio中断处理程序中往fpga送1行512字节的数据;
/ l1 I5 k) i7 T# K8 n" {
3 l! X% c% A2 v/ C4 q, A
$ O/ t3 f* ?7 J- G8 b1 D2 ]4 X# r
附:发送时钟设置为37.5M,传输为b通道16bit传输,实际测量upp发送的enable信号持续大概7us;中间fpga没送wait信号;UPTCR的发送设为64和256都试过,结果都会出现错位。
, S4 y! ]! S. Y
部分定义如下
6 C; }' F, M& a- |3 Y! A7 E* l9 x# }
#define upp_line_size (128)
9 v& v' Z* V- p4 T: X- O8 U, S
#define upp_line_count_s (1)
& u9 g& I) d1 _' P/ `# Q
#define upp_line_count_r (1)
+ ]& i8 Y% S- e9 n' t7 Q }
#define upp_frame_size_s (upp_line_size * upp_line_count_s)
/ y4 O# t) \' h7 _. r
#define upp_frame_size_r (upp_line_size * upp_line_count_r)
* D1 X7 d! Z/ i" l) o9 V- U
#define upp_line_offset_s (upp_line_size)
' ~: d- o% V* b! y3 _& s
#define upp_line_offset_r (upp_line_size)
8 q3 L3 b' k+ U7 N
: G) w! p; X% v/ j1 Z, U+ ` ]
#pragma DATA_ALIGN(upp_buffer_s, 8)
- ]+ V2 e+ R, g+ a5 ~ H
#pragma DATA_ALIGN(upp_buffer_r, 8)
( Y/ o0 D E) f3 b+ n
volatile Uint32 upp_buffer_s[upp_frame_size_s];
0 ]" R7 F8 }) ^8 `! J
volatile Uint32 upp_buffer_r[upp_frame_size_s];
. `, [$ o) ~6 w" W& k% F- b
+ [7 @' H2 `' {% f; l8 e; s* D
请教:这可能是出现什么问题了。
7 T$ X* c. I# u. }
7 _- K% M% p. i0 y! k* l
作者:
human
时间:
2016-11-1 21:54
可以参考OMAPL138光盘资料demo\syslink下的ad_console的例程
作者:
希望缄默
时间:
2016-11-2 11:32
DSP 端有没有用缓存?
& H* V7 s4 I8 a( L
FPGA 端有没有用 FIFO?
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4