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

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

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

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

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

電子設(shè)計(jì) ? 來(lái)源:CSDN 博主 ? 作者:ChuanjieZhu ? 2020-12-26 10:12 ? 次閱讀

前言:

ZYNQ 7000有三種GPIO:MIO,EMIO,AXI_GPIO

MIO是固定管腳的,屬于PS,使用時(shí)不消耗PL資源;EMIO通過(guò)PL擴(kuò)展,使用時(shí)需要分配管腳,使用時(shí)消耗PL管腳資源;AXI_GPIO是封裝好的IP核,PS通過(guò)M_AXI_GPIO接口控制PL部分實(shí)現(xiàn)IO,使用時(shí)消耗管腳資源和邏輯資源。

使用的板子是zc702。

1.MIO方式

Zynq7000 系列芯片有 54 個(gè) MIO(multiuse I/O), 它們分配在 GPIO 的 Bank0 和Bank1 隸屬于 PS 部分, 這些 IO 與 PS 直接相連。 不需要添加引腳約束, MIO 信號(hào)對(duì) PL部分是透明的, 不可見(jiàn)。 所以對(duì) MIO 的操作可以看作是純 PS 的操作。

pIYBAF9uIUGACO_GAAGEXyJbwdY370.png


pIYBAF9uIUKAEmemAACU6kfqXfo510.png

新建Vivado工程,添加ZYNQ CPU核,雙擊,配置好時(shí)鐘和內(nèi)存類型,確認(rèn)勾選MIO:

o4YBAF9uIUiAPJJOAATlvxBVp0s930.png

如系列(三)文章所述,生成bit stream,然后Launch SDK。

在SDK中新建工程,源文件如下:
#include "xgpiops.h"
#include "sleep.h"
int main()
{
static XGpioPs psGpioInstancePtr;
XGpioPs_Config* GpioConfigPtr;
int iPinNumber= 8; //DS12連接的是MIO8
u32 uPinDirection = 0x1; //1表示輸出, 0表示輸入
int xStatus;
//--MIO的初始化
GpioConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);
if(GpioConfigPtr == NULL)
return XST_FAILURE;
xStatus = XGpioPs_CfgInitialize(&psGpioInstancePtr,GpioConfigPtr,
GpioConfigPtr->BaseAddr);
if(XST_SUCCESS != xStatus)
print(" PS GPIO INIT FAILED /n/r");
//--MIO的輸入輸出操作
XGpioPs_SetDirectionPin(&psGpioInstancePtr, iPinNumber,uPinDirection);//配置MIO輸出方向
XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, iPinNumber,1);//配置MIO的第8位輸出
while(1)
{
XGpioPs_WritePin(&psGpioInstancePtr, iPinNumber, 1);//點(diǎn)亮MIO的第8位輸出1
usleep(500000); //延時(shí)
XGpioPs_WritePin(&psGpioInstancePtr, iPinNumber, 0);//熄滅MIO的第8位輸出0
usleep(500000); //延時(shí)
}
/****************************************************************
while(1)
{
XGpioPs_WriteReg(0xE000A000,0x00000000, 0xFF7FFFFF&0xFFFF0080);
usleep(500000); //延時(shí)
XGpioPs_WriteReg(0xE000A000,0x00000000, 0xFF7FFFFF&0xFFFF0000);
usleep(500000); //延時(shí)
} *
*****************************************************************/
return 0;
}

下載到板子上,DS12就開(kāi)始閃爍了。

2.EMIO方式

EMIO 分配在 bank2 和 bank3 和 PL部分相連。EMIO 有 64 個(gè)引腳可供我們使用 。當(dāng) MIO 不夠用時(shí), PS 可以通過(guò)驅(qū)動(dòng) EMIO 控制 PL 部分的引腳 。

Vivado工程里ZYNQ CPU核配置,確保EMIO勾選,這里我設(shè)置了位寬為4,后面為其分配了四個(gè)管腳:

在Diagram里面將GPIO_0的引腳引出來(lái),生成頂層文件后查看這個(gè)引腳的名字,因?yàn)槲倚薷牧嗣郑@里叫emio_0_tri_io

