哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

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

FPGA學(xué)習(xí)交流 ? 2018-08-07 10:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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



由圖中可見要選中打開GPIO,其下自動(dòng)顯示可用于GPIO的MIO(當(dāng)MIO作為其他功能時(shí)就不能作為GPIO使用了),其中MIO 7、MIO 8只能作為輸出使用,因?yàn)樗鼈冇糜赩MODE管腳

軟件部分如下
#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方式實(shí)現(xiàn)GPIO
vivado中zynq設(shè)置如下圖
113329qq6qz904j5hv54w5.png



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



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

不同于MIO,這里三個(gè)IO管腳(一個(gè)輸入,一個(gè)輸出和一個(gè)輸出使能在自動(dòng)生成的頂層模塊中合并為一個(gè)IO)要綁定到芯片對(duì)應(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號(hào)是從54開始的3個(gè)。

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



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



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


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



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

最后vivado中連接如下圖


與EMIO類似需要將頂層三個(gè)GPIO管腳要綁定到芯片對(duì)應(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;
}

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

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


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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    ATE系統(tǒng)中這三種測(cè)量卡的架構(gòu)和功能

    測(cè)試儀行業(yè)面臨的一個(gè)挑戰(zhàn)是,如何在不顯著增加測(cè)試儀時(shí)間、尺寸或成本的情況下,滿足對(duì)大量測(cè)試通道的需求。盡管半導(dǎo)體測(cè)試儀(也稱為自動(dòng)測(cè)試器件(ATE))種類繁多,但在大多數(shù)測(cè)試儀都包含三種主要卡:電壓
    的頭像 發(fā)表于 04-09 15:12 ?104次閱讀
    ATE系統(tǒng)中這<b class='flag-5'>三種</b>測(cè)量卡的架構(gòu)和功能

    AI技術(shù)時(shí)代三種全新工作模式如何實(shí)現(xiàn)

    AI技術(shù)正在重塑我們的工作。前沿企業(yè)以“人類主導(dǎo)、智能體運(yùn)營(yíng)”為核心,形成三種AI技術(shù)的融合模式:人類+AI技術(shù)助手、人機(jī)混合、人類主導(dǎo)智能體運(yùn)營(yíng),這些模式不僅提升效率,更在重構(gòu)協(xié)作方式,幫助組織以更低的阻力邁向成功。
    的頭像 發(fā)表于 01-29 15:08 ?712次閱讀

    C語(yǔ)言中實(shí)現(xiàn)函數(shù)宏的三種方式

    在宏的第一個(gè)分號(hào)后便結(jié)束。即 a = b 和 b = tmp 均不受控制語(yǔ)句所作用。 因此,在工程中,一般使用三種方式來對(duì)函數(shù)宏進(jìn)行封裝,分別為 {}、do{...}while(0
    發(fā)表于 12-29 07:34

    請(qǐng)問CW32芯片的三種工作模式是什么?

    CW32芯片的三種工作模式是什么?
    發(fā)表于 12-26 06:48

    ZYNQ PS與PL數(shù)據(jù)交互方式

    ZYNQ SoC 的 PS (Processing System) 和 PL (Programmable Logic) 之間的數(shù)據(jù)交互是系統(tǒng)設(shè)計(jì)的核心。
    的頭像 發(fā)表于 10-15 10:33 ?1299次閱讀
    <b class='flag-5'>ZYNQ</b> PS與PL數(shù)據(jù)交互<b class='flag-5'>方式</b>

    伺服電機(jī)的三種制動(dòng)方式有什么區(qū)別?

    伺服電機(jī)作為自動(dòng)化控制系統(tǒng)中執(zhí)行元件的核心部件,其制動(dòng)性能直接影響設(shè)備的定位精度和安全可靠性。目前主流的伺服電機(jī)制動(dòng)方式包括動(dòng)態(tài)制動(dòng)、再生制動(dòng)和電磁機(jī)械制動(dòng)三種,它們?cè)谥苿?dòng)原理、應(yīng)用場(chǎng)景及技術(shù)特點(diǎn)上
    的頭像 發(fā)表于 09-19 18:26 ?2121次閱讀
    伺服電機(jī)的<b class='flag-5'>三種</b>制動(dòng)<b class='flag-5'>方式</b>有什么區(qū)別?

    TC377配置SMU FSP時(shí),如何配置頻率參數(shù);三種模式有何區(qū)別,配置上有何區(qū)別?

    TC377配置SMU FSP時(shí),如何配置頻率參數(shù);三種模式有何區(qū)別,配置上有何區(qū)別?
    發(fā)表于 08-08 07:48

    三種SPWM波形生成算法的分析與實(shí)現(xiàn)

    摘要:變頻技術(shù)作為現(xiàn)代電力電子的核心技術(shù),集現(xiàn)代電子、信息和智能技術(shù)于一體。而SPW(正弦波脈寬調(diào)制)波的產(chǎn)生和控制則是變頻技術(shù)的核心之一。本文對(duì)SPI波形生成的三種算法-對(duì)稱規(guī)則采樣法、不對(duì)稱規(guī)則
    發(fā)表于 07-31 13:34

    CAN總線電容過大?三種解決方案來了

    在新能源汽車路試中,CAN總線傳輸異常是一個(gè)常見問題。本期我們將探討由于總線電容過大導(dǎo)致的下降沿過緩問題,并介紹三種有效的解決方案。CAN總線下降沿過緩問題新能源路試工程師在分析CAN總線波形
    的頭像 發(fā)表于 07-22 11:36 ?825次閱讀
    CAN總線電容過大?<b class='flag-5'>三種</b>解決方案來了

    MEMS中的三種測(cè)溫方式

    在集成MEMS芯片的環(huán)境溫度測(cè)量領(lǐng)域,熱阻、熱電堆和PN結(jié)原理是三種主流技術(shù)。熱阻是利用熱敏電阻,如金屬鉑或注入硅的溫度電阻系數(shù)恒定,即電阻隨溫度線性變化的特性測(cè)溫,電阻變化直接對(duì)應(yīng)絕對(duì)溫度,需恒流源供電。
    的頭像 發(fā)表于 07-16 13:58 ?1865次閱讀
    MEMS中的<b class='flag-5'>三種</b>測(cè)溫<b class='flag-5'>方式</b>

    1553B總線常見三種組網(wǎng)方式

    1553B總線作為航空電子系統(tǒng)中的關(guān)鍵通信協(xié)議,其組網(wǎng)方式直接影響系統(tǒng)的可靠性和實(shí)時(shí)性。本文將深入解析1553B總線的三種典型組網(wǎng)結(jié)構(gòu):?jiǎn)慰偩€結(jié)構(gòu)、雙冗余總線和多總線分層架構(gòu),并結(jié)合實(shí)際應(yīng)用場(chǎng)景分析
    的頭像 發(fā)表于 06-21 17:39 ?2379次閱讀
    1553B總線常見<b class='flag-5'>三種</b>組網(wǎng)<b class='flag-5'>方式</b>

    開關(guān)電源三種控制模式:PWM/PFM/PSM

    摘要 本文詳細(xì)介紹了開關(guān)電源的三種主要調(diào)制方式:PWM(脈沖寬度調(diào)制)、PFM(脈沖頻率調(diào)制)和PSM(脈沖跨周期調(diào)制)。PWM通過調(diào)整脈沖寬度保持恒定頻率,適用于重負(fù)載,但輕負(fù)載效率低。PFM則在
    發(fā)表于 06-09 16:11

    HarmonyOS基礎(chǔ)組件:Button三種類型的使用

    中的Button相較于Android原生來說,功能比較豐富,擴(kuò)展性高,減少了開發(fā)者的代碼數(shù)量,簡(jiǎn)化了使用方式。不僅可以自定義圓角還支持三種樣式。 常用屬性 名稱 參數(shù)類型 描述 type
    的頭像 發(fā)表于 06-09 15:48 ?2693次閱讀
    HarmonyOS基礎(chǔ)組件:Button<b class='flag-5'>三種</b>類型的使用

    介紹三種常見的MySQL高可用方案

    在生產(chǎn)環(huán)境中,為了確保數(shù)據(jù)庫(kù)系統(tǒng)的連續(xù)可用性、降低故障恢復(fù)時(shí)間以及實(shí)現(xiàn)業(yè)務(wù)的無縫切換,高可用(High Availability, HA)方案至關(guān)重要。本文將詳細(xì)介紹三種常見的 MySQL 高可用
    的頭像 發(fā)表于 05-28 17:16 ?1409次閱讀

    解鎖Air780EPM:NGPIO操控LED的實(shí)戰(zhàn)技巧!

    在物聯(lián)網(wǎng)項(xiàng)目中,靈活使用Air780EPM的GPIO控制LED至關(guān)重要。本文將展示實(shí)現(xiàn)方式,涵蓋硬件配置與軟件編程,滿足不同場(chǎng)景需求。 今天特別分享基于Air780EPM的GPIO控制
    的頭像 發(fā)表于 05-28 16:56 ?1039次閱讀
    解鎖Air780EPM:N<b class='flag-5'>種</b><b class='flag-5'>GPIO</b>操控LED的實(shí)戰(zhàn)技巧!
    邹平县| 浏阳市| 新宁县| 阳东县| 罗山县| 阿拉善右旗| 新余市| 曲阳县| 永宁县| 即墨市| 新和县| 皋兰县| 兴化市| 鹤庆县| 翼城县| 合川市| 新绛县| 会同县| 三江| 安阳市| 和政县| 宝丰县| 阿图什市| 南宁市| 平凉市| 江山市| 揭阳市| 格尔木市| 龙江县| 浦县| 陵川县| 文成县| 胶南市| 栾城县| 奎屯市| 绥中县| 湄潭县| 河曲县| 溧水县| 泰宁县| 即墨市|