当前位置: 首页 > news >正文

禅城区网站建设管理网站模板下载免费下载

禅城区网站建设,管理网站模板下载免费下载,南昌好的做网站的公司,专业团队黑人重新开始学ZYNQ开发,学完上linux系统 基础知识:ZYNQ 的三种GPIO :MIO、EMIO、AXI - FPGA/ASIC技术 - 电子发烧友网 GPIO是ZYNQ PS端的一个IO外设,用于观测(input)和控制(output)器…

重新开始学ZYNQ开发,学完上linux系统

基础知识:ZYNQ 的三种GPIO :MIO、EMIO、AXI - FPGA/ASIC技术 - 电子发烧友网

GPIO是ZYNQ PS端的一个IO外设,用于观测(input)和控制(output)器件引脚的状态 

MIO(Multiplexed I/O)多路复用IO。是ZYNQ PS端的一部分,将来自PS外设和静态存储器接口的访问多路复用到PS引脚上,直接连接到PS端的引脚,用于控制外设(如LED、按键等)。MIO的引脚位置是固定的,不需要像PL端那样进行引脚约束。

EMIO(Extended MIO),扩展的MIO。EMIO是PS与PL的接口,当PS引脚不够用的时候,可以使用EMIO来进行扩展,从而使用PL的IO;当某个设备硬件已经连接到PL端,但是通过Verilog代码实现较复杂的时候,可以用EMIO让PS端来驱动。

 GPIO分组:Bank0:32位控制MIO[31:0];Bank1:32位控制MIO[53:32];                                        Bank2:32位控制EMIO[31:0];Bank3:32位控制EMIO[63:32]。

软件通过GPIO可以独立且动态的编程,作为输入/输出以及中断模式。

实验任务一:点灯大师(基于寄存器)使用PS端的MIO控制两个LED,实现LED闪烁的效果,闪烁间隔为1s。

第一步:在vivado上block design中创建了一个最小系统(system)作为zynq的ps端。在最小系统(DDR3+UART)中添加了GPIO(通用输入输出)外设,负责管理和控制MIO引脚的状态。GPIO通过MIO引脚直接连接到LED,实现对其的控制。

 第二步:代码逻辑控制ps端,通过GPIO的数据手册中的几个寄存器控制LED.

#include <stdio.h>
#include "xil_io.h"
#include "sleep.h"#define GPIOPS_BASE_ADDRESS 	 0xE000A000  // GPIO基地址
#define XGPIOPS_DIRM_OFFSET 	 0x00000204  // 方向模式寄存器偏移地址
#define XGPIOPS_OUTEN_OFFSET 	 0x00000208  // 输出使能寄存器偏移地址
#define XGPIOPS_DATA_LSW_OFFSETR 0x00000000  // 带屏蔽的数据寄存器偏移地址int main() {printf("GPIO MIO TEST!\n");// 对GPIO引脚进行配置// 配置方向模式寄存器,使MIO7和MIO8为输出模式Xil_Out32(GPIOPS_BASE_ADDRESS + XGPIOPS_DIRM_OFFSET, 0x00000180);  // 0000_0000_0000_0000_0000_0001_1000_0000// 配置输出使能寄存器,使MIO7和MIO8输出使能Xil_Out32(GPIOPS_BASE_ADDRESS + XGPIOPS_OUTEN_OFFSET, 0x00000180); // 0000_0000_0000_0000_0000_0001_1000_0000while (1) {// 点亮MIO7,熄灭MIO8Xil_Out32(GPIOPS_BASE_ADDRESS + XGPIOPS_DATA_LSW_OFFSETR, 0xff7f0080); // 0000_0000_0000_0000_0000_0000_1000_0000sleep(1); // 延迟1秒Xil_Out32(GPIOPS_BASE_ADDRESS + XGPIOPS_DATA_LSW_OFFSETR, 0xff7f0000); // 0000_0000_0000_0000_0000_0000_1000_0000sleep(1); // 延迟1秒// 点亮MIO8,熄灭MIO7Xil_Out32(GPIOPS_BASE_ADDRESS + XGPIOPS_DATA_LSW_OFFSETR, 0xfeff0100); // 0000_0000_0000_0000_0000_0001_0000_0000sleep(1); // 延迟1秒Xil_Out32(GPIOPS_BASE_ADDRESS + XGPIOPS_DATA_LSW_OFFSETR, 0xfeff0000); // 0000_0000_0000_0000_0000_0001_0000_0000sleep(1);}return 0;
}

