GPIO外设一般用于控制一些简单的外设,如LED、按键和蜂鸣器等,GPIO可以通过MIO连接到PS端的引脚,也可以通过EMIO连接到PL。 ZYNQ系列芯片一般有54个MIO,位于bank0(3.3V,32个MIO)和bank1(1.8V,22个MIO),这些IO与PS直接相连,不需要添加引脚约束。 bank2和bank3连接到EMIO,用于扩展的MIO,即EMIO。 根据原理图(米联客7z030)可以看到MIO7连接一个LED,我们对此IO进行控制。 ? 工程设计: 创建vivaodo工程,创建block design,由于只使用一个MIO7上的LED进行测试,可添加一个uart窗口打印,配置DDR,由于未使用PL逻辑,可以不生成bitstream,创建好项目 *ConfigPtr; print("MIO Test!
在编写程序之前,先来了解GPIO的BANK分布,在UG585文档GPIO一章中可以看到GPIO是有4个BANK,注意与MIO的BANK区分。 BANK0控制32个信号,BANK1控制22个信号,总共是MIO的54个引脚,BANK2和BANK3共能控制64个PL端引脚,每一组都有三个信号,输入EMIOGPIOI,输出EMIOGPIOO,输出使能 XGpioPs_Config *GPIO_CONFIG ; int Status ; //通用手法,查找GPIO列表 GPIO_CONFIG= XGpioPs_LookupConfig(MIO = XST_SUCCESS) { return XST_FAILURE ; } //设置MIO的PIN引脚方向 XGpioPs_SetDirectionPin(&GPIO_PTR ,0, GPIO_OUTPUT) ; XGpioPs_SetDirectionPin(&GPIO_PTR,13, GPIO_OUTPUT) ; //使能MIO的PIN引脚输出 XGpioPs_SetOutputEnablePin
设置按键和LED方向à设置产生中断方式à设置中断à打开中断控制器à打开中断异常à打开GPIO中断à判断KEY_FLAG值,是1,写LED GPIO_CONFIG =XGpioPs_LookupConfig(MIO ; XGpioPs_IntrEnablePin(&GPIO_PTR,PS_KEY2) ; //设置中断 Status= IntrInitFuntion(&INTCInst, MIO
目录 原理框图 Vivado中添加&配置Zynq UltraScale+ MPSoc IP UART设置(仅用于调试,非必需) MIO、EMIO设置 DDR配置 执行Generate Output Wrapper 执行File -> Export ->Export Hardware 执行Launch SDK 新建FSBL工程 新建Hello World工程 ---- 原理框图 本文用于点亮PS MIO52 Vivado中添加&配置Zynq UltraScale+ MPSoc IP UART设置(仅用于调试,非必需) MIO、EMIO设置 EMIO=1表示只选用1个EMIO,它的编号是78,通过pinL14 MIO52用于点D1灯。 执行File -> Export ->Export Hardware 因为MIO、EMIO涉及到PS、PL的操作,因此需要执行综合和实现,并约束引脚,如下图: 依次执行Generate Bitstream
ZYNQ从放弃到入门(一)MIO 系列文章开篇~ 卷起来 这篇博文特别关注 Zynq SoC 的多用途 IO (MIO, Multipurpose IO) 模块。 MIO 还包含确定 Zynq SoC 如何启动的配置设置。MIO 连接到 Zynq SoC 的 PS(处理器系统)端。 使用 Vivado 设计流程,可以通过双击框图中的处理器来分配 MIO 中的功能,这会打开重新定制 IP 窗口。定义 MIO 有两个选项。 第二个选项是 Zynq 处理系统屏幕中的“MIO 配置”选项卡,如下所示,它会显示分配给 MIO 的接口列表。我们还可以在此视图中分配 EMIO 引脚,稍后我们将解决这个问题。 MIO 分为两个电压组: MIO0 引脚 0 到 15 MIO1 引脚 16 至 53 Bank 0 包括配置输入引脚,在上电后对其进行采样。这些模式引脚共享器件 PS 侧的多用途 I/O 引脚。
Zynq-7000和MPSoC有很多MIO管脚。如果外设有中断,也可以通过MIO驱动。 interrupt-cells = <2>; interrupt-controller; }; 外设使用GPIO中断控制器 外设的设备树里,添加下列行,声明gpio0为自己的中断控制器,并声明对应的MIO touchscreen@0 { interrupt-parent = <&gpio0>; interrupts = <52 2>; /* MIO 52, falling
Zynq-7000 ARM端MIO的使用 作者:OpenSLee 1 背景知识 Xilinx Zynq-7000 芯片的PS端MIO(multiuse I/O)所在位置如下图红色框所示。 MIO(0:15)在bank0上,MIO(16:53)在bank1上。他们不需要管脚约束,既可以当做PS 端普通的IO也可以用做PS端SPI、I2C、CAN等总线。 ? 本节将使用MIO的GPIO功能实现LED流水灯。 2 MIO流水灯实验 对于工程的创建在此不再赘述。 可参考《Zynq-7000 ARM端helloworld实验》 1) ZYNQ7 Processing System GPIO的设置 点击MIO Configuration>>选中GPIO MIO如下图所示 (&psGpioInstancePtr, Led0, 1);//MIO的第0位输出1 XGpioPs_WritePin(&psGpioInstancePtr, Led1, 0);//MIO的第13位输出
system_shutdown 用于关机、重启、登出系统的 Rust 库,详情见 GitHub Mio 0.7-alpha.1 Mio 是底层级的 I/O 可移植抽象,为 Tokio 和其他的 Rust 对比 0.6 版本,0.7 简化了 API 以让 Mio 的实践和使用更加简便。
mio-modal-normal':'mio-modal-scale',show?'mio-modal-show':'']"> <view v-if="! <button class="mio-modal-btn" :class="['mio-'+(item.type || 'primary')+(item.plain?' mio-btn-width':'',button.length>2?'mio-mbtm':'', shape=='circle'?' mio-circle-btn':'']" :hover-class="'mio-'+(item.plain?' important; } .mio-primary { background: #5677fc; color: #fff; } .mio-primary-hover
view:last-child::after { border-right: 0; } .mio-subsection view.mio-active { mio-toptips' :class="['mio-'+type,show?' mio-top-show':'']"> {{msg}} </view> </view> <view v-else> <view class='<em>mio</em>-tips-class <em>mio</em>-centertips':'mio-bottomtips',show?' mio-toast-show':'']"> <view class="<em>mio</em>-tips-content" :class="['<em>mio</em>-'+type]"> {{msg}}
BANK编号 类型 引脚编号 BANK0 MIO MIO0~25 BANK1 MIO MIO26~51 BANK2 MIO MIO52~77 BANK3 EMIO MIO78~109 BANK4 EMIO MIO110~141 BANK5 EMIO MIO142~173 比如在Vivado中: 当我们在Vivado中配置EMIO的时候,也并没有指定其编号,只是指定了需要的EMIO的数目,当在SDK中编程使用时 BANK编号 类型 引脚编号 BANK0 MIO MIO0~31 BANK1 MIO MIO32~53 BANK2 EMIO MIO54~85 BANK3 EMIO MIO86~117 当我们在vivado
of Alibaba is 553789 mio USD.' is 553789 mio USD.' mio USD.' ---- 我们来看看 f-string,怎么出错了??? mio USD.' mio USD.'
MIO和EMIO方式是使用PS部分的GPIO模块来实现GPIO功能的,支持54个MIO(可输出三态)、64个输入和128个输出(64个输出和64个输出使能)EMIO,而IP方式是在PL部分实现 GPIO 一、MIO方式实现GPIO vivado中zynq设置如下图: ? 由图中可见要选中打开GPIO,其下自动显示可用于GPIO的MIO(当MIO作为其他功能时就不能作为GPIO使用了),其中MIO 7、MIO 8只能作为输出使用,因为它们用于VMODE管脚。 图中可知GPIO中MIO和EMIO都不选择,但要打开M_AXI_GP接口(这里选择M_AXI_GP0)和复位管脚,如下图: ? 四、总结 MIO和EMIO方式使用PS部分的GPIO模块,其中MIO方式不占用PL部分资源,其输出管脚只能为固定的54个(而且要在未被其它外设使用的情况下),EMIO方式会占用PL的管脚资源,其管脚可在
MPSoC既可以使用MIO管脚、也可以使用PS_MODE(BOOT_PIN)管脚来作为USB Phy的复位信号。 3.1. 使用MIO管脚作为USB Phy复位信号 MPSoC有两个USB控制器。 使用MIO管脚作为USB Phy复位信号时,可以两个USB Phy共用一个MIO(Shared MIO pin);也可以每个USB Phy使用一个MIO(Separate MIO pin)。 在Vivado里,配置对应的MIO作为对应的USB Phy复位信号。Vivado导出HDF/XSA文件时,会导出这些信息。 同时,在device tree里,添加下列字段。 使用PS_MODE管脚作为USB Phy复位信号 如果使用PS_MODE管脚(BOOT_PIN),则可以节约MIO管脚;在device tree里,也不用添加参数。 客户的单板,可以自由选择PS_MODE和MIO作为外部USB Phy的复位信号。 5. 输出模式 PS_MODE1是totem-pole驱动,不是open-collector驱动。 6.
= 0; //MIO0_LED int MIO_Led1 = 13; //MIO13_LED int MIO_Key0 = 50; //MIO0_LED int MIO_Key1 = 51; , MIO_Led0,Pin_out);//配置MIO输出方向 XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, MIO_Led0,1);//配置MIO的第 (&psGpioInstancePtr, MIO_Led1,1);//配置MIO的第0位输出 XGpioPs_SetDirectionPin(&psGpioInstancePtr, MIO_Key0 ,Pin_in);//配置MIO输出方向 XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, MIO_Key0,1);//配置MIO的第0位输出 XGpioPs_SetDirectionPin (&psGpioInstancePtr, MIO_Key1,Pin_in);//配置MIO输出方向 XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, MIO_Key1,1
在ZYNQ7000系列PS中除了上面提到的MIO和EMIO之外,还包括AXI_GPIO。 这三者关系如下: 其中MIO和EMIO是直接挂在PS上的GPIO。 我们先看一下MIO和EMIO:下图EMIO和MIO的结构。其中MIO分布在BANK0,BANK1,而EMIO则分布在BANK2、BANK3。 ? 其次、由下图可以看出MIO共占54bit,而EMIO占64bit。其中MIO占用IO号为0-53。而EMIO占用IO号为54-117。 ? ? 再者、无论是EMIO还是MIO都属于PS上的IO,直接由PS操作。 关于EMIO: 从 PS 出来,有几种连接可以经由 PL 到外部接口上,这被称作扩展的 MIO (Extended MIO) ,即 EMIO。
代码已上传至github github代码地址:https://github.com/Miofly/mio.git <! -8"> <title>Title</title> <link rel="stylesheet" type="text/css" href="http://192.168.3.16:8888/<em>mio</em> /src/html/index.css"/> <script type="text/javascript" src="http://192.168.3.16:8888/<em>mio</em>/src/html/js /common/vue.js"></script> <script type="text/javascript" src="http://192.168.3.16:8888/<em>mio</em>/src/html common/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="http://192.168.3.16:8888/<em>mio</em>
、MIO13端口,并且电源是3.3v 2.5、从I/O分配看,MIO12、MIO13是串口1,在MIO12、MIO13引脚对应串口上单击,会看见该模块变为绿色,即代表分配成功 关于BANK0、BANK1 -MIO27 电压是1.8v 2、配置PHY 寄存器配置接口,选择 MDIO 并配置到 MIO52-MIO53 2.8、配置 USB0 到 MIO28-MIO39 2.9、ZYNQ还可以SD 卡启动 查看底板原理图,选择 SD 0,配置到 MIO40-MIO45,选择Card Detection MIO0,用于检测 SD 卡的插入。 1、配置SD0 2、选择Card Detection MIO0,用于检测 SD 卡的插入 3.0、控制剩余未分配的 MIO,用作 GPIO ,打开GPIO MIO, PS 便可以配置 1、双击GPIO MIO当出现打钩的提示时,软件会自动把我们未使用到的IO分配为GPIO 2、到这里引脚分配全部完成,如果以后做实验需要配置其他外设,可以参考这个文章,作相应的修改即可 3.1、MIO 配置 修改 Enet0
代码已上传至github github代码地址:https://github.com/Miofly/mio.git <! utf-8"> <title>Title</title> <link rel="stylesheet" type="text/css" href="http://localhost:8888/<em>mio</em> /src/html/index.css"/> <script type="text/javascript" src="http://localhost:8888/<em>mio</em>/src/html/js/common /vue.js"></script> <script type="text/javascript" src="http://localhost:8888/<em>mio</em>/src/html/js/common /jquery-1.7.2.min.js"></script> <script type="text/javascript" src="http://localhost:8888/<em>mio</em>/src/html
Mio 的诞生: 盛大 AI 对「交互智能」的系统性解答 为了迎接这一行业共同的挑战,盛大 AI 东京研究院正式推出了 Mio(Multimodal Interactive Omni-Avatar)—— Mio 的诞生标志着一个分水岭时刻,其设计理念是将数字人从一个被动执行指令的 “木偶”,转变为一个能够自主思考、感知并与世界互动的智能伙伴。 在严谨的测试中,Mio 的整体交互智能分数(IIS)达到了 76.0,较之前的最优技术水平提升了整整 8.4 分,为行业树立了新的性能标杆。 图 6 Mio (红色) 在认知共鸣、面部同步、肢体流畅度等各项指标上全面超越现有最优技术 (蓝色),IIS 总分达到 76.0。 为了推动这一领域的共同进步,盛大 AI 东京研究院已将 Mio 项目的完整技术报告、预训练模型和评估基准公开发布。