电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1455|回复: 0
收起左侧

基于AM57x的ARM与FPGA通信测试

[复制链接]

678

主题

902

帖子

8293

积分

高级会员

Rank: 5Rank: 5

积分
8293
发表于 2020-8-21 10:58:26 | 显示全部楼层 |阅读模式
通过ARM烧写SPI FLASH
表 1
开发板型号
是否支持本实验
TL570x-EVM
不支持
TL5728-EasyEVM
不支持
TL5728-IDK
不支持
TL5728F-EVM
支持

本实验在Linux系统下,由ARM通过SPI2总线烧写固化.bin文件到FPGA端的SPI FLASH中运行。
将TL5728F-EVM开发板FPGA端拨码开关拨为Master SPI模式(01),将由FPGA工程编译生成的.bin文件复制到文件系统“/opt/tools”目录下,例如LED工程的LED.bin文件。进入开发板文件系统“/opt/tools”目录,执行脚本文件将LED.bin文件固化到FPGA端的SPI FLASH。
Target#cd /opt/tools/
Target#./flash-fpga-spiflash.sh LED.bin
​

图 1

串口打印“FPGA reload app successfully!”信息表示成功将LED.bin文件固化到SPI FLASH,可以观察到开发板LED在FPGA控制下流水灯闪烁。
FPGA与ARM基于IC通信测试
表 2
开发板型号
是否支持本实验
TL570x-EVM
不支持
TL5728-EasyEVM
不支持
TL5728-IDK
不支持
TL5728F-EVM
支持

本测试程序将FPGA模拟成I2C设备,设备地址为0x2A,ARM使用I2C4总线对此I2C设备进行读写。
将TL5728F-EVM开发板FPGA端拨码开关拨为Master SPI模式(01),将FPGA光盘I2C_SLAVE工程“fordownload\I2C_SLAVE.bin”文件复制到文件系统“/opt/tools”目录下,I2C_SLAVE.bin文件主要实现FPGA和ARM的I2C通信功能。
进入开发板文件系统的“/opt/tools”目录,执行如下指令由ARM通过SPI2总线烧写.bin文件到FPGA端的SPI FLASH中运行。串口打印“FPGA reload app successfully!”信息表示烧写成功。
Target#./flash-fpga-spiflash.sh I2C_SLAVE.bin
​

图 2

执行如下命令查看挂载到I2C4总线的I2C设备地址,此处查询到FPGA的地址为0x2A。
Target#i2cdetect -r -y 3
​

图 3

执行如下指令读取FPGA I2C设备寄存器的值:
Target#i2cdump -f -y 3 0x2a
​

图 4

寄存器00读写测试执行如下命令对FPGA I2C设备0x00地址写0x55:
Target# i2cset -f -y 3 0x2a 0x00 0x55
执行如下命令读取FPGA I2C设备0x00地址的值:
Target# i2cget -f -y 3 0x2a 0x00
​

图 5

寄存器01测试执行如下指令往FPGA I2C设备的地址0x01写0xc0,可以看到开发板FPGA端的两盏蓝色LED会点亮:
Target# i2cset -f -y 3 0x2a 0x01 0xc0
往0x2a I2C设备的地址0x01写0x00,开发板FPGA端的两盏蓝色LED会熄灭:
Target#  i2cset -f -y 3 0x2a 0x01 0x00
​

图 6

寄存器02测试执行如下指令读取FPGA I2C设备的地址0x02的初始值为“0xc0”。
Target# i2cget -f -y 3 0x2a 0x02
分别长按FPGA用户按键KEY6(USER0)、KEY7(USER1)不放,依次读取0x02地址寄存器的值,分贝为“0x80”和“0x40”。
Target# i2cget -f -y 3 0x2a 0x02
​

图 7

嵌入式DSP、ARM、FPGA多核技术开发,学习资料下载:http://site.tronlong.com/pfdownload
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表