前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Zynq-7000 ARM端MIO的使用

Zynq-7000 ARM端MIO的使用

作者头像
FPGA开源工作室
发布2019-10-29 11:27:12
1K0
发布2019-10-29 11:27:12
举报
文章被收录于专栏:FPGA开源工作室FPGA开源工作室

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如下图所示。其他配置根据自己的开发板设置。

2) 生成processing_system7_0

3) launch SDK

(1)首先选中system右键选中Generate Output Products...

(2)选中system右键选中Create HDL Wrapper...

(3)导出硬件 选择菜单File->Export->Export Hardware...。这里不包括bitstream

(4)Launch SDK 选择菜单File->Launch SDK,启动SDK环境。

4)SDK编程

(1) 新建APP

点击FILE>>Application Project>>Project name>>Next

选着空工程Empty Application>>Finish

(2)编写代码main.c

#include "xgpiops.h"

#include "sleep.h"

int main()

{

static XGpioPs psGpioInstancePtr;

XGpioPs_Config* GpioConfigPtr;

int Led0 = 0; //MIO0_led

int Led1 = 13; //MIO13_LED

u32 uPinDirection = 0x1;//1表示输出,0表示输入

int xStatus;

//--MIO的初始化

GpioConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);

if(GpioConfigPtr == NULL)

return XST_FAILURE;

xStatus = XGpioPs_CfgInitialize(&psGpioInstancePtr,GpioConfigPtr, GpioConfigPtr->BaseAddr);

if(XST_SUCCESS != xStatus)

print(" PS GPIO INIT FAILED \n\r");

//--MIO的输入输出操作

XGpioPs_SetDirectionPin(&psGpioInstancePtr, Led0,uPinDirection);//配置MIO输出方向

XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, Led0,1);//配置MIO的第0位输出

XGpioPs_SetDirectionPin(&psGpioInstancePtr, Led1,uPinDirection);//配置MIO输出方向

XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, Led1,1);//配置MIO的第13位输出

while(1)

{

XGpioPs_WritePin(&psGpioInstancePtr, Led0, 0);//MIO的第0位输出0

XGpioPs_WritePin(&psGpioInstancePtr, Led1, 1);//MIO的第13位输出1

sleep(1);//延时

XGpioPs_WritePin(&psGpioInstancePtr, Led0, 1);//MIO的第0位输出1

XGpioPs_WritePin(&psGpioInstancePtr, Led1, 0);//MIO的第13位输出0

sleep(1);//延时

}

return 0;

}

这里的0和13是电路图上PS端LED灯的所在位置如下图

(3)下载实现

连接好硬件和打开串口工具后,右键选择MIO_test工程,再选择Run as->1. Launch on Hardware (sysntem Debugger)

视频欣赏

视频内容

总结:

本节通过ARM的MIO(GPIO)来点亮LED灯实现流水灯,通过使用函数库编程,熟悉了SDK开发的工程。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA开源工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档