在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

zynq中三種實現(xiàn)GPIO的方式

FPGA學(xué)習(xí)交流 ? 2018-08-07 10:16 ? 次閱讀

MIO和EMIO方式是使用PS部分的GPIO模塊來實現(xiàn)GPIO功能的,支持54個MIO(可輸出三態(tài))、64個輸入和128個輸出(64個輸出和64個輸出使能)EMIO

而IP方式是在PL部分實現(xiàn) GPIO功能,PS部分通過M_AXI_GP接口來控制該GPIO IP模塊;另外EMIO模塊雖然使用PS部分GPIO但也使用了PL部分的管腳資源。

MIO方式實現(xiàn)GPIO
vivado中zynq設(shè)置如下圖
113328zpphwrh3spmt0rdt.png



由圖中可見要選中打開GPIO,其下自動顯示可用于GPIO的MIO(當(dāng)MIO作為其他功能時就不能作為GPIO使用了),其中MIO 7、MIO 8只能作為輸出使用,因為它們用于VMODE管腳

軟件部分如下
#include
#include "platform.h"
#include "xgpiops.h"

#define LED1 0
#define LED2 9

static void delay(int dly)
{
int i, j;
for (i = 0; i < dly; i++) {
for (j = 0; j < 0xffff; j++) {
;
}
}
}

int main()
{
int Status;
XGpioPs_Config *ConfigPtr;
XGpioPs Gpio;

init_platform();

ConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);
Status = XGpioPs_CfgInitialize(&Gpio, ConfigPtr,
ConfigPtr->BaseAddr);
if (Status != XST_SUCCESS){
return XST_FAILURE;
}

XGpioPs_SetDirectionPin(&Gpio, LED1, 1);
XGpioPs_SetDirectionPin(&Gpio, LED2, 1);
XGpioPs_SetOutputEnablePin(&Gpio, LED1, 1);
XGpioPs_SetOutputEnablePin(&Gpio, LED2, 1);

while (1) {
XGpioPs_WritePin(&Gpio, LED1, 0);
XGpioPs_WritePin(&Gpio, LED2, 1);
delay(1000);
XGpioPs_WritePin(&Gpio, LED1, 1);
XGpioPs_WritePin(&Gpio, LED2, 0);
delay(1000);
}
cleanup_platform();
}


EMIO方式實現(xiàn)GPIO
vivado中zynq設(shè)置如下圖
113329qq6qz904j5hv54w5.png



圖中可知GPIO中選擇使用EMIO,并選擇位寬(這里例子中選擇3);其vivado中連接如下圖



上圖可知除了FIXED IO和DDR接口外,還多了3個3對(一個輸入,一個輸出和一個輸出使能)GPIO管腳。

不同于MIO,這里三個IO管腳(一個輸入,一個輸出和一個輸出使能在自動生成的頂層模塊中合并為一個IO)要綁定到芯片對應(yīng)管腳上

軟件部分如下
#include
#include "platform.h"
#include "xgpiops.h"

#define LED_R 54
#define LED_G 55
#define LED_B 56
#define LED_ON 0
#define LED_OFF 1

static void delay(int dly)
{
int i, j;
for (i = 0; i < dly; i++) {
for (j = 0; j < 0xffff; j++) {
;
}
}
}

int main()
{
int Status;
XGpioPs_Config *ConfigPtr;
XGpioPs Gpio;

init_platform();

ConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);
Status = XGpioPs_CfgInitialize(&Gpio, ConfigPtr,
ConfigPtr->BaseAddr);
if (Status != XST_SUCCESS) {
print("cfg init err\n");
return XST_FAILURE;
}
XGpioPs_SetDirectionPin(&Gpio, LED_R, 1);
XGpioPs_SetOutputEnablePin(&Gpio, LED_R, 1);
XGpioPs_SetDirectionPin(&Gpio, LED_G, 1);
XGpioPs_SetOutputEnablePin(&Gpio, LED_G, 1);
XGpioPs_SetDirectionPin(&Gpio, LED_B, 1);
XGpioPs_SetOutputEnablePin(&Gpio, LED_B, 1);

while (1) {
XGpioPs_WritePin(&Gpio, LED_R, LED_ON);
delay(1000);
XGpioPs_WritePin(&Gpio, LED_G, LED_ON);
delay(1000);
XGpioPs_WritePin(&Gpio, LED_B, LED_ON);
delay(1000);
XGpioPs_WritePin(&Gpio, LED_R, LED_OFF);
delay(1000);
XGpioPs_WritePin(&Gpio, LED_G, LED_OFF);
delay(1000);
XGpioPs_WritePin(&Gpio, LED_B, LED_OFF);
delay(1000);
}
cleanup_platform();
}