实验任务二:点灯大师(基于库函数)使用PS端的MIO控制两个LED,实现LED闪烁的效果,闪烁间隔为1s(和实验一逻辑是一样)。

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"#define GPIO_DEVICE_ID		XPAR_XGPIOPS_0_DEVICE_ID
#define MIO_LED0            7 //MIO 7
#define MIO_LED1            8 //MIO 7XGpioPs Gpio;int main(){XGpioPs_Config *ConfigPtr;printf("GPIO TEST SUCCESS!\n");//对GPIO进行初始化(两步)    /* Initialize the GPIO driver. *///第一步:根据器件ID去查找器件的配置信息ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);//第二步:对GPIO的驱动进行初始化XGpioPs_CfgInitialize(&Gpio, ConfigPtr,ConfigPtr->BaseAddr);//设置引脚的方向,0为输入,1为输出XGpioPs_SetDirectionPin(&Gpio, MIO_LED0, 1);XGpioPs_SetDirectionPin(&Gpio, MIO_LED1, 1);//设置输出使能,1:使能输出,0:不使能输出XGpioPs_SetOutputEnablePin(&Gpio, MIO_LED0, 1);XGpioPs_SetOutputEnablePin(&Gpio, MIO_LED1, 1);while(1){//对引脚输出为高电平,点亮LED灯XGpioPs_WritePin(&Gpio, MIO_LED0, 0x1);sleep(1);//交替闪烁XGpioPs_WritePin(&Gpio, MIO_LED1, 0x1);sleep(1);//对引脚输出为低电平,熄灭LED灯   /* Set the GPIO output to be low. */XGpioPs_WritePin(&Gpio, MIO_LED0, 0x0);sleep(1);XGpioPs_WritePin(&Gpio, MIO_LED1, 0x0);sleep(1);}return 0;
}

上板验证:

实验任务3:使用两个用户按键分别控制PS端的两个LED灯的亮灭,其中一个按键需要通过EMIO进行扩展(PL端的参与)。需要增加GPIO输入的功能,实验二GPIO用于输出。

http://www.dtcms.com/a/585585.html

相关文章:

  • 前端微服务化
  • Linux 软件安装 “命令密码本”:yum/apt/brew 一网打尽
  • 做网站框架显示不出来中国最大的软件公司
  • 轻量级云原生体验:在OpenEuler 25.09上快速部署单节点K3s
  • 程序员 给老婆做网站网站建设 海南
  • 解释 StringRedisTemplate 类和对象的作用与关系
  • MATLAB遗传算法优化RVFL神经网络回归预测(随机函数链接神经网络)
  • 建设网站的知识竞赛国家建设网站
  • ROS2 Humble 笔记(七)标准与自定义 Interface 接口
  • 深入探索序列学习:循环神经网络(RNN)及其变体(LSTM、GRU)的详尽解析
  • 永川区做网站临沂网站建设方案报价
  • B哩B哩车机版专为汽车端或大屏设备开发
  • 一种基于视网膜图像的深度学习系统 DeepRETStroke
  • 2025汽车零部件行业数字化转型落地方案
  • 前后端分离和传统非分离(后端渲染)方案的核心差异
  • 【ZeroRange WebRTC】在自有 AWS 环境实现与 Amazon KVS 等效的 WebRTC 安全方案(落地指南)
  • 用wordpress建站要不要用宝塔网页制作基础教程免费
  • 深入解析红黑树:高效平衡的艺术
  • 李云飞:比亚迪将坚持磷酸铁锂电池路线
  • 制作网站赚钱不建设门户网站的请示
  • 张祥前统一场论动量公式P=m(C-V)误解解答
  • 建设工程施工员考试在哪个网站网页设计欣赏熊出没
  • Kafka-2 Kafka的特点
  • 悟空AI-CRM 15,最新版 开源了!
  • winlogon登录对话框中USER32!SLEditWndProc函数分析之WM_CHAR消息是如何来的--重要
  • 杭州外贸网站建设公司价格建立网站大概投入
  • 长沙营销网站建站公司百度数据研究中心官网
  • AWS EC2实例重启后SSH/SFTP连接失败的全面排查指南
  • Tigshop 开源商城系统 php v5.1.9.1版本正式发布
  • Wordpress Advanced Ads插件漏洞CVE-2025-10487复现