女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ZYNQ FPGA的PS端IIC設備接口使用

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2025-04-17 11:26 ? 次閱讀

zynq系列中的FPGA,都會自帶兩個iic設備,我們直接調用其接口函數即可運用。使用xilinx官方提供的庫函數,開發起來方便快捷。

一:配置vavido

創建block design,勾選iic設備,可以看到iic的引腳可以進行這種分配,對照原理圖,勾選對應的引腳即可。

56c47362-19d6-11f0-9310-92fbcf53809c.png

二:sdk開發

創建好工程后,在sdk中對iic設備進行初始化,和對iic設備的讀寫操作。

首先是對iic設備進行初始化,初始化iic設備的基地址,設備id,iic時鐘頻率等信息。

u32 XpsIic_Initialize(XIicPs*InstancePtr,u16 DeviceID,u32 iic_clk) { int Status; XIicPs_Config *Config;// print("查找設備信息");Config = XIicPs_LookupConfig(DeviceID);if (NULL== Config) { print("查找id失敗");return XST_FAILURE;} Status = XIicPs_CfgInitialize(InstancePtr, Config, Config->BaseAddress);if (Status!= XST_SUCCESS) { return XST_FAILURE;} Status = XIicPs_SelfTest(InstancePtr);if (Status!= XST_SUCCESS) { return XST_FAILURE;} /*  * 設置i2c的sclk時鐘  */  Status=XIicPs_SetSClk(InstancePtr, iic_clk);if (Status!= XST_SUCCESS) { print("設置clk失敗");return XST_FAILURE;} return XST_SUCCESS;}

然后就是iic的讀寫操作,我們使用官方提供的iic接口函數,有時候也需要對其再次進行封裝,這樣自己使用起來比較順手。

1:發送函數

s32 XIicPs_MasterSendPolled(XIicPs*InstancePtr, u8 *MsgPtr,              s32 ByteCount, u16 SlaveAddr)             

這是一個用于master的輪詢發送函數,我們常用的iic發送函數模式就是輪詢的,至于中斷模式的,則是另一個函數XIicPs_MasterSend()。兩者看起來容易混淆

4個參數:

@param InstancePtr is a pointer to the XIicPs instance. 設備指針

@param MsgPtr is the pointer to the send buffer. 待發送數據數組指針

@param ByteCount is the number of bytes to be sent. 發送數據的個數

@param SlaveAddr is the address of the slave we are sending to. 從機地址

2:接收函數

s32 XIicPs_MasterRecvPolled(XIicPs*InstancePtr, u8 *MsgPtr,          s32 ByteCount, u16 SlaveAddr)

此函數也是只用于輪詢模式的,不適合中斷模式的讀取,中斷模式的接收函數叫XIicPs_MasterRecv()

四個參數:

@param InstancePtr is a pointer to the XIicPs instance. 設備指針

@param MsgPtr is the pointer to the receive buffer. 接收數據存儲的地方

@param ByteCount is the number of bytes to be received. 接收到的數據個數

@param SlaveAddr is the address of the slave we are receiving from. 從機地址

對于讀函數,需要在注意的地方在于需要根據實際設備的讀時序進行封裝,直接調用這個函數可能不會成功。

舉個例子:

56e3f11a-19d6-11f0-9310-92fbcf53809c.png

在這個時序中可以看出,我們是先發送一個寫動作,但沒有實際數據寫入,然后在發送一個讀指令。在sdk中寫函數和讀函數是分開的,所以我們在讀取數據時,可能跟我們在使用模擬iic操作的時候不太一樣。

u32XpsIic_ADS1015_Read(XIicPs *InstancePtr,u8Write_addr,u8ConReg_addr,u8Read_addr) { int status;u8buf[1]; buf[0] = ConReg_addr; status =XIicPs_MasterSendPolled(InstancePtr, buf,1,Write_addr); //先發送 寫地址+轉換寄存器地址if(status != XST_SUCCESS) {returnXST_FAILURE; }  while(XIicPs_BusIsBusy(InstancePtr)); status =XIicPs_MasterRecvPolled(InstancePtr, ADS1015Buf,2, Read_addr); //在發送讀地址進行讀取數據if(status != XST_SUCCESS) {returnXST_FAILURE; }returnXST_SUCCESS; }

注意事項:

使用iic的接口函數進行開發時,從機的器件地址是7位的,不帶讀寫位。比如你在調用讀/寫函數時,程序內部會在這個地址的后面自動的補上這個讀寫位,所以這也和上面提到的為什么sdk有單獨的讀寫函數,也是基于這個原因。你調用寫函數時,就會在后自動補上0;調用讀函數時,就會在后面自動補1。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1643

    文章

    21954

    瀏覽量

    613992
  • 接口
    +關注

    關注

    33

    文章

    8932

    瀏覽量

    153189
  • Zynq
    +關注

    關注

    10

    文章

    614

    瀏覽量

    48013
  • IIC設備
    +關注

    關注

    0

    文章

    3

    瀏覽量

    5197

原文標題:ZYNQ——PS端IIC設備接口使用

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ZYNQ Ultrascale+ MPSOC FPGA教程】第三十二章PL讀寫PSDDR數據

    PL和PS的高效交互是zynq soc開發的重中之重,我們常常需要將PL的大量數據實時送到PS處理,或者將
    的頭像 發表于 01-30 09:54 ?1.5w次閱讀
    【<b class='flag-5'>ZYNQ</b> Ultrascale+ MPSOC <b class='flag-5'>FPGA</b>教程】第三十二章PL讀寫<b class='flag-5'>PS</b><b class='flag-5'>端</b>DDR數據

    ZYNQ7000系列 PS、PL、AXI 、啟動流程基本概念

    /005899fe6815 二、ZYNQ7020 分為PS、PL PS: 處理系統 (Processing System) , 就是與
    的頭像 發表于 05-12 10:25 ?1.8w次閱讀
    <b class='flag-5'>ZYNQ</b>7000系列 <b class='flag-5'>PS</b>、PL、AXI 、啟動流程基本概念

    ZYNQ中的ps到底擔任了什么作用?

    ZYNQ中的ps到底擔任了什么作用?,除了不用FPGA設計接口驅動還有什么?
    發表于 01-26 14:01

    zynq XC7Z100板卡學習資料:基于zynq XC7Z100 FMC接口通用計算平臺

    、USB口、UART-RS422、千兆網、JTAG調試等接口。二、基礎接口和性能核心板:使用 Zynq-7100SoC 對嵌入式應用進行快速原型設計以實現優化;PS
    發表于 03-24 09:39

    ZYNQ PSIIC接口使用筆記分享

    ZYNQ7000系列FPGAPS自帶兩個IIC接口接口PIN IO可擴展為EMIO形式即將I
    發表于 12-23 17:06

    ZYNQ PSIIC接口使用筆記分享

      ZYNQ7000系列FPGAPS自帶兩個IIC接口接口PIN IO可擴展為EMIO形式即
    發表于 01-08 16:44

    ZYNQ PSIIC接口怎么使用?

    ZYNQ PSIIC接口使用筆記
    發表于 02-23 06:23

    Zynq-7000 PSIIC接口使用筆記

    ZYNQ7000系列FPGAPS自帶兩個IIC接口接口PIN IO可擴展為EMIO形式即將I
    的頭像 發表于 07-25 17:56 ?2695次閱讀
    <b class='flag-5'>Zynq</b>-7000 <b class='flag-5'>PS</b><b class='flag-5'>端</b><b class='flag-5'>IIC</b><b class='flag-5'>接口</b>使用筆記

    ZYNQ PSIIC接口使用筆記

    ZYNQ7000系列FPGAPS自帶兩個IIC接口接口PIN IO可擴展為EMIO形式即將I
    發表于 01-28 08:05 ?25次下載
    <b class='flag-5'>ZYNQ</b> <b class='flag-5'>PS</b><b class='flag-5'>端</b><b class='flag-5'>IIC</b><b class='flag-5'>接口</b>使用筆記

    ZYNQ 的啟動流程介紹

    普通的 FPGA 一般是可以從 flash 啟動,或者被動加載,但是ZYNQ不行,ZYNQ必須PS參與
    的頭像 發表于 07-22 10:10 ?8540次閱讀

    ZYNQ7020的PS的基本開發流程

    這篇文章記錄ZYNQ7020的PS的基本開發流程,關于PL的開發流程,參考之前文章,這里放個超鏈接。
    的頭像 發表于 07-24 18:12 ?9852次閱讀

    FPGAs,ZynqZynq MPSoC器件的特點

    Zynq MPSoC是Zynq-7000 SoC(之后簡稱Zynq)的進化版本。Zynq是賽靈思發布的集成PL(FPGA)和
    的頭像 發表于 08-15 09:16 ?3092次閱讀

    有關AXI IICPS IIC的自調試技巧

    AXI IICPS IIC 控制器都符合 NXP IIC 總線規范。用戶必須確保其選擇使用的從設備的時序參數與UM10204 的第 4
    發表于 08-25 10:29 ?2133次閱讀

    Zynq系列FPGA的亮點

    Zynq 系列的亮點在于 FPGA 里包含了完整的 ARM 處理子系統(PS),每一顆 Zynq 系列的處理器都包含了Cortex-A9處理器,整個處理器的搭建都以處理器為中心, 而且
    的頭像 發表于 08-06 10:20 ?1663次閱讀
    <b class='flag-5'>Zynq</b>系列<b class='flag-5'>FPGA</b>的亮點

    xilinx ZYNQ7000系列基本開發流程之PS

    ZYNQ 芯片分為 PL 和 PSPS 的 IO 分配相對是固定的,不能任意分配,雖然 PS
    的頭像 發表于 08-11 09:36 ?1.2w次閱讀
    xilinx <b class='flag-5'>ZYNQ</b>7000系列基本開發流程之<b class='flag-5'>PS</b><b class='flag-5'>端</b>