類似MIO方式(都為PS部分GPIO操作),設(shè)置為輸出并設(shè)置輸出使能,但要注意這里的GPIO號是從54開始的3個。

IP方式實現(xiàn)GPIO
vivado中zynq設(shè)置如下圖
113329xl44rer7g49f2apg.png



圖中可知GPIO中MIO和EMIO都不選擇,但要打開M_AXI_GP接口(這里選擇M_AXI_GP0)和復(fù)位管腳,如下圖
113330hbyhktpyaayy6kvv.png



當(dāng)然用到了PL部分邏輯則至少需要一個時鐘輸出到PL部分,這里選擇FCLK_CLK0輸出50MHz,如下圖


推薦加入zynq后,不要自動連接,再加入gpio并位寬設(shè)置為3,具體設(shè)置如下圖



GPIO設(shè)置好后,再點擊上面的藍色字體的自動連接,即可得到上面的連接,這樣可以減少手動連接量。

最后vivado中連接如下圖


與EMIO類似需要將頂層三個GPIO管腳要綁定到芯片對應(yīng)管腳上。

軟件部分如下
#include
#include "platform.h"
#include "xgpio.h"

#define AXI_GPIO_DEVICE_ID XPAR_GPIO_0_DEVICE_ID
#define XGPIO_BANK1 1
#define XGPIO_BANK2 2

#define LED34_R_PIN 0x01
#define LED34_G_PIN 0x02
#define LED34_B_PIN 0x04

static void delay(int dly)
{
int i, j;
for (i = 0; i < dly; i++) {
for (j = 0; j < 0xffff; j++) {
;
}
}
}

int main()
{
XGpio_Config *XGpioCfg;
XGpio XGpio;
int Status;

init_platform();

XGpioCfg = XGpio_LookupConfig(AXI_GPIO_DEVICE_ID);
Status = XGpio_CfgInitialize(&XGpio, XGpioCfg, XGpioCfg->BaseAddress);
if (Status != XST_SUCCESS) {
return XST_FAILURE;
}

XGpio_SetDataDirection(&XGpio, XGPIO_BANK1, ~(LED34_R_PIN | LED34_G_PIN | LED34_B_PIN));
XGpio_DiscreteWrite(&XGpio, XGPIO_BANK1, LED34_R_PIN | LED34_G_PIN | LED34_B_PIN);
while (1) {
XGpio_DiscreteWrite(&XGpio, XGPIO_BANK1, ~LED34_R_PIN);
delay(1000);
XGpio_DiscreteWrite(&XGpio, XGPIO_BANK1, ~(LED34_R_PIN | LED34_G_PIN));
delay(1000);
XGpio_DiscreteWrite(&XGpio, XGPIO_BANK1, ~(LED34_R_PIN | LED34_G_PIN | LED34_B_PIN));
delay(1000);
XGpio_DiscreteWrite(&XGpio, XGPIO_BANK1, ~(LED34_G_PIN | LED34_B_PIN));
delay(1000);
XGpio_DiscreteWrite(&XGpio, XGPIO_BANK1, ~(LED34_B_PIN));
delay(1000);
XGpio_DiscreteWrite(&XGpio, XGPIO_BANK1, LED34_R_PIN | LED34_G_PIN | LED34_B_PIN);
delay(1000);
}
cleanup_platform();
return 0;
}

這里實現(xiàn)的功能與EMIO方式中功能相同,當(dāng)時IP方式中為PL部分實現(xiàn)的GPIO,所以調(diào)用的函數(shù)與前面兩種GPIO實現(xiàn)函數(shù)不同,注意包含的GPIO頭文件,前兩種是#include "xgpiops.h"而這最后一種為#include "xgpio.h"

