FPGA之axi iic ip學習筆記

2021-10-10 17:09:08 字數 2409 閱讀 2041

今天有空來學習一下xilinx的axi_iic ip。

下面的鏈結是xilinx官網關於axi_iic的資料手冊,大家點一下就可以看了

pg090-axi-iic pdf

資料手冊先給我們這個ip的頂層框圖。這個看起來好像不是很複雜,下面咱們一起來學習學習這個ip。

在這裡我還沒搞明白sda和scl的_t,_o是什麼意思,後面慢慢了解。

接著手冊講解了這幾個模組的作用

到這裡,我大概理解一下,axi_lite介面接收到主機傳送過來的指令,將指令寫到暫存器去,暫存器接收到控制訊號後,將控制命令傳送給dynamic master,在tx/rx fifo 讀取/寫入資料,iic控制器接收到這些控制訊號和資料後,產生標準的iic時序操作外部從機。然後上面的中斷的,大概是對這個ip中一些訊號進行快取,給上位機讀寫這樣吧。這裡不懂不要緊,接著看。

接著手冊說了一堆……直接跳到io口描述**。

這個才是我想看的。

噢,通過這個**,我們知道了sda和scl後面跟著符號是什麼意思了。

_i是三態輸入緩衝,_o是三態輸出緩衝,_t是三態輸出使能。emmm使能為什麼不用_e呢,算了,ip是他們寫的就照他們來吧。

下面的小注釋也解釋了_t是什麼意思,大概就是控制sda和scl兩個訊號的資料方向。

資料手冊接著介紹了暫存器位址,這個也是比較重要的。

從註解那裡我們可以得知,這個ip是的wstrb訊號是沒用的,意思就是資料不會被遮蔽,都有效。

接著是暫存器列表。第乙個是全域性中斷使能暫存器,偏移位址是0x1c。這個是什麼意思呢,我們看下他下面的介紹。

從上面這張圖,我們知道,當gie中斷暫存器最高位設定為0時,這個ip所有中斷都關閉了,外界就不知道ip裡面發生了什麼事了,當最高位設定為1就可以。所有我們使用這個ip時,先把這個暫存器最高位設定為1,其他的預設給0,這樣開啟這個大的中斷,才能繼續操作下去。

接著就來到了isr(中斷狀態暫存器)暫存器,偏移位址是0x20。

這個暫存器的低8位代表不同的意義,高位保留了,下面他解釋了這幾個中斷暫存器的意義。

這些都先看著吧,有個印象就好,用到的時候再查就行了。

接著文件又對每一項進行仔細的講解,emmm我們先不管他,等實際要操作的時候回來看會好點。

再下去是ier(中斷使能暫存器)暫存器,偏移位址是0x28。

看到這裡,我明白啦,要先對這些中斷使能,才能讓他工作起來。所以上位機操作順序應該是先使能總中斷暫存器,再使能中斷使能暫存器,最後才能讀中斷暫存器,至於哪個暫存器代表什麼意思,現在我們還不用關心,等要用到的時候我們再回來查詢就好了。

接著文件介紹了soft reset register(軟體復位暫存器),偏移位址0x40。

這裡他囉囉嗦嗦說了一大堆,總結一下就是要對這個暫存器寫入0xa就好了,其他的不用管。

所以在上位機操作中,開啟總中斷,接著開啟使能中斷,再對0x40暫存器寫入a就好了。

接著是control register(控制暫存器),偏移位址0x100。這個有點東西,因為如果對他理解不好的話就不能讓這個ip工作了。所以我們好好來捋捋。

首先是這句話,我們來好好翻譯翻譯。

他說在設定主從模式選擇為1之前,tx_fifo裡面就要包含要操作的iic器件位址,所有的控制位可以在設定msms為1的同時設定,以啟動匯流排事務。

接下去他說當開始一次重複開始的狀態時,傳送fifo必須為空。首先將重複起始位設為1,然後將axi iic核心裝置的位址寫入傳輸fifo。有需要的話fifo的其餘部分可以填充資料。

FPGA學習筆記(一) 初識FPGA

該隨筆中部分內容 自小梅哥 fpga field programmable gate array,現場可程式設計門陣列 正如其名,fpga內部有大量的可程式設計邏輯功能塊,使用verilog hdl 硬體描述語言 實現設計。玩過微控制器的小夥伴剛接觸fpga可能會有點困惑,其實fpga與微控制器最大...

fpga學習之數碼管顯示

1 設計需求 設計乙個數碼管驅動電路,是數碼管能夠顯示任意六位數。2 數碼管原理分析 現在的數碼管基本都是八段式的,也就是說由八個發光二極體組成的。如圖一所示,這是單個數碼管的原理圖 我們需要二極體顯示數字,只需要控制二極體的亮滅就行。以共陽極數碼管為例 給二極體低電平為點亮二極體 如圖二所示顯示數...

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