管腳約束文件:
#GPIO PMOD1
set_property PACKAGE_PIN E15 [get_ports {emio_0_tri_io[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {emio_0_tri_io[0]}]
set_property PACKAGE_PIN D15 [get_ports {emio_0_tri_io[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {emio_0_tri_io[1]}]
set_property PACKAGE_PIN W17 [get_ports {emio_0_tri_io[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {emio_0_tri_io[2]}]
set_property PACKAGE_PIN W5 [get_ports {emio_0_tri_io[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {emio_0_tri_io[3]}]

SDK部分:MIO號(hào)是0~53,EMIO從54開(kāi)始

#include "xgpiops.h"
#include "sleep.h"
int main()
{
static XGpioPs psGpioInstancePtr;
XGpioPs_Config* GpioConfigPtr;
int xStatus;
//-- EMIO的初始化
GpioConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);
if(GpioConfigPtr == NULL)
return XST_FAILURE;
xStatus = XGpioPs_CfgInitialize(&psGpioInstancePtr,GpioConfigPtr,
GpioConfigPtr->BaseAddr);
if(XST_SUCCESS != xStatus)
print(" PS GPIO INIT FAILED /n/r");
//--EMIO的輸入輸出操作
XGpioPs_SetDirectionPin(&psGpioInstancePtr, 54,1);
XGpioPs_SetDirectionPin(&psGpioInstancePtr, 55,1);
XGpioPs_SetDirectionPin(&psGpioInstancePtr, 56,1);
XGpioPs_SetDirectionPin(&psGpioInstancePtr, 57,1);
//使能EMIO輸出
XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, 54,1);
XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, 55,1);
XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, 56,1);
XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, 57,1);
while(1)
{
XGpioPs_WritePin(&psGpioInstancePtr, 54, 1);//EMIO的第0位輸出1
usleep(200000); //延時(shí)
XGpioPs_WritePin(&psGpioInstancePtr, 54, 0);//EMIO的第0位輸出0
usleep(200000); //延時(shí)
XGpioPs_WritePin(&psGpioInstancePtr, 55, 1);//EMIO的第1位輸出1
usleep(200000); //延時(shí)
XGpioPs_WritePin(&psGpioInstancePtr, 55, 0);//EMIO的第1位輸出0
usleep(200000); //延時(shí)
XGpioPs_WritePin(&psGpioInstancePtr, 56, 1);//EMIO的第2位輸出1
usleep(200000); //延時(shí)
XGpioPs_WritePin(&psGpioInstancePtr, 56, 0);//EMIO的第2位輸出0
usleep(200000); //延時(shí)
XGpioPs_WritePin(&psGpioInstancePtr, 57, 1);//EMIO的第3位輸出1
usleep(200000); //延時(shí)
XGpioPs_WritePin(&psGpioInstancePtr, 57, 0);//EMIO的第3位輸出0
usleep(200000); //延時(shí)
}
return 0;
}

下載到板子里,PMOD1的4個(gè)led燈交替閃爍。

3.AXI_GPIO方式

VIvado工程里,ZYNQ CPU核配置:
勾選M_AXI_GPIO 接口:

勾選復(fù)位信號(hào):

給PL的時(shí)鐘信號(hào):

加入AXI_GPIO IP,這里設(shè)置位寬為4,后面將控制4個(gè)led燈:

自動(dòng)連接后如下圖:

pIYBAF9uIWyAfeJ2AATkAQcAoX4630.png

管腳約束如下:
#GPIO PMOD1
set_property PACKAGE_PIN E15 [get_ports {gpio_sw_tri_o[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {gpio_sw_tri_o[0]}]
set_property PACKAGE_PIN D15 [get_ports {gpio_sw_tri_o[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {gpio_sw_tri_o[1]}]
set_property PACKAGE_PIN W17 [get_ports {gpio_sw_tri_o[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {gpio_sw_tri_o[2]}]
set_property PACKAGE_PIN W5 [get_ports {gpio_sw_tri_o[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {gpio_sw_tri_o[3]}]

SDk部分如下:

#include
#include "platform.h"
#include "xparameters.h"
#include "xgpio.h"
int main() {
XGpio gpio_led;
int status;
int i,x,y;

init_platform();
status = XGpio_Initialize(&gpio_led, 0);
if(status == 0){
printf("success /r/n");
}

XGpio_SetDataDirection(&gpio_led,1,0);//設(shè)置通道1為輸出
while (1){
for (i = 0; i XGpio_DiscreteWrite(&gpio_led, 1, 0x01 for(x =1000; x > 0; x-- ){
for (y = 100000; y > 0; y--);
}
}
}
cleanup_platform();
return 0;
}

可以看到,與EMIO一樣需要分配管腳,但是AXI_GPIO使用的頭文件是#include "xgpio.h",而EMIO是#include "xgpiops.h"。
下載完成后,PMOD1 的四個(gè)LED燈依次閃爍。

總結(jié):

MIO和EMIO使用PS的GPIO,,MIO固定管腳,EMIO手動(dòng)分配管腳;IP方式手動(dòng)分配管腳,綜合后需要消耗PL的邏輯資源。

編輯:hfy


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

    關(guān)注

    73

    文章

    2181

    瀏覽量

    124323
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1270

    瀏覽量

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

    關(guān)注

    0

    文章

    12

    瀏覽量

    8227
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    614

    瀏覽量

    48011
收藏 人收藏

    評(píng)論

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

    迅為RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

    迅為RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入
    的頭像 發(fā)表于 05-29 14:05 ?235次閱讀
    迅為RK3568<b class='flag-5'>開(kāi)發(fā)</b>板驅(qū)動(dòng)指南<b class='flag-5'>GPIO</b>子系統(tǒng)<b class='flag-5'>GPIO</b>子系統(tǒng)API函數(shù)的引入

    迅為RK3568驅(qū)動(dòng)指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)

    迅為電子RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)
    的頭像 發(fā)表于 05-28 15:24 ?176次閱讀
    迅為RK3568驅(qū)動(dòng)指南<b class='flag-5'>GPIO</b>子系統(tǒng) <b class='flag-5'>GPIO</b>操作函數(shù)實(shí)驗(yàn)

    基于小凌派RK2206開(kāi)發(fā)板:OpenHarmony如何使用IoT接口控制GPIO外設(shè)

    1、案例簡(jiǎn)介本案例主要是如何在小凌派-RK2206開(kāi)發(fā)板上使用IOT庫(kù)的GPIO接口,進(jìn)行GPIO編程開(kāi)發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過(guò)配置GPIO
    的頭像 發(fā)表于 04-11 15:36 ?704次閱讀
    基于小凌派RK2206<b class='flag-5'>開(kāi)發(fā)</b>板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>外設(shè)

    為什么GPIO配置總是出問(wèn)題?

    在STM32開(kāi)發(fā)中,GPIO(通用輸入輸出)配置看似簡(jiǎn)單,但在實(shí)際開(kāi)發(fā)中,很多人常常會(huì)遇到這些困惑:明明按照教程配置了GPIO,為什么LED燈就是不亮?為什么有時(shí)候按鍵無(wú)法響應(yīng),或者響
    的頭像 發(fā)表于 04-07 11:59 ?467次閱讀
    為什么<b class='flag-5'>GPIO</b>配置總是出問(wèn)題?

    GPIO使用教程 GPIO接口應(yīng)用

    交互,實(shí)現(xiàn)外部設(shè)備的控制和數(shù)據(jù)傳輸。 一、GPIO的基本概念 GPIO的全稱是General-Purpose Input/Output,即通用輸入/輸出。它是一在電子設(shè)備中常見(jiàn)的接口,允許控制和讀取
    的頭像 發(fā)表于 01-31 10:10 ?2777次閱讀

    GPIO模塊與其他外設(shè)的連接方法

    在嵌入式系統(tǒng)設(shè)計(jì)中,GPIO模塊是實(shí)現(xiàn)設(shè)備與外部世界交互的關(guān)鍵接口。它們提供了一靈活的方式來(lái)控制和監(jiān)測(cè)外部設(shè)備。 GPIO模塊的基本概念 GPIO
    的頭像 發(fā)表于 01-09 09:48 ?805次閱讀

    GPIO錯(cuò)誤排查與解決

    在嵌入式系統(tǒng)和微控制器編程中,通用輸入輸出(GPIO)是最常見(jiàn)的接口之一。然而,在使用GPIO時(shí),我們可能會(huì)遇到各種錯(cuò)誤。 1. 理解GPIO GPIO是微控制器上的一組引腳,可以被配
    的頭像 發(fā)表于 01-09 09:46 ?1939次閱讀

    ZYNQ基礎(chǔ)---AXI DMA使用

    Xilinx官方也提供有一些DMA的IP,通過(guò)調(diào)用API函數(shù)能夠更加靈活地使用DMA。 1. AXI DMA的基本接口 axi dma IP的基本結(jié)構(gòu)如下,主要分為個(gè)部分,分別是控制
    的頭像 發(fā)表于 01-06 11:13 ?1923次閱讀
    <b class='flag-5'>ZYNQ</b>基礎(chǔ)---<b class='flag-5'>AXI</b> DMA使用

    如何通過(guò)PMC_GPIO喚醒AMD Versal? Adaptive SoC Linux系統(tǒng)

    ://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842232/Zynq+UltraScale+MPSoC+Power+Management+-+Linux+Kernel 我們這里采用 VPK120 板卡作為平臺(tái),這個(gè)板
    的頭像 發(fā)表于 12-17 10:07 ?656次閱讀
    如何通過(guò)PMC_<b class='flag-5'>GPIO</b>喚醒AMD Versal? Adaptive SoC Linux系統(tǒng)

    STM32 GPIO的八工作模式

    GPIO (general purpose input output)是通用輸入輸出端口的簡(jiǎn)稱,簡(jiǎn)單來(lái)說(shuō)就是軟件可控制的引腳,STM32芯片的GPIO引腳與外部設(shè)備連接起來(lái),從而實(shí)現(xiàn)與外部通訊、控制以及數(shù)據(jù)采集的功能。
    的頭像 發(fā)表于 11-06 09:40 ?1790次閱讀
    STM32 <b class='flag-5'>GPIO</b>的八<b class='flag-5'>種</b>工作模式

    硬件設(shè)計(jì)技巧:GPIO接口的實(shí)用指南

    今天教大家一些關(guān)于硬件設(shè)計(jì)的的技巧,只要掌握好GPIO,輕松玩好硬件設(shè)計(jì)。
    的頭像 發(fā)表于 11-05 12:22 ?880次閱讀
    硬件設(shè)計(jì)技巧:<b class='flag-5'>三</b>類<b class='flag-5'>GPIO</b>接口的實(shí)用指南

    SOC GPIO操作

    支持4中斷從下面的表中需要注意到:中斷使能有兩個(gè)位bit0和bit1,所以GPIO的兩個(gè) 中斷是分別控制的。在gpio.h中已經(jīng)有宏定義?#define
    的頭像 發(fā)表于 11-01 11:06 ?423次閱讀

    gpio接口是干什么的 gpio輸入輸出模式怎么選擇

    GPIO接口的作用 GPIO(General Purpose Input/Output)接口,即通用輸入輸出接口,是一用于連接和控制各種外部設(shè)備的數(shù)字接口。它由一組引腳組成,可以通過(guò)編程的
    的頭像 發(fā)表于 10-06 16:07 ?7061次閱讀

    [XILINX] 正點(diǎn)原子ZYNQ7035/7045/7100開(kāi)發(fā)板發(fā)布、ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2!

    7000系列芯片,核心板支持Xilinx Zynq-7035、Zynq-7045和Zynq-7100三種型號(hào)。
    發(fā)表于 09-02 17:18

    STM32 GPIO模式及工作原理詳解

    圍設(shè)備(像控制led亮滅,按鍵控制,軟件模擬IIC等)直觀又簡(jiǎn)單的控制。 GPIO的8模式 ?1. 輸入模式: ??(1)上拉輸入模式 GPIO_Mode_IPU ??(2)下拉輸入模式
    的頭像 發(fā)表于 07-22 09:32 ?8212次閱讀
    STM32 <b class='flag-5'>GPIO</b>八<b class='flag-5'>種</b>模式及工作原理詳解