ZYNQ-EMIO 使用教程

免责声明:

本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。

读者在使用本文信息时,应自行验证其准确性和适用性,并对其使用结果负责。本文内容不构成专业技术咨询或建议,具体的技术实现和应用应根据实际情况和需要进行详细分析和验证。

本文所涉及的任何商标、版权或其他知识产权均属于其各自的所有者。若本文中引用了第三方的资料或信息,引用仅为学术交流目的,不构成对第三方内容的认可或保证。

若有任何疑问或需进一步信息,请联系本文作者或相关专业人士。

目录

前言

一、PS-MIO/PS-EMIO 介绍

二、搭建 SOC 系统工程

三、MIO/EMIO 配置

四、插入ILA对接EMIO

五、编译并导出平台文件

六、搭建 Vitis-sdk 工程

七、测试程序

八、测试结果

总结



前言

本文对 ZYNQ 芯片的 PS GPIO 进行介绍,通过ILA,演示 PS 端 MIO/EMIO 的使用方法。


一、PS-MIO/PS-EMIO 介绍

ZYNQ SOC PS 部分的 IO 包括 PS-MIO 和 PS-EMIO。7系列--PS-MIO 具有 54 个  ,Zynq UltraScale+ 具有78个可配置复用的MIO,若配置EMIO,那其序号应从54/78开始。

二、搭建 SOC 系统工程

详细的搭建过程这里不再重复,对于小白如果还不清楚如何创建 SOC 工程的,请浏览上期教程。

三、MIO/EMIO 配置

选择适量的EMIO接口

四、插入ILA对接EMIO

五、编译并导出平台文件

详细的搭建过程这里不再重复,对于小白如果还不清楚如何创建 SOC 工程的,请浏览上期教程。

六、搭建 Vitis-sdk 工程

详细的搭建过程这里不再重复,对于小白如果还不清楚如何创建 SOC 工程的,请浏览上期教程。

七、测试程序

#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xparameters.h"
#include "xgpiops.h"

#define GPIO_DEVICE_ID  0  // 定义GPIO设备ID

int main() {
    XGpioPs Gpio;  // 创建XGpioPs实例
    XGpioPs_Config *ConfigPtr;  // 创建指向XGpioPs_Config的指针

    // 查找并获取GPIO设备的配置参数
    ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);

    // 初始化GPIO设备,使用从LookupConfig获取的配置参数
    XGpioPs_CfgInitialize(&Gpio, ConfigPtr, ConfigPtr->BaseAddr);

    // 设置EMIO引脚78为输出方向
    XGpioPs_SetDirectionPin(&Gpio, 78, 1);

    // 使能EMIO引脚78的输出使能
    XGpioPs_SetOutputEnablePin(&Gpio, 78, 1);

    // 将EMIO引脚78的输出设置为高电平
    XGpioPs_WritePin(&Gpio, 78, 0x1);

    return 0;  // 程序结束
}

八、测试结果

ILA中EMIO波形与XGpioPs_WritePin(&Gpio, 78, 0x1);的配置一致。


 

总结

本期教程通过ILA,演示 PS 端 MIO/EMIO 的使用方法。

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值