chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ZYNQ FPGA的PS端IIC設(shè)備接口使用

FPGA設(shè)計論壇 ? 來源:FPGA設(shè)計論壇 ? 2025-04-17 11:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

一:配置vavido

創(chuàng)建block design,勾選iic設(shè)備,可以看到iic的引腳可以進(jìn)行這種分配,對照原理圖,勾選對應(yīng)的引腳即可。

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

二:sdk開發(fā)

創(chuàng)建好工程后,在sdk中對iic設(shè)備進(jìn)行初始化,和對iic設(shè)備的讀寫操作。

首先是對iic設(shè)備進(jìn)行初始化,初始化iic設(shè)備的基地址,設(shè)備id,iic時鐘頻率等信息。

u32 XpsIic_Initialize(XIicPs*InstancePtr,u16 DeviceID,u32 iic_clk) { int Status; XIicPs_Config *Config;// print("查找設(shè)備信息");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;} /*  * 設(shè)置i2c的sclk時鐘  */  Status=XIicPs_SetSClk(InstancePtr, iic_clk);if (Status!= XST_SUCCESS) { print("設(shè)置clk失敗");return XST_FAILURE;} return XST_SUCCESS;}

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

1:發(fā)送函數(shù)

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

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

4個參數(shù):

@param InstancePtr is a pointer to the XIicPs instance. 設(shè)備指針

@param MsgPtr is the pointer to the send buffer. 待發(fā)送數(shù)據(jù)數(shù)組指針

@param ByteCount is the number of bytes to be sent. 發(fā)送數(shù)據(jù)的個數(shù)

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

2:接收函數(shù)

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

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

四個參數(shù):

@param InstancePtr is a pointer to the XIicPs instance. 設(shè)備指針

@param MsgPtr is the pointer to the receive buffer. 接收數(shù)據(jù)存儲的地方

@param ByteCount is the number of bytes to be received. 接收到的數(shù)據(jù)個數(shù)

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

對于讀函數(shù),需要在注意的地方在于需要根據(jù)實際設(shè)備的讀時序進(jìn)行封裝,直接調(diào)用這個函數(shù)可能不會成功。

舉個例子:

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

在這個時序中可以看出,我們是先發(fā)送一個寫動作,但沒有實際數(shù)據(jù)寫入,然后在發(fā)送一個讀指令。在sdk中寫函數(shù)和讀函數(shù)是分開的,所以我們在讀取數(shù)據(jù)時,可能跟我們在使用模擬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); //先發(fā)送 寫地址+轉(zhuǎn)換寄存器地址if(status != XST_SUCCESS) {returnXST_FAILURE; }  while(XIicPs_BusIsBusy(InstancePtr)); status =XIicPs_MasterRecvPolled(InstancePtr, ADS1015Buf,2, Read_addr); //在發(fā)送讀地址進(jìn)行讀取數(shù)據(jù)if(status != XST_SUCCESS) {returnXST_FAILURE; }returnXST_SUCCESS; }

注意事項:

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1650

    文章

    22204

    瀏覽量

    626685
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9257

    瀏覽量

    155403
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    623

    瀏覽量

    48897
  • IIC設(shè)備
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    5244

原文標(biāo)題:ZYNQ——PS端IIC設(shè)備接口使用

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    ZYNQ Ultrascale+ MPSOC FPGA教程】第三十二章PL讀寫PSDDR數(shù)據(jù)

    PL和PS的高效交互是zynq soc開發(fā)的重中之重,我們常常需要將PL的大量數(shù)據(jù)實時送到PS處理,或者將
    的頭像 發(fā)表于 01-30 09:54 ?1.6w次閱讀
    【<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數(shù)據(jù)

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

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

    ZYNQ中的ps到底擔(dān)任了什么作用?

    ZYNQ中的ps到底擔(dān)任了什么作用?,除了不用FPGA設(shè)計接口驅(qū)動還有什么?
    發(fā)表于 01-26 14:01

    zynq XC7Z100板卡學(xué)習(xí)資料:基于zynq XC7Z100 FMC接口通用計算平臺

    、USB口、UART-RS422、千兆網(wǎng)、JTAG調(diào)試等接口。二、基礎(chǔ)接口和性能核心板:使用 Zynq-7100SoC 對嵌入式應(yīng)用進(jìn)行快速原型設(shè)計以實現(xiàn)優(yōu)化;PS
    發(fā)表于 03-24 09:39

    ZYNQ PSIIC接口使用筆記分享

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

    ZYNQ PSIIC接口使用筆記分享

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

    ZYNQ PSIIC接口怎么使用?

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

    Zynq-7000 PSIIC接口使用筆記

    ZYNQ7000系列FPGAPS自帶兩個IIC接口,接口PIN IO可擴(kuò)展為EMIO形式即將I
    的頭像 發(fā)表于 07-25 17:56 ?3160次閱讀
    <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可擴(kuò)展為EMIO形式即將I
    發(fā)表于 01-28 08:05 ?26次下載
    <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參與
    的頭像 發(fā)表于 07-22 10:10 ?9745次閱讀

    ZYNQ7020的PS的基本開發(fā)流程

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

    FPGAs,ZynqZynq MPSoC器件的特點

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

    有關(guān)AXI IICPS IIC的自調(diào)試技巧

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

    Zynq系列FPGA的亮點

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

    xilinx ZYNQ7000系列基本開發(fā)流程之PS

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