1、vivado下建立工程
其中iic控制器選擇7bit 100k 其他預設
2、生成bit匯入sdk
建立xilinx工程,使用hello world模板
需改源**
#include
#include 「platform.h」
#include 「xparameters.h」
#include 「xil_printf.h」
#include 「xil_io.h」
#include 「xiic.h」
#include 「xiic_l.h」
#include 「sleep.h」
int main()
usleep(20000);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x1a2);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x04+04*j);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x12+j);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x34+j);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x56+j);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x278);
while((xil_in32(xpar_iic_0_baseaddr+xiic_sr_reg_offset) & xiic_sr_tx_fifo_empty_mask) >> 7 != 1)
{} usleep(20000);
while(xil_in32(xpar_iic_0_baseaddr+xiic_sr_reg_offset) != 0xc0)
{} usleep(20000);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x1a2);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x04*j);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x1a3);
xil_out32(xpar_iic_0_baseaddr+xiic_dtr_reg_offset,0x204);
for(i=0;i<4;i++)
usleep(20000);
data[i] = xil_in32(xpar_iic_0_baseaddr+xiic_drr_reg_offset);
} xil_out32(xpar_iic_0_baseaddr+xiic_resetr_offset,0x0a);//復位iic
j++;
}在xil_out32(xpar_iic_0_baseaddr+xiic_resetr_offset,0x0a);//復位iic設定斷點,則可燒錄,開始執行程式。
現象,每次寫入4b資料,每次讀取4b資料。
FPGA學習回顧之IIC的使用
硬體 黑金ax301 教程 黑金附贈教程 用途 記錄fpga中iic的訊號走向以及實施過程 i2c master top的狀態機走向 頂層i2c write req為1 s idle s wr dev addr s wr reg addr s wr reg addr1 如果i2c addr 2byt...
基於FPGA的秒錶
功能 四位數碼管顯示,從零開始計數,前兩位顯示秒 0 59 後兩位顯示0.01秒 0 99 計滿後從零開始,有開始鍵 暫停鍵 復位鍵。當第一次按下開始鍵,秒錶從初始開始計數,led顯示器上顯示當前計時值 當緊按下 按住 暫停鍵時,秒錶暫停計時,led上顯示當前計時值,放開則繼續計時 當按下復位鍵時,...
FPGA學習 基於FPGA的簡易音訊採集系統
本篇部落格記錄乙個小專案的開發 基於fpga的簡易音訊採集系統,專案 是乙個寒假的活動的題目,直接購買了設計好的板卡,專案的基本要求如下 使用的板卡是lattice的ice40up5k,這裡首先記錄一下在lattice的軟體中開發fpga的簡單流程 參考 windows 下 ice40 fpga 開...