0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在PL设计中使用MPSoC EMIO GPIO

YCqV_FPGA_EETre 来源:赛灵思中文社区论坛 作者:付汉杰 2020-09-03 09:50 次阅读

MPSoC 为PL提供了96个GPIO,通过EMIO管脚链接到PL。

普通PL设计,一般只会用到几个GPIO管脚。可以使用Vivado IPI中的Slice IP, 从其中分出指定数量的管脚。

Slice配置界面

上图中,输入宽度是95,因为pl_reset占用率一个管脚。slice从输入中提取emio的[7:5]三位,作为输出。

Xilinx Linux 中缺省使能了GPIO驱动。对于MPSoC,检查目录/sys/class/gpio,可以看到设备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,编写了以下脚本。使用下列脚本,一条命令就能设置一个GPIO的输出值。脚本接受两个输入参数。第一个参数表示GPIO编号,MIO GPIO从0开始,EMIO GPIO从78开始。第二个参数是输出值。如果输出值是1,可以省略第二个参数。

#/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

执行记录

# ./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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 管脚
    +关注

    关注

    1

    文章

    226

    浏览量

    32021
  • MPSoC
    +关注

    关注

    0

    文章

    198

    浏览量

    24267
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66452

原文标题:【分享】在PL设计中使用MPSoC EMIO GPIO,并使用脚本设置MPSoC EMIO GPIO

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何通过PMC_GPIO唤醒AMD Versal™ Adaptive SoC Linux系统

    指导页面和 MPSoC 系统同一个 Wiki 网页。本文将通过 PMC_GPIO 作为例子来描述如何唤醒 Versal 系统。 Wiki 网页: https
    的头像 发表于 12-17 10:07 71次阅读
    如何通过PMC_<b class='flag-5'>GPIO</b>唤醒AMD Versal™ Adaptive SoC Linux系统

    GPIO内部电路的原理

    前言 笔者近日B站刷到了一个视频,使我对GPIO的I/O口内部基本结构以及工作原理有了恍然大明白的理解,现在对此做一个总结,并为大家推荐该视频Keysking 【STM32】GPIO内部电路
    的头像 发表于 11-20 09:24 270次阅读
    <b class='flag-5'>GPIO</b>内部电路的原理

    基于PYNQ和机器学习探索MPSOC笔记

    引言:《Exploring Zynq MPSoC With PYNQ and Machine Learning Applications》是当年Zynq Book(ZYNQ-7000)的升级版本,
    的头像 发表于 11-16 11:32 264次阅读
    基于PYNQ和机器学习探索<b class='flag-5'>MPSOC</b>笔记

    米尔电子MPSOC实现12G SDI视频采集H.265压缩SGMII万兆以太网推流

    用户的观看体验。 网络传输协议选择:根据应用场景选择合适的传输协议。对于实时性要求较高的场景,可选择UDP传输,而对于数据可靠性要求较高的场景,则推荐使用TCP协议。 3. MPSoC与VCU架构
    发表于 11-01 16:56

    SOC GPIO操作

    sapphire Soc提供了两个GPIO组每组有4个GPIO,定义为GPIO[3:0],其中只有GPIO[1:0]可以支持中断。中断程序
    的头像 发表于 11-01 11:06 131次阅读

    多路复用模拟输入应用中使用ADS8411

    电子发烧友网站提供《多路复用模拟输入应用中使用ADS8411.pdf》资料免费下载
    发表于 10-22 09:32 0次下载
    <b class='flag-5'>在</b>多路复用模拟输入应用<b class='flag-5'>中使</b>用ADS8411

    米尔电子MPSOC实现12G SDI视频采集H.265压缩SGMII万兆以太网推流

    协议。 3.MPSoC与VCU架构4K UHD音视频广播领域的优势 高性能与低功耗的结合 :Zynq UltraScale+ MPSoC采用了16nm FinFET工艺,集成了多核处理器和可编程逻辑
    发表于 10-14 17:42

    PICO-IMX8PL和SRG-IMX8PL:共创您的物联网集成网关

    应对严峻环境的物联网网关的能力。同时,PICO-IMX8PL提供了PICO-ITX小型板上实现低成本、高效率方案所需的所有连接接口。PICO-IMX8PL和SRG
    的头像 发表于 10-12 08:01 431次阅读
    PICO-IMX8<b class='flag-5'>PL</b>和SRG-IMX8<b class='flag-5'>PL</b>:共创您的物联网集成网关

    反向电流应用中使用比较器

    电子发烧友网站提供《反向电流应用中使用比较器.pdf》资料免费下载
    发表于 09-19 12:50 0次下载
    <b class='flag-5'>在</b>反向电流应用<b class='flag-5'>中使</b>用比较器

    设计中使用MOSFET安全工作区曲线

    电子发烧友网站提供《设计中使用MOSFET安全工作区曲线.pdf》资料免费下载
    发表于 09-07 10:55 1次下载
    <b class='flag-5'>在</b>设计<b class='flag-5'>中使</b>用MOSFET安全工作区曲线

    设计中使用MOSFET瞬态热阻抗曲线

    电子发烧友网站提供《设计中使用MOSFET瞬态热阻抗曲线.pdf》资料免费下载
    发表于 08-28 09:21 17次下载
    <b class='flag-5'>在</b>设计<b class='flag-5'>中使</b>用MOSFET瞬态热阻抗曲线

    复旦微PS+PL异构多核开发案例分享,基于FMQL20SM国产处理器平台

    机与评估板的调试串口相连接,将评估板的RS232串口连接至PC机的USB接口,硬件连接如下图所示。 图 3 参考产品资料,先加载设备树文件和PL端可执行文件,然后PS端串口终端执行如下命令,通过
    发表于 08-22 14:04

    FM20S用户手册-PS + PL异构多核案例开发手册

    UARTO作为PS端调试串口。 CON10通过RS232收发器SIT3232EEUE引出PL端串口(EMIO UART1),TX和RX引脚 分别为Y12、Y3,电平为3.3V. 管脚约束可查看案例&
    发表于 07-25 16:14

    什么是GPIOGPIO组成原理

    GPIO全拼叫General Purpose Input Output(通用输入输出)简称IO口也叫总线扩展器,GPIO口是由引脚,功能寄存器组成,不同的架构中的GPIO封装不同,所使用的引脚数与寄存器数不同,具体可以参考芯片手
    发表于 04-28 12:30 6875次阅读
    什么是<b class='flag-5'>GPIO</b>?<b class='flag-5'>GPIO</b>组成原理

    MCU启动失败竟因GPIO先上电?

    由于 RT1060 上 GPIO_AD_Bx 和 GPIO_Bx 两组 PAD 供电均来自于 NVCC_GPIO,当其中任何一个 GPIO 有电压时,均可能会漏电到 NVCC_
    发表于 03-28 10:32 755次阅读
    MCU启动失败竟因<b class='flag-5'>GPIO</b>先上电?