嵌入式开发者社区

标题: 对l138与fpga通信例程tl-devmem2的复现与使用 [打印本页]

作者: librally    时间: 2018-9-5 20:16
标题: 对l138与fpga通信例程tl-devmem2的复现与使用
硬件平台:omapl38F核心板;
! B1 \( x, J- r% W: [# f2 f9 Y复现方式:按照pdf:omapl38基于emifa总线与FPGA的通信测试进行例程复现,并将写数据部分提取出来进行使用;
) R  x; G, J+ G, j9 X+ C/ @, h问题:在对fpga这边数据进行抓包观察时发现:  x& `3 Q; q. `6 F
1、16根数据线仅有低八位在使用,高八位置一,当传输16bit数据时,会将两个字节按先小端后大端的顺序从低八位数据线按序输出;
: g, z! {% G/ y( x2、同时地址线只有addr1,addr2,addr3三根是有效的,其他线长期置一,并且地址线并不随数据变化而变化,而是每隔8到11个写使能而进一位;5 ^; {! {+ ?/ s( l) x, u
3、emifa_clk时钟线并不能作为时钟提供给fpga,在对fpga另加其他时钟并对emifa_clk进行抓包时现象为长期置高;
+ m0 q. G! b9 o; e% g7 a4、片选emifa_cs2和写使能emifa_we的拉低时间比并不符合dsp与fpga通信时的2,3,2关系,请问arm与fpga通信时这个时序是什么,同时其依靠的时钟是多大,还是114MHz吗?1 y: a* |# z# R0 z7 C3 v

作者: Tronlong-陈工    时间: 2018-9-7 15:39
你好,针对您的问题有一下疑问:* J4 A/ ~3 A& T+ f4 f" d4 _* k# K
+ r% X! a* P) o  x
1.请问你使用的程序都是用我公司提供的吗?还是自行有做修改?$ U: N5 ?' R6 v. P8 j) |7 B& ~* N
2.是否有确认过FPGA端的程序与DSP端的程序数据传输的位数是否匹配?' ?3 Y% p2 g8 d  [( X' W* }

3 \5 A0 f: _3 \2 W1 K
作者: librally    时间: 2018-9-7 16:26
Tronlong-陈工 发表于 2018-9-7 15:39" T+ Y5 I$ s, o% T, G/ T2 l: ^/ w
你好,针对您的问题有一下疑问:" t% n: u$ m0 E# |  p# j0 W) r
9 i' l# L) L! s- S( d
1.请问你使用的程序都是用我公司提供的吗?还是自行有做修改?

5 E; G$ v" x$ @. t使用的是arm的例程tl_devmem2(贴的图是修改过的程序,写使能中间的长时间时序是由于arm端打印每次数据造成的);我没有用核心板上的DSP,只用了arm和fpga
作者: Tronlong-陈工    时间: 2018-9-7 17:06
数据的问题核对过ARM和FPGA端的数据宽度是否匹配?光盘资料中也有使用tl_devmem2的部分讲解文档《13-3-OMAPL138基于EMIFA总线与FPGA的通信测试》5 k6 Y8 k. @* u1 z! b' I/ E

作者: librally    时间: 2018-9-7 20:43
Tronlong-陈工 发表于 2018-9-7 17:064 W# c- n3 f: K
数据的问题核对过ARM和FPGA端的数据宽度是否匹配?光盘资料中也有使用tl_devmem2的部分讲解文档《13-3-OMAP ...

4 j5 q* Y. R$ `: I就是按照那个文档操作的,然后发现采用m或者h模式的时候数据线和地址线出现了上述现象。采用b时地址线出现上述现象
4 D) r4 q( D* t$ G3 m: m
作者: librally    时间: 2018-9-17 17:09
Tronlong-陈工 发表于 2018-9-7 17:06$ w8 u) i& {0 }& J, }, I
数据的问题核对过ARM和FPGA端的数据宽度是否匹配?光盘资料中也有使用tl_devmem2的部分讲解文档《13-3-OMAP ...

# n9 m8 M( H8 I0 l$ @+ s# @陈工,这个问题咱们创龙有没有解决方案啊,为什么ARM和fpga通信时只能用8根数据线啊,而且地址线完全和数据不匹配,而且arm进行写操作基于的时钟是多少啊?麻烦您解答一下呗( ]6 q3 \1 J0 {4 {. d

作者: 广州创龙莫工    时间: 2018-9-29 10:46
您好,您如果是按照我们提供的例程和文档进行测试的话,测试的结果如果是不一样的话,您这边可以截图过来看一下。
作者: librally    时间: 2018-11-10 16:06
广州创龙莫工 发表于 2018-9-29 10:46
/ H( K- M- u4 N. O您好,您如果是按照我们提供的例程和文档进行测试的话,测试的结果如果是不一样的话,您这边可以截图过来看 ...

2 b# R4 A' i1 n% }: r1 [采用的OMAP-L138F上ARM与FPGA数据传输程序基于文件《13-3-OMAPL138基于EMIFA总线与FPGA的通信测试》。
7 h2 N! S, Y. O' e, W* L8 a4 h. z: k! X9 X" J  ^* G5 K9 f/ g
现在遇到的问题:4 S" ?% Q! w) W! G( b2 g$ E
1、16bit数据线高八位没有初始化,传输只采用低八位数据线,且16bit的数据会在低八位数据线分成两个8bit数发出;1 ]2 S8 Q) X0 m0 k' g
2、地址线仅有低三位初始化,且变化方式与读使能不同步;emifa_ba1无变化;
" q5 f. J" F0 u1 |
2 d# U+ N$ c1 d现象:
6 N& {9 n) \; u$ R1、linux端运行./tl-devmem2 0x60000000 256 m 52428(1100110011001100)FPGA端现象) J. }: \1 y; w- ~4 {
G:\EMIF问题\输入(m52428)
( Q& m) P: h$ m6 Y6 h) _. L; n& yG:\EMIF问题\m52428addr" a4 ?! D, o; n# z. \# T2 J
2、linux端运行./tl-devmem2 0x60000000 256 h 52428(1100110011001100)FPGA端现象% f8 X  N6 K! o6 m7 O9 L+ K0 w
G:\EMIF问题\输入(h52428)G:\EMIF问题\h52428addr
$ u$ |  |2 F4 }0 M, E
作者: librally    时间: 2018-11-10 16:09
[attach]4297[/attach][attach]4298[/attach]
- x7 [$ ~+ M2 z* o4 }# |5 {[attach]4299[/attach]: }1 x1 S; ^5 i* E1 u2 Z% H/ f
[attach]4300[/attach]
- Q+ p* {- K4 U+ j1 u% P' k9 O5 I5 Z# c. S' i% w

作者: Tronlong-陈工    时间: 2018-11-22 12:02
你好,emif的问题我们这边基本确认了。除了fpga端下载bit文件之后运行这几条指令再发送数据以外,需要加载这个驱动:tl138evm-emifa-sram,还有两个情况::1.tl138evm-emifa-sram这个驱动有bug,导致地址发送出错。2.FPGA端的程序也有点问题,频率太高,通信会出错。。以上的问题我们会在V2.1版本(目前使用的是2.0内核)更新完善上去。并且修改emif的FPGA端程序。新版本的内核发布时间是下周五(11月30日)# c* {( i2 P. v9 G, D5 C
2 {& O+ G& a  v  }5 _! o
[attach]4376[/attach]2 q4 Q) [7 H. Y

4 c" w+ _: t: M+ V




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4