|
通過ARM燒寫SPI FLASH
表 1
開發(fā)板型號(hào)
| 是否支持本實(shí)驗(yàn)
| TL570x-EVM
| 不支持
| TL5728-EasyEVM
| 不支持
| TL5728-IDK
| 不支持
| TL5728F-EVM
| 支持
|
本實(shí)驗(yàn)在Linux系統(tǒng)下,由ARM通過SPI2總線燒寫固化.bin文件到FPGA端的SPI FLASH中運(yùn)行。
將TL5728F-EVM開發(fā)板FPGA端撥碼開關(guān)撥為Master SPI模式(01),將由FPGA工程編譯生成的.bin文件復(fù)制到文件系統(tǒng)“/opt/tools”目錄下,例如LED工程的LED.bin文件。進(jìn)入開發(fā)板文件系統(tǒng)“/opt/tools”目錄,執(zhí)行腳本文件將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,可以觀察到開發(fā)板LED在FPGA控制下流水燈閃爍。
FPGA與ARM基于IC通信測(cè)試
表 2
開發(fā)板型號(hào)
| 是否支持本實(shí)驗(yàn)
| TL570x-EVM
| 不支持
| TL5728-EasyEVM
| 不支持
| TL5728-IDK
| 不支持
| TL5728F-EVM
| 支持
|
本測(cè)試程序?qū)PGA模擬成I2C設(shè)備,設(shè)備地址為0x2A,ARM使用I2C4總線對(duì)此I2C設(shè)備進(jìn)行讀寫。
將TL5728F-EVM開發(fā)板FPGA端撥碼開關(guān)撥為Master SPI模式(01),將FPGA光盤I2C_SLAVE工程“fordownload\I2C_SLAVE.bin”文件復(fù)制到文件系統(tǒng)“/opt/tools”目錄下,I2C_SLAVE.bin文件主要實(shí)現(xiàn)FPGA和ARM的I2C通信功能。
進(jìn)入開發(fā)板文件系統(tǒng)的“/opt/tools”目錄,執(zhí)行如下指令由ARM通過SPI2總線燒寫.bin文件到FPGA端的SPI FLASH中運(yùn)行。串口打印“FPGA reload app successfully!”信息表示燒寫成功。
Target#./flash-fpga-spiflash.sh I2C_SLAVE.bin
​
圖 2
執(zhí)行如下命令查看掛載到I2C4總線的I2C設(shè)備地址,此處查詢到FPGA的地址為0x2A。
Target#i2cdetect -r -y 3
​
圖 3
執(zhí)行如下指令讀取FPGA I2C設(shè)備寄存器的值:
Target#i2cdump -f -y 3 0x2a
​
圖 4
寄存器00讀寫測(cè)試:執(zhí)行如下命令對(duì)FPGA I2C設(shè)備0x00地址寫0x55:
Target# i2cset -f -y 3 0x2a 0x00 0x55
執(zhí)行如下命令讀取FPGA I2C設(shè)備0x00地址的值:
Target# i2cget -f -y 3 0x2a 0x00
​
圖 5
寄存器01測(cè)試執(zhí)行如下指令往FPGA I2C設(shè)備的地址0x01寫0xc0,可以看到開發(fā)板FPGA端的兩盞藍(lán)色LED會(huì)點(diǎn)亮:
Target# i2cset -f -y 3 0x2a 0x01 0xc0
往0x2a I2C設(shè)備的地址0x01寫0x00,開發(fā)板FPGA端的兩盞藍(lán)色LED會(huì)熄滅:
Target# i2cset -f -y 3 0x2a 0x01 0x00
​
圖 6
寄存器02測(cè)試執(zhí)行如下指令讀取FPGA I2C設(shè)備的地址0x02的初始值為“0xc0”。
Target# i2cget -f -y 3 0x2a 0x02
分別長(zhǎng)按FPGA用戶按鍵KEY6(USER0)、KEY7(USER1)不放,依次讀取0x02地址寄存器的值,分貝為“0x80”和“0x40”。
Target# i2cget -f -y 3 0x2a 0x02
​
圖 7
|
|