1、FPGA与ARM基于I2C通信测试
表 1
开发板型号 |
是否支持本实验 |
TL437x-EVM |
不支持 |
TL437x-EasyEVM |
不支持 |
TL437x-IDK |
不支持 |
TL437xF-EVM |
支持 |
本测试程序将FPGA模拟成I2C设备,设备地址为0x2A,ARM使用I2C0总线对此I2C设备进行读写。
进入开发板文件系统的”/opt”目录,执行如下命令初始化FPGA程序加载功能的管脚。
Target# ./set_flash_fpga_pin.sh
执行如下命令启动FPGA程序加载功能,由ARM通过SPI总线加载.bit文件到FPGA中运行。打印信息中,如果FPGA_DONE的值为1,则表示.bit文件加载成功。
Target# ./flash_fpga.sh i2c_test.bit
图 1
此.bit文件主要实现FPGA和ARM的I2C通信功能,.bit文件、.mcs文件和源码位于FPGA光盘”Demo\app\IIC\”目录下。
执行如下命令查看挂载到I2C0总线的I2C设备地址,此处查询到的地址为0x2A。
Target# i2cdetect -r -y 0
图 2
执行如下命令对I2C设备0x00地址写0x55:
Target# i2cset -f -y 0 0x2a 0x00 0x55
执行如下命令读取I2C设备0x00地址的值:
Target# i2cget -f -y 0 0x2a 0x00
图 3
执行如下命令对I2C设备0x01地址写0xe0,开发板底板FPGA端LED5、LED6、LED7会被点亮。
Target# i2cset -f -y 0 0x2a 0x01 0xe0
执行如下命令对I2C设备0x01地址写0x00,开发板底板FPGA端LED5、LED6、LED7会被熄灭。
Target# i2cset -f -y 0 0x2a 0x01 0x00
图 4
FPGA端按键状态会保存在I2C设备0x02地址中。执行如下命令读取I2C设备0x02地址的值:
Target# i2cget -f -y 0 0x2a 0x02
图 5
分别长按开发板FPGA端按键KEY6、KEY7,并读取I2C设备0x02地址的值,分别为0xC0、0xA0。
图 6
2、FPGA与ARM基于GPMC通信测试
表 2
开发板型号 |