總結(jié)
MIO和EMIO方式使用PS部分的GPIO模塊,其中MIO方式不占用PL部分資源,其輸出管腳只能為固定的54個(而且要在未被其它外設(shè)使用的情況下),EMIO方式會占用PL的管腳資源,其管腳可在PL部分任意選擇(除特殊功能管腳),IP方式除了占用PL部分管腳資源外還會占用PL部分邏輯資源,所以其GPIO功能在PL部分實現(xiàn)其調(diào)用函數(shù)也和前兩種不同,最后EMIO和IP方式在vivado都需要綁定管腳。


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

    評論

    相關(guān)推薦

    信號隔離器三種供電方式的區(qū)別

    信號隔離器是一重要的信號隔離裝置,其供電方式主要有獨立供電、回路供電和輸出回路供電三種。以下是這三種供電方式的詳細區(qū)別: 一、獨立供電 1
    的頭像 發(fā)表于 04-17 16:23 ?137次閱讀
    信號隔離器<b class='flag-5'>三種</b>供電<b class='flag-5'>方式</b>的區(qū)別

    FOC中的三種電流采樣方式,你真的會選擇嗎?(可下載)

    的基礎(chǔ),用一句話來形容就是“基礎(chǔ)不對,努力白費”,由此可見電流采樣在整 個 FOC 算法中的作用電流采樣的方式一般分為電阻、雙電阻、單電阻,這三種采樣方式都有其
    發(fā)表于 03-12 15:04 ?0次下載

    三種太赫茲波的產(chǎn)生方式

    本文簡單介紹了三種太赫茲波的產(chǎn)生方式。 太赫茲波(THz)是一電磁波,在電磁波譜上位于紅外與微波之間。太赫茲光子能量在1-10 meV范圍之間,在光譜分析、醫(yī)療成像、移動通信方面都有非常廣闊
    的頭像 發(fā)表于 02-17 09:09 ?1052次閱讀
    <b class='flag-5'>三種</b>太赫茲波的產(chǎn)生<b class='flag-5'>方式</b>

    示波器的三種觸發(fā)模式

    示波器的觸發(fā)方式不僅影響波形捕捉的時機,還決定了顯示的波形是否穩(wěn)定。 常見的觸發(fā)模式有三種: 單次觸發(fā) (Single)、 正常觸發(fā) (Normal)和 自動觸發(fā) (Auto)。下面將對這三種觸發(fā)
    的頭像 發(fā)表于 01-07 11:04 ?4739次閱讀
    示波器的<b class='flag-5'>三種</b>觸發(fā)模式

    systemd journal收集日志的三種方式

    隨著 systemd 成了主流的 init 系統(tǒng),systemd 的功能也在不斷的增加,比如對系統(tǒng)日志的管理。Systemd 設(shè)計的日志系統(tǒng)好處多多,這里筆者就不再贅述了,本文筆者主要介紹 systemd journal 收集日志的三種方式
    的頭像 發(fā)表于 10-23 11:50 ?610次閱讀
    systemd journal收集日志的<b class='flag-5'>三種</b><b class='flag-5'>方式</b>

    I2S有左對齊,右對齊跟標(biāo)準(zhǔn)的I2S三種格式,那么這三種格式各有什么優(yōu)點呢?

    大家好,關(guān)于I2S格式,有兩個疑問請教一下 我們知道I2S有左對齊,右對齊跟標(biāo)準(zhǔn)的I2S三種格式,那么這三種格式各有什么優(yōu)點呢? 而且對于標(biāo)準(zhǔn)的I2S格式,32FS傳輸16bit的數(shù)據(jù),48fs傳輸24bit的數(shù)據(jù),最低位會移動到右聲道,是否意味著該數(shù)據(jù)被丟棄了?還是有
    發(fā)表于 10-21 08:23

    Windows管理內(nèi)存的三種主要方式

    Windows操作系統(tǒng)提供了多種方式來管理內(nèi)存,以確保系統(tǒng)資源的有效利用和性能的優(yōu)化。以下是關(guān)于Windows管理內(nèi)存的三種主要方式的詳細闡述,包括堆內(nèi)存管理、虛擬內(nèi)存管理以及共享內(nèi)存管理,每種
    的頭像 發(fā)表于 10-12 17:09 ?2029次閱讀

    如何利用三種 SOT-563 封裝實現(xiàn)共同布局

    電子發(fā)燒友網(wǎng)站提供《如何利用三種 SOT-563 封裝實現(xiàn)共同布局.pdf》資料免費下載
    發(fā)表于 09-10 14:25 ?0次下載
    如何利用<b class='flag-5'>三種</b> SOT-563 封裝<b class='flag-5'>實現(xiàn)</b>共同布局

    shell腳本執(zhí)行的三種方式及區(qū)別

    在Linux系統(tǒng)中,Shell腳本是一非常實用的工具,用于自動化執(zhí)行一系列命令。Shell腳本可以大大提高工作效率,簡化復(fù)雜的任務(wù)。在這篇文章中,我們將介紹Shell腳本執(zhí)行的三種方式及其區(qū)別
    的頭像 發(fā)表于 08-30 15:24 ?1882次閱讀

    簡述三種esp32的開發(fā)方式是什么

    ESP32是一款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模無線通信芯片,廣泛應(yīng)用于物聯(lián)網(wǎng)、智能家居、智能硬件等領(lǐng)域。本文將詳細介紹三種ESP32的開發(fā)方式:Arduino
    的頭像 發(fā)表于 08-20 09:11 ?6647次閱讀

    常用的pwm跟蹤控制方式是哪三種

    PWM(脈寬調(diào)制)跟蹤控制是一廣泛應(yīng)用于電機控制、電源管理、通信等領(lǐng)域的技術(shù)。它通過調(diào)整脈沖的寬度來控制輸出信號的占空比,從而實現(xiàn)對系統(tǒng)的精確控制。常用的PWM跟蹤控制方式主要有三種
    的頭像 發(fā)表于 08-14 10:34 ?2098次閱讀

    計算機網(wǎng)絡(luò)中的三種通信方式

    計算機網(wǎng)絡(luò)中的三種通信方式,即單工通信、半雙工通信和全雙工通信,是理解和設(shè)計高效網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)。每種通信方式都有其獨特的特性、應(yīng)用場景及優(yōu)缺點。以下是對這三種通信
    的頭像 發(fā)表于 08-07 15:00 ?4404次閱讀

    逆變電路的三種調(diào)壓方式

    路的三種調(diào)壓方式:脈寬調(diào)制(PWM)調(diào)壓、相位控制調(diào)壓和頻率調(diào)制調(diào)壓。 1. 脈寬調(diào)制(PWM)調(diào)壓 脈寬調(diào)制是一通過改變脈沖寬度來調(diào)整輸出電壓的調(diào)壓方式。在PWM調(diào)壓中,逆變電路的
    的頭像 發(fā)表于 08-02 16:59 ?3720次閱讀

    交流電力控制電路三種控制方式

    三種控制方式的原理、特點和應(yīng)用。 一、電壓控制 電壓控制原理 電壓控制是指通過改變交流電的電壓來實現(xiàn)對電路的控制。在交流電力系統(tǒng)中,電壓是電能傳輸和分配的關(guān)鍵因素。通過調(diào)整電壓,可以改變電路中的功率和電流,從
    的頭像 發(fā)表于 06-16 11:19 ?5063次閱讀

    在線視頻會議軟件有哪些?三種實現(xiàn)方式

    分類來進行解說。 視頻會議技術(shù)基本上可分為兩大類:基于硬件的編解碼和基于軟件的編解碼。以下是基于兩編碼的三種在線視頻會議實現(xiàn)方式。 一、基于硬件的視頻會議系統(tǒng) 硬件視頻會議系統(tǒng)主要通
    的頭像 發(fā)表于 05-21 17:43 ?929次閱讀
    在線視頻會議軟件有哪些?<b class='flag-5'>三種</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>方式</b>
    主站蜘蛛池模板: 爱爱免费视频 | 成人国产精品毛片 | 亚洲午夜免费 | www.国产一区二区三区 | 你懂的免费 | 在线国产三级 | 天天射天天做 | 亚洲国产成+人+综合 | 日本吻胸抓胸激烈视频网站 | 皇帝受h啪肉np文 | 久久久久国产精品 | 国产一级片免费看 | free性日韩 | 日本h片在线观看 | 亚洲综合久久久久久888 | 椎名空中文字幕一区二区 | 免费看吻胸亲嘴激烈网站 | 欧美色图网站 | 四虎欧美| 18视频网站在线观看 | 午夜免费福利在线观看 | 午夜久久久久久 | 午夜私人影院 | 嘿嘿嘿视频在线观看 | 日韩美女拍拍免费视频网站 | 亚洲国产影视 | 久久国产色 | 欧美卡一卡二卡新区网站 | 日本级毛片免费观看 | 午夜爱爱毛片xxxx视频免费看 | www一区二区三区 | 亚洲欧美一区二区三区四区 | 日本色婷婷 | 77788色淫网站免费观看 | 男人天堂网2021 | 啪啪免费网 | 1024视频色版在线网站 | 永久视频在线观看 | 视频在线观看免费视频 | 日本wwwwwwwww| 天堂网www中文天堂在线 |