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

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

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

淺談Zynq中GPIO的BANK分布

454398 ? 來源:瓜大三哥 ? 作者:米果不回來 ? 2020-11-17 15:51 ? 次閱讀

在編寫程序之前,先來了解GPIO的BANK分布,在UG585文檔GPIO一章中可以看到GPIO是有4個BANK,注意與MIO的BANK區(qū)分。BANK0控制32個信號,BANK1控制22個信號,總共是MIO的54個引腳,BANK2和BANK3共能控制64個PL端引腳,每一組都有三個信號,輸入EMIOGPIOI,輸出EMIOGPIOO,輸出使能EMIOGPIOTN,共192個信號。

下圖為GPIO的控制,實驗中會用到輸出部分的寄存器,數(shù)據(jù)寄存器DATA,數(shù)據(jù)掩碼寄存器MASK_DATA_LSW,MASK_DATA_MSW,方向控制寄存器DIRM,輸出使能控制器OEN。

程序中利用以下函數(shù)設(shè)置方向和輸出使能:

int main()

{

    XGpioPs_Config *GPIO_CONFIG ;

    int Status ; 

    //通用手法,查找GPIO列表

    GPIO_CONFIG= XGpioPs_LookupConfig(MIO_0_ID);

    //Exception的檢測

    Status= XGpioPs_CfgInitialize(&GPIO_PTR, GPIO_CONFIG, GPIO_CONFIG->BaseAddr) ;

    if (Status != XST_SUCCESS)

    {

        return XST_FAILURE ;

    }

    //設(shè)置MIO的PIN引腳方向

    XGpioPs_SetDirectionPin(&GPIO_PTR,0, GPIO_OUTPUT) ;

    XGpioPs_SetDirectionPin(&GPIO_PTR,13, GPIO_OUTPUT) ;

    //使能MIO的PIN引腳輸出

    XGpioPs_SetOutputEnablePin(&GPIO_PTR,0, GPIO_OUTPUT) ;

    XGpioPs_SetOutputEnablePin(&GPIO_PTR,13, GPIO_OUTPUT) ;


    while(1)

    {

        XGpioPs_WritePin(&GPIO_PTR,0, 1) ;

        XGpioPs_WritePin(&GPIO_PTR,13, 0) ;

        usleep(100000);

        XGpioPs_WritePin(&GPIO_PTR,0, 0) ;

        XGpioPs_WritePin(&GPIO_PTR,13, 1) ;

        usleep(100000);

    }

    return 0;

}

實現(xiàn)兩個LED的閃爍

