基於FPGA的MB核下IIC讀寫

2021-09-25 17:59:07 字數 1644 閱讀 8892

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 開...