Xilinx zynq7000,zynq7k上GPIO使用笔记
来源:互联网 发布:监测游戏帧数软件 编辑:程序博客网 时间:2024/06/05 06:24
1 GPIO
ZYNQ7K上GPIO分为2类MIO和EMIO,MIO和常见的CPU管脚功能是一样的和很多外设是复用的,在使用前需要进行PIN Assignment,幸运的是这个PIN assignment可以在VIVADO 工具里
自动完成,并且会在FSBL里生成对应的代码完成管脚分配。当然用户也可以在应用程序中重新分配管脚。MIO共54个管脚分布在BANK0和BANK1,BANK1有32个,BANK2有22个每个BANK可以设置不同的电压等级。
MIO控制寄存器对应的基地址是0xE000A000
对MIO的控制主要要配置以下寄存器:
DIRM_0/1
OEN_0/1
DATA_0/1
DATA_RO_0/1
MIO_PIN_xx (在SLCR寄存器组内使用前要先UNLOCK SR写保护)
EMIO是从PL侧扩展出的GPIO管脚(就像当于传统的FPGA提供了几个内存影射的寄存器,这些寄存器可用控制这些FPGA的官脚,同时这些寄存器地址对PS可直接访问
对EMIO的控制主要要配置以下寄存器:
DIRM_2/3
OEN_2/3
DATA_2/3
DATA_RO_2/3
配置MIO47,48,49为GPIO
XLNX_ZYNQ7K_SR_REGISTER_WRITE(0xF80007BC,0x00001600);/*MIO47,GPIO*/
XLNX_ZYNQ7K_SR_REGISTER_WRITE(0xF80007C0,0x00001600);/*MIO48,GPIO*/
XLNX_ZYNQ7K_SR_REGISTER_WRITE(0xF80007C4,0x00001600);/*MIO49,GPIO*/
#define MIO32_53_DIR_ADDR 0xE000A244
#define MIO32_53_OEN_ADDR 0xE000A248
#define GPIO_REG_READ(addr) \
*((volatile UINT32 *)(addr))
#define GPIO_REG_WRITE(addr, data) \
*((volatile UINT32 *)(addr)) = data
void sclk_low(void)
{
UINT32 data;
data=GPIO_REG_READ(MIO32_53_DATA);
data&=~0x10000;
GPIO_REG_WRITE(MIO32_53_DATA,data);
}
void mosi_high(void)
{
UINT32 data;
data=GPIO_REG_READ(MIO32_53_DATA);
data|=0x4000;
GPIO_REG_WRITE(MIO32_53_DATA,data);
}
void initGPIO46_49(void)
{
UINT32 dir;
UINT32 oen;
dir=GPIO_REG_READ(MIO32_53_DIR_ADDR);
oen=GPIO_REG_READ(MIO32_53_OEN_ADDR);
dir|=0x34000;
GPIO_REG_WRITE(MIO32_53_DIR_ADDR,dir);
oen|=0x34000;
GPIO_REG_WRITE(MIO32_53_OEN_ADDR,oen);
}
- Xilinx zynq7000,zynq7k上GPIO使用笔记
- Xilinx zynq7000,zynq7k上CLOCK Distribution 调试笔记
- Xilinx火龙果学习笔记(3)---GPIO的使用
- Xilinx Zynq7000系列学习
- GPIO Product Guide笔记(Xilinx)
- GPIO Product Guide笔记(Xilinx)
- Xilinx SDK 初学之--API函数笔记(GPIO函数)
- Xilinx SDK 初学之–API函数笔记(GPIO函数)
- -10-GPIO驱动程序【Xilinx-Petalinux学习】
- SMP上多核CPU启动方法-》ZYNQ7k上CPU2(ARM1)的启动方法
- Xilinx ZYNQ 7000+Vivado2015.2系列(六)创建一个基于AXI总线的GPIO IP并使用
- STM32F4学习笔记之GPIO(使用固件库)
- STM32F4学习笔记之GPIO(使用固件库)
- linux GPIO中断的使用笔记
- ZYNQ7000基于linux3.0操作系统驱动分析——GPIO驱动
- ZYNQ7000基于linux3.0操作系统驱动分析——GPIO驱动第二天
- Xilinx DCM 使用
- Xilinx SDK使用教程
- 使用DIV+CSS制作二级导航菜单(横向)
- 【观察】全面云化不是选择是答案 NetApp“三驾马车”踏上新征途
- 【观察】vFORUM 2017,等你一起来打Call!
- 猴子吃桃算法
- 洛谷 P1006 传纸条
- Xilinx zynq7000,zynq7k上GPIO使用笔记
- 自己项目里面的aos 查询数据的语法
- python网络数据采集-处理重定向问题
- HBase架构介绍
- 网络动态服务器-1
- Java疯狂讲义读书笔记第十七章
- tomcat启用https配置
- AppScan安全扫描工具之安装及配置GlassBox
- Java Regex