嵌入式开发者社区

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

作者: librally    时间: 2018-9-5 20:16
标题: 对l138与fpga通信例程tl-devmem2的复现与使用
硬件平台:omapl38F核心板;: r9 j4 H" @& z* v7 l+ G
复现方式:按照pdf:omapl38基于emifa总线与FPGA的通信测试进行例程复现,并将写数据部分提取出来进行使用;
1 h4 T3 l* l) j& n4 p" Y1 S问题:在对fpga这边数据进行抓包观察时发现:* S' J( c) {' s
1、16根数据线仅有低八位在使用,高八位置一,当传输16bit数据时,会将两个字节按先小端后大端的顺序从低八位数据线按序输出;
. e" w- H) W% L7 e! @2、同时地址线只有addr1,addr2,addr3三根是有效的,其他线长期置一,并且地址线并不随数据变化而变化,而是每隔8到11个写使能而进一位;" V6 J3 S; w3 T) ~  J+ }5 Y' T1 ]
3、emifa_clk时钟线并不能作为时钟提供给fpga,在对fpga另加其他时钟并对emifa_clk进行抓包时现象为长期置高;
1 v4 j7 _  a4 z8 B, S4 `# M8 G$ {4、片选emifa_cs2和写使能emifa_we的拉低时间比并不符合dsp与fpga通信时的2,3,2关系,请问arm与fpga通信时这个时序是什么,同时其依靠的时钟是多大,还是114MHz吗?3 M* w4 z- m: C. n) A

作者: Tronlong-陈工    时间: 2018-9-7 15:39
你好,针对您的问题有一下疑问:. K5 Y2 ?* E9 O/ W% N% s) r
# T$ R) \. m! W$ h3 ]3 n7 X
1.请问你使用的程序都是用我公司提供的吗?还是自行有做修改?
. w" j1 h# [- L4 X2.是否有确认过FPGA端的程序与DSP端的程序数据传输的位数是否匹配?! t( E" N$ L7 L. i/ W, @- H8 E
( t* Q2 r* ^7 L

作者: librally    时间: 2018-9-7 16:26
Tronlong-陈工 发表于 2018-9-7 15:39
7 }9 G: v! d+ n4 J. X' F. n你好,针对您的问题有一下疑问:
# }8 y9 }# k1 D# M+ z( a
$ v: ], K- Y& Q1 W& f1.请问你使用的程序都是用我公司提供的吗?还是自行有做修改?
1 K- k* u$ M9 J) M$ E8 H
使用的是arm的例程tl_devmem2(贴的图是修改过的程序,写使能中间的长时间时序是由于arm端打印每次数据造成的);我没有用核心板上的DSP,只用了arm和fpga
作者: Tronlong-陈工    时间: 2018-9-7 17:06
数据的问题核对过ARM和FPGA端的数据宽度是否匹配?光盘资料中也有使用tl_devmem2的部分讲解文档《13-3-OMAPL138基于EMIFA总线与FPGA的通信测试》
0 r. U9 E0 q( X! D1 t" r3 `, D4 Q. Q
作者: librally    时间: 2018-9-7 20:43
Tronlong-陈工 发表于 2018-9-7 17:06+ l" q8 k: m$ I! F4 K( w
数据的问题核对过ARM和FPGA端的数据宽度是否匹配?光盘资料中也有使用tl_devmem2的部分讲解文档《13-3-OMAP ...

& V! i2 B- `/ t8 I/ K+ p就是按照那个文档操作的,然后发现采用m或者h模式的时候数据线和地址线出现了上述现象。采用b时地址线出现上述现象
7 b8 O$ c6 o  |2 ^, \
作者: librally    时间: 2018-9-17 17:09
Tronlong-陈工 发表于 2018-9-7 17:067 J4 U4 G2 V3 ~2 h3 J
数据的问题核对过ARM和FPGA端的数据宽度是否匹配?光盘资料中也有使用tl_devmem2的部分讲解文档《13-3-OMAP ...

+ C) w. H% A* Q5 {6 E陈工,这个问题咱们创龙有没有解决方案啊,为什么ARM和fpga通信时只能用8根数据线啊,而且地址线完全和数据不匹配,而且arm进行写操作基于的时钟是多少啊?麻烦您解答一下呗
1 Y" ~) x  K, U! S$ R/ B
作者: 广州创龙莫工    时间: 2018-9-29 10:46
您好,您如果是按照我们提供的例程和文档进行测试的话,测试的结果如果是不一样的话,您这边可以截图过来看一下。
作者: librally    时间: 2018-11-10 16:06
广州创龙莫工 发表于 2018-9-29 10:46
# C5 P' @. O3 Y9 J. {5 y. ~# ?. u5 z您好,您如果是按照我们提供的例程和文档进行测试的话,测试的结果如果是不一样的话,您这边可以截图过来看 ...
4 r( r) t3 v5 l: k) h4 ^
采用的OMAP-L138F上ARM与FPGA数据传输程序基于文件《13-3-OMAPL138基于EMIFA总线与FPGA的通信测试》。# y' t/ g# C; B8 K

  t! b& p/ X5 l0 \  E  L现在遇到的问题:8 g0 y$ p+ l2 x2 E
1、16bit数据线高八位没有初始化,传输只采用低八位数据线,且16bit的数据会在低八位数据线分成两个8bit数发出;! g1 y; H7 s4 P0 }2 |
2、地址线仅有低三位初始化,且变化方式与读使能不同步;emifa_ba1无变化;& o2 y, ^6 `$ z3 }5 b1 J

- P1 {, x. [  o& Z9 f* q2 h9 S现象:7 G% N3 K0 W% _1 W4 r0 j/ l
1、linux端运行./tl-devmem2 0x60000000 256 m 52428(1100110011001100)FPGA端现象) l/ K' C! i/ U+ j# f/ q4 n/ N* K
G:\EMIF问题\输入(m52428): K4 x$ R8 U5 B) O+ @; ?; V% r7 ?
G:\EMIF问题\m52428addr
6 |! I8 P& J' z. f2、linux端运行./tl-devmem2 0x60000000 256 h 52428(1100110011001100)FPGA端现象
! X' O9 K# I  @8 ]+ E# qG:\EMIF问题\输入(h52428)G:\EMIF问题\h52428addr
, Y+ T: T. G4 @* {: ~" T  _
作者: librally    时间: 2018-11-10 16:09
[attach]4297[/attach][attach]4298[/attach]( Z+ l+ v# A4 R! X2 H
[attach]4299[/attach]2 h  \+ A5 ^! |8 S* f
[attach]4300[/attach]& O* \  a) d8 a' K/ |: Y) v+ B
1 F* L/ P5 J4 H6 `

作者: 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日)6 Q& l6 E; U7 w1 \% L

8 M! t% X! `! [( v9 M8 w[attach]4376[/attach]& O; U  M" R+ ?( G0 i
) T9 J' ^! |. B0 [( H" p: t





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