EDA365电子论坛网

标题: 基于AM57x的ARM与FPGA通信测试 [打印本页]

作者: Tronlong小分队    时间: 2020-8-21 10:57
标题: 基于AM57x的ARM与FPGA通信测试
通过ARM烧写SPI FLASH
8 J# H4 y, C( w, v7 P4 L5 w表 1
4 F8 c/ z6 y9 O$ `; P
开发板型号1 @1 K3 P0 k* s% z8 K) j2 Q2 }
是否支持本实验) L$ b- ?: F& h5 M
TL570x-EVM9 j2 n5 Z! ]0 @) F1 k, ]
不支持
. z0 ~* x0 \, {) d
TL5728-EasyEVM
. O* n, A2 Z: b: o
不支持) Z; S- E+ N6 h* Y" t- t
TL5728-IDK2 q/ M- M' I7 ?% @5 @9 d
不支持
8 G: I% |4 ~/ C% T. x. }  y- y
TL5728F-EVM
: ~1 z( X& u! t/ A: L! f
支持6 M" j. g5 a/ R+ [. @, z
1 c6 W( k: |, z2 k: E  z! K( V  r, o
本实验在Linux系统下,由ARM通过SPI2总线烧写固化.bin文件到FPGA端的SPI FLASH中运行。
: s/ V" `1 d0 c  Q7 y" w) \1 v4 I将TL5728F-EVM开发板FPGA端拨码开关拨为Master SPI模式(01),将由FPGA工程编译生成的.bin文件复制到文件系统“/opt/tools”目录下,例如LED工程的LED.bin文件。进入开发板文件系统“/opt/tools”目录,执行脚本文件将LED.bin文件固化到FPGA端的SPI FLASH。
! o- i0 k) h) O( q& B3 X1 L& zTarget#cd /opt/tools/7 o+ I) P6 E% X  K
Target#./flash-fpga-spiflash.sh LED.bin/ W  q3 O7 p8 v) `1 P
8 X5 N; t- y, Z/ K
图 17 [  ]1 i% A$ F6 h& U2 d

5 p# s; B" q' Q; }1 \. P串口打印“FPGA reload app successfully!”信息表示成功将LED.bin文件固化到SPI FLASH,可以观察到开发板LED在FPGA控制下流水灯闪烁。. ]8 F2 l' }: }: w" H- O1 I
FPGA与ARM基于IC通信测试
+ e6 ^" ?5 v7 B, @表 2
) r# u2 U+ y+ ?
开发板型号
; N2 U* Q% a% l( O6 u5 p! B# X
是否支持本实验
& g6 d2 m8 H/ Y3 g2 l! h! s
TL570x-EVM6 w# g$ [/ b; R* q, D" b$ {8 b4 ^
不支持) H9 N" M. a2 _7 h; k  k
TL5728-EasyEVM. x2 \" H0 f$ U9 H/ H; p0 F" Y
不支持. ?( c* l" a" z3 G3 g% A
TL5728-IDK+ W' R$ ~' N; T+ X% i; o" }. h* ^) F
不支持
, G2 ]& R# G8 X) T: P0 L
TL5728F-EVM+ C9 o3 Q. O4 i7 h
支持
3 W: V7 D  V- \0 Z5 @0 O* u0 S

: r& T# c3 b7 R1 d" P; z, L本测试程序将FPGA模拟成I2C设备,设备地址为0x2A,ARM使用I2C4总线对此I2C设备进行读写。
* S5 N0 w$ M5 L+ Q0 w4 [  p6 N( H将TL5728F-EVM开发板FPGA端拨码开关拨为Master SPI模式(01),将FPGA光盘I2C_SLAVE工程“fordownload\I2C_SLAVE.bin”文件复制到文件系统“/opt/tools”目录下,I2C_SLAVE.bin文件主要实现FPGA和ARM的I2C通信功能。$ c7 {% a5 E, Y0 O
进入开发板文件系统的“/opt/tools”目录,执行如下指令由ARM通过SPI2总线烧写.bin文件到FPGA端的SPI FLASH中运行。串口打印“FPGA reload app successfully!”信息表示烧写成功。
3 D, V9 b% T# r$ C4 G! ATarget#./flash-fpga-spiflash.sh I2C_SLAVE.bin8 U5 a3 K. z, p  x, C5 D$ }' l# e
( i1 n# ~( X) P% s' Z
图 2# d8 q& R* M7 w0 T; Z: F* N
( Y9 K2 p. U  d: X* N8 F- x3 |
执行如下命令查看挂载到I2C4总线的I2C设备地址,此处查询到FPGA的地址为0x2A。
: C/ [; {% Y7 ^/ M- HTarget#i2cdetect -r -y 3/ _* E+ k; |/ z" @

* u. k) t$ g9 a5 ^7 c图 3( W. q9 P! d( ~( F
: n+ T, J& c: F
执行如下指令读取FPGA I2C设备寄存器的值:( a7 ?+ b5 r+ J% z6 K7 q
Target#i2cdump -f -y 3 0x2a2 H7 }' f- J3 e
7 A$ L9 V( z3 m! R5 z
图 4
' Q" ^7 e% g1 B8 n% O5 m0 c5 g0 v" V- p/ v
寄存器00读写测试执行如下命令对FPGA I2C设备0x00地址写0x55:
2 p' r; n& T$ S- g& YTarget# i2cset -f -y 3 0x2a 0x00 0x55
) a' {- d/ v  H2 @执行如下命令读取FPGA I2C设备0x00地址的值:- B5 `' U8 S0 ~0 W: e4 L
Target# i2cget -f -y 3 0x2a 0x00
& w& F! p4 V/ m! E
5 u6 V- n. c3 y" l
图 5
1 }1 ~4 I6 W5 q  K0 O# j: A6 ^& x! b! a
寄存器01测试执行如下指令往FPGA I2C设备的地址0x01写0xc0,可以看到开发板FPGA端的两盏蓝色LED会点亮:/ P9 j5 P2 f" N5 o& {2 k
Target# i2cset -f -y 3 0x2a 0x01 0xc02 f# P6 y; h& B4 t, S
往0x2a I2C设备的地址0x01写0x00,开发板FPGA端的两盏蓝色LED会熄灭:( W5 @' L: [5 d8 _; k7 R1 F& ], T# f
Target#  i2cset -f -y 3 0x2a 0x01 0x00( T/ z1 Y) ~. S# F
7 A, G6 x3 ?, u5 }: \5 t" X4 C7 J3 @
图 6% D  \  s7 Q) O5 s: x$ a1 H* s
3 K( v4 m8 h6 o* |/ y' g# k
寄存器02测试执行如下指令读取FPGA I2C设备的地址0x02的初始值为“0xc0”。. Z1 p/ L; z( J; l3 @
Target# i2cget -f -y 3 0x2a 0x029 M, L6 q! E! P: P$ N0 O. E
分别长按FPGA用户按键KEY6(USER0)、KEY7(USER1)不放,依次读取0x02地址寄存器的值,分贝为“0x80”和“0x40”。1 S# x9 L$ x+ r, v& x
Target# i2cget -f -y 3 0x2a 0x02" `1 D  P& c' ]. v/ {
5 |9 S! K+ x( I% ?; f
图 7' w; p6 ?6 W' x1 c" p
- f1 L' ]: K, D9 D

作者: TaylorA    时间: 2020-8-21 13:17
学习了                           




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2