編輯:hfy

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

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119212
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1175

    瀏覽量

    51515
  • MIO
    MIO
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    8140
  • Zynq
    +關(guān)注

    關(guān)注

    9

    文章

    604

    瀏覽量

    47016
  • bank
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    14807
收藏 人收藏

    評論

    相關(guān)推薦

    ZYNQ開發(fā)案例:GPIO的結(jié)構(gòu)體系及使用案例

    GPIO的結(jié)構(gòu)體系 zynqGPIO,分為兩種,MIO(multiuse I/O)和EMIO(extendable multiuse I/O)。 ZYNQ
    的頭像 發(fā)表于 12-09 11:41 ?3493次閱讀
    <b class='flag-5'>ZYNQ</b>開發(fā)案例:<b class='flag-5'>GPIO</b>的結(jié)構(gòu)體系及使用案例

    Xilinx ZYNQ開發(fā)GPIO的三種方式:MIO、EMIO、AXI_GPIO

    前言: ZYNQ 7000有三種GPIO:MIO,EMIO,AXI_GPIO MIO是固定管腳的,屬于PS,使用時不消耗PL資源;EMIO通過PL擴展,使用時需要分配管腳,使用時消耗PL管腳資源
    的頭像 發(fā)表于 12-26 10:12 ?3691次閱讀
    Xilinx <b class='flag-5'>ZYNQ</b>開發(fā)<b class='flag-5'>GPIO</b>的三種方式:MIO、EMIO、AXI_<b class='flag-5'>GPIO</b>

    淺談GPIO的操作

    本帖最后由 芯靈思FAE 于 2016-7-31 12:48 編輯 淺談GPIO的操作很久很久以前,我們?nèi)绻贚inux系統(tǒng)下操作GPIO是這樣的......gpio.c申請
    發(fā)表于 07-31 12:47

    玩轉(zhuǎn)Zynq連載2——Zynq PS的GPIO外設(shè)

    的設(shè)置,可以實現(xiàn)對一個bank特定一個或多個GPIO的控制。 其它幾個主要寄存器的功能如下。 ● DATA寄存器。當GPIO配置為輸出時,該寄存器用于配置
    發(fā)表于 04-18 16:33

    如何訪問zynq處理器GPIO?

    你好我有Zynq 7z020板,我想訪問它的GPIO,但我找不到Zynq處理器文檔,所以我知道如何訪問Zynq GPIO?問候
    發(fā)表于 09-11 10:48

    將LVDS輸出驅(qū)動器連接到ZYNQ 7030的HP Bank的方法?

    你好我需要將LVDS輸出驅(qū)動器連接到ZYNQ 7030的HP Bank。LVDS輸出驅(qū)動器的電源電壓為VCCO_LVDSout_DRIVER = 2.5V,HP bank為VCCO_HP_BA
    發(fā)表于 08-12 09:34

    ZYNQGPIO相關(guān)資料推薦

    ZYNQ 分為 PS 和 PL 兩部分,那么器件的引腳(Pin)資源同樣也分成了兩部分。ZYNQ PS 的外設(shè)可以通過 MIO(Multiuse I/O,多用輸入/輸出)模塊連接到 PS 端的引腳
    發(fā)表于 02-08 07:27

    ZYNQ 的三種GPIO :MIO、EMIO、AXI

    。 我們先看一下MIO和EMIO:下圖EMIO和MIO的結(jié)構(gòu)。其中MIO分布BANK0,BANK1,而EMIO則分布BANK2、
    發(fā)表于 02-08 10:23 ?3152次閱讀
    <b class='flag-5'>ZYNQ</b> 的三種<b class='flag-5'>GPIO</b> :MIO、EMIO、AXI

    zynqGPIO唬住,告訴你zynq的3種GPIO

    我們先看有哪三種GPIO:MIO、EMIO、AXI_GPIO。其中MIO和EMIO是直接掛在PS上的GPIO。而AXI_GPIO是通過AXI總線掛在PS上的
    發(fā)表于 07-07 08:23 ?5093次閱讀

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

    GPIO功能,PS部分通過M_AXI_GP接口來控制該GPIO IP模塊;另外EMIO模塊雖然使用PS部分GPIO但也使用了PL部分的管腳資源。MIO方式實現(xiàn)GPIOvivado
    的頭像 發(fā)表于 08-07 10:16 ?2928次閱讀
    <b class='flag-5'>zynq</b>中三種實現(xiàn)<b class='flag-5'>GPIO</b>的方式

    LINUX GPIO如何驅(qū)動源碼移植

    GPIO是嵌入式系統(tǒng)最簡單、最常用的資源了,比如點亮LED,控制蜂鳴器,輸出高低電平,檢測按鍵,等等。GPIO分輸入和輸出,在Montavista linux-2.6.18,有關(guān)GPIO
    發(fā)表于 06-26 17:43 ?4次下載
    LINUX <b class='flag-5'>GPIO</b>如何驅(qū)動源碼移植

    ZYNQ-7000系列MIO、EMIO、AXI_GPIO接口

    ZYNQ-7000系列MIO/EMIO/AXI_GPIO接口
    發(fā)表于 07-25 17:41 ?2443次閱讀
    <b class='flag-5'>ZYNQ</b>-7000系列MIO、EMIO、AXI_<b class='flag-5'>GPIO</b>接口

    ZYNQ-7000系列MIO/EMIO/AXI_GPIO接口

    ZYNQ-7000系列MIO/EMIO/AXI_GPIO接口
    發(fā)表于 01-31 06:50 ?12次下載
    <b class='flag-5'>ZYNQ</b>-7000系列MIO/EMIO/AXI_<b class='flag-5'>GPIO</b>接口

    ZYNQGPIO簡介

    ZYNQ 分為 PS 和 PL 兩部分,那么器件的引腳(Pin)資源同樣也分成了兩部分。ZYNQ PS 的外設(shè)可以通過 MIO(Multiuse I/O,多用輸入/輸出)模塊連接到 PS 端的引腳
    發(fā)表于 12-04 18:51 ?16次下載
    <b class='flag-5'>ZYNQ</b>的<b class='flag-5'>GPIO</b>簡介

    ZYNQ學習筆記_GPIO之輸入輸出

    ZYNQ學習筆記_GPIOGPIO介紹MIO介紹EMIO介紹控制GPIO接口的寄存器原理GPIO介紹GPIO的英文全稱為General-purpose input/output,即一種
    發(fā)表于 12-04 19:36 ?10次下載
    <b class='flag-5'>ZYNQ</b>學習筆記_<b class='flag-5'>GPIO</b>之輸入輸出