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

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

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

在PL設(shè)計中使用MPSoC EMIO GPIO

YCqV_FPGA_EETre ? 來源:賽靈思中文社區(qū)論壇 ? 作者:付漢杰 ? 2020-09-03 09:50 ? 次閱讀

MPSoC 為PL提供了96個GPIO,通過EMIO管腳鏈接到PL。

普通PL設(shè)計,一般只會用到幾個GPIO管腳。可以使用Vivado IPI中的Slice IP, 從其中分出指定數(shù)量的管腳。

Slice配置界面

上圖中,輸入寬度是95,因為pl_reset占用率一個管腳。slice從輸入中提取emio的[7:5]三位,作為輸出。

Xilinx Linux 中缺省使能了GPIO驅(qū)動。對于MPSoC,檢查目錄/sys/class/gpio,可以看到設(shè)備gpiochip338。

# ls -l /sys/class/gpio total 0 export gpiochip306 -> ../../devices/platform/amba/ff020000.i2c/i2c-0/0-0021/gpio/gpiochip306 gpiochip322 ->../../devices/platform/amba/ff020000.i2c/i2c-0/0-0020/gpio/gpiochip322 gpiochip338 -> ../../devices/platform/amba/ff0a0000.gpio/gpio/gpiochip338 unexport # ls /sys/class/gpio/gpiochip338/ -l total 0 base device -> ../../../ff0a0000.gpio label ngpio power subsystem -> ../../../../../../class/gpio uevent

Linux GPIO Driver下的GPIO使用,可以參考Linux GPIO Driver;GPIO User Space App。

從上述文章可以看到,使用GPIO不簡單。

為了簡化使用GPIO,編寫了以下腳本。使用下列腳本,一條命令就能設(shè)置一個GPIO的輸出值。腳本接受兩個輸入參數(shù)。第一個參數(shù)表示GPIO編號,MIO GPIO從0開始,EMIO GPIO從78開始。第二個參數(shù)是輸出值。如果輸出值是1,可以省略第二個參數(shù)。

#/bin/bash function gpio_output_func() { #echo "No.1 parameter: $1" #echo "No.2 parameter: $2" # MPSoC GPIO number. gpio_num=$[338+$1] # MPSoC EMIO GPIO number. # gpio_num=$[338+78+$1] echo "Set GPIO number: $gpio_num to value: $2" if [ ! -f /sys/class/gpio/gpio$gpio_num/direction ]; then # Export a GPIO pin echo $gpio_num > /sys/class/gpio/export fi # Read the direction and value from the GPIO pin */ # ls -l /sys/class/gpio/gpio$gpio_num/ gpio_direction=`cat /sys/class/gpio/gpio$gpio_num/direction` gpio_value=`cat /sys/class/gpio/gpio$gpio_num/value` echo -e "GPIO number: $gpio_num previous direction: $gpio_direction, previous value: $gpio_value" # Set the direction to an output and write a value 1 to GPIO pin */ echo out > /sys/class/gpio/gpio$gpio_num/direction echo $2 > /sys/class/gpio/gpio$gpio_num/value gpio_direction=`cat /sys/class/gpio/gpio$gpio_num/direction` gpio_value=`cat /sys/class/gpio/gpio$gpio_num/value` echo -e "GPIO number: $gpio_num current direction: $gpio_direction, current value: $gpio_value" } # Check GPIO chip gpio_chip=`cat /sys/class/gpio/gpiochip338/label` gpio_base=`cat /sys/class/gpio/gpiochip338/base` gpio_number=`cat /sys/class/gpio/gpiochip338/ngpio` echo "MPSoC GPIO information: chip: $gpio_chip, base: $gpio_base, number: $gpio_number." # cat /sys/class/gpio/gpiochip338/label # cat /sys/class/gpio/gpiochip338/base # cat /sys/class/gpio/gpiochip338/ngpio # The above line indicates that gpio 0th pin starts from 338 and ends at 511 (GPIO has total 174 pins for ZynqMP) if [ "$2" = "" ]; then gpio_output_func $1 1 else gpio_output_func $1 $2 fi

執(zhí)行記錄

# ./gpio_single_output.sh 81 MPSoC GPIO information: chip: zynqmp_gpio, base: 338, number: 174. Set GPIO number: 419 to value: 1 GPIO number: 419 previous direction: out, previous value: 0 GPIO number: 419 current direction: out, current value: 1 # ./gpio_single_output.sh 81 0 MPSoC GPIO information: chip: zynqmp_gpio, base: 338, number: 174. Set GPIO number: 419 to value: 0 GPIO number: 419 previous direction: out, previous value: 1 GPIO number: 419 current direction: out, current value: 0

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

    關(guān)注

    1

    文章

    223

    瀏覽量

    31859
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    195

    瀏覽量

    24191
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    797

    瀏覽量

    65855

