[FPGA] Zynq-7000 ARM端MIO的使用

[复制链接]
3005|2
手机看帖
扫描二维码
随时随地手机跟帖
gaochy1126|  楼主 | 2021-10-23 20:29 | 显示全部楼层 |阅读模式
1. 背景知识
Xilinx Zynq-7000 芯片的PS端MIO(multiuse I/O)所在位置如下图红色框所示。MIO(0:15)在bank0上,MIO(16:53)在bank1上。他们不需要管脚约束,既可以当做PS 端普通的IO也可以用做PS端SPI、I2C、CAN等总线。
13317-38966-01.png
本节将使用MIO的GPIO功能实现LED流水灯。
2. MIO流水灯实验
对于工程的创建在此不再赘述。可参考《Zynq-7000 ARM端helloworld实验
1) ZYNQ7 Processing System GPIO的设置
点击MIO Configuration>>选中GPIO MIO如下图所示。其他配置根据自己的开发板设置。
13317-38967-02.png
2) 生成processing_system7_0
13317-38968-03.png
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
13317-38969-04.png
选着空工程Empty Application>>Finish
13317-38970-05.png

使用特权

评论回复

相关帖子

gaochy1126|  楼主 | 2021-10-23 20:31 | 显示全部楼层
(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灯的所在位置如下图
13317-38971-06.png

使用特权

评论回复
gaochy1126|  楼主 | 2021-10-23 20:32 | 显示全部楼层
(3)下载实现
连接好硬件和打开串口工具后,右键选择MIO_test工程,再选择Run as->1. Launch on Hardware (sysntem Debugger)
13317-38972-07.png

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则