原文標(biāo)題:【分享】在PL設(shè)計中使用MPSoC EMIO GPIO,并使用腳本設(shè)置MPSoC EMIO GPIO

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    反向電流應(yīng)用中使用比較器

    電子發(fā)燒友網(wǎng)站提供《反向電流應(yīng)用中使用比較器.pdf》資料免費下載
    發(fā)表于 09-19 12:50 ?0次下載
    <b class='flag-5'>在</b>反向電流應(yīng)用<b class='flag-5'>中使</b>用比較器

    反相降壓/升壓拓?fù)?b class='flag-5'>中使用 TPS62120應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《反相降壓/升壓拓?fù)?b class='flag-5'>中使用 TPS62120應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 09-10 10:27 ?0次下載
    <b class='flag-5'>在</b>反相降壓/升壓拓?fù)?b class='flag-5'>中使</b>用 TPS62120應(yīng)用說明

    反相降壓/升壓拓?fù)?b class='flag-5'>中使用 TPS62125應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《反相降壓/升壓拓?fù)?b class='flag-5'>中使用 TPS62125應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 09-10 10:25 ?0次下載
    <b class='flag-5'>在</b>反相降壓/升壓拓?fù)?b class='flag-5'>中使</b>用 TPS62125應(yīng)用說明

    設(shè)計中使用MOSFET安全工作區(qū)曲線

    電子發(fā)燒友網(wǎng)站提供《設(shè)計中使用MOSFET安全工作區(qū)曲線.pdf》資料免費下載
    發(fā)表于 09-07 10:55 ?0次下載
    <b class='flag-5'>在</b>設(shè)計<b class='flag-5'>中使</b>用MOSFET安全工作區(qū)曲線

    高壓應(yīng)用中使用電壓監(jiān)控器

    電子發(fā)燒友網(wǎng)站提供《高壓應(yīng)用中使用電壓監(jiān)控器.pdf》資料免費下載
    發(fā)表于 09-02 10:13 ?0次下載
    <b class='flag-5'>在</b>高壓應(yīng)用<b class='flag-5'>中使</b>用電壓監(jiān)控器

    設(shè)計中使用MOSFET瞬態(tài)熱阻抗曲線

    電子發(fā)燒友網(wǎng)站提供《設(shè)計中使用MOSFET瞬態(tài)熱阻抗曲線.pdf》資料免費下載
    發(fā)表于 08-28 09:21 ?15次下載
    <b class='flag-5'>在</b>設(shè)計<b class='flag-5'>中使</b>用MOSFET瞬態(tài)熱阻抗曲線

    復(fù)旦微PS+PL異構(gòu)多核開發(fā)案例分享,基于FMQL20SM國產(chǎn)處理器平臺

    機與評估板的調(diào)試串口相連接,將評估板的RS232串口連接至PC機的USB接口,硬件連接如下圖所示。 圖 3 參考產(chǎn)品資料,先加載設(shè)備樹文件和PL端可執(zhí)行文件,然后PS端串口終端執(zhí)行如下命令,通過
    發(fā)表于 08-22 14:04

    FM20S用戶手冊-PS + PL異構(gòu)多核案例開發(fā)手冊

    UARTO作為PS端調(diào)試串口。 CON10通過RS232收發(fā)器SIT3232EEUE引出PL端串口(EMIO UART1),TX和RX引腳 分別為Y12、Y3,電平為3.3V. 管腳約束可查看案例&
    發(fā)表于 07-25 16:14

    什么是GPIO?GPIO組成原理

    GPIO全拼叫General Purpose Input Output(通用輸入輸出)簡稱IO口也叫總線擴展器,GPIO口是由引腳,功能寄存器組成,不同的架構(gòu)中的GPIO封裝不同,所使用的引腳數(shù)與寄存器數(shù)不同,具體可以參考芯片手
    發(fā)表于 04-28 12:30 ?5316次閱讀
    什么是<b class='flag-5'>GPIO</b>?<b class='flag-5'>GPIO</b>組成原理

    MCU啟動失敗竟因GPIO先上電?

    由于 RT1060 上 GPIO_AD_Bx 和 GPIO_Bx 兩組 PAD 供電均來自于 NVCC_GPIO,當(dāng)其中任何一個 GPIO 有電壓時,均可能會漏電到 NVCC_
    發(fā)表于 03-28 10:32 ?543次閱讀
    MCU啟動失敗竟因<b class='flag-5'>GPIO</b>先上電?

    ZYNQ的ARM和FPGA數(shù)據(jù)交互——AXI交互最重要的細(xì)節(jié)

    0->1->0)使能信號,GPIO[0]為0是寫狀態(tài),為1是讀狀態(tài)。Vivado波形中,可以看到數(shù)據(jù)以遞增的形式寫入。 PS端讀取BRAM中的數(shù)據(jù), 可以看到數(shù)據(jù)是
    發(fā)表于 11-03 10:51

    STM32使用GPIO配置的5種方式

    STM32使用GPIO配置的5種方式 STM32是常見的一種微控制器,其GPIO模塊可以實現(xiàn)對外部設(shè)備的控制和數(shù)據(jù)傳輸,包括數(shù)字I/O口、模擬輸入口和輸出口等。STM32中,GPIO
    的頭像 發(fā)表于 10-26 17:42 ?1232次閱讀

    STM32 GPIO的基本結(jié)構(gòu)

    STM32中,所有GPIO都是掛在APB2這個總線上面的;
    的頭像 發(fā)表于 10-24 09:24 ?923次閱讀
    STM32 <b class='flag-5'>GPIO</b>的基本結(jié)構(gòu)

    armbian、 hdmi、 zynq、 mpsoc、 rk3399的一一解釋

    armbian、 hdmi、 zynq、 mpsoc、 rk3399
    的頭像 發(fā)表于 10-13 18:11 ?1666次閱讀

    gpio子系統(tǒng)API詳解

    _request4、控制gpiogpio_direction_input、gpio_direction_output……)5、gpio_free 1)of_find_compatib
    的頭像 發(fā)表于 09-27 17:17 ?636次閱讀
    <b class='flag-5'>gpio</b>子系統(tǒng)API詳解