首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Xilinx FPGA嵌入式开发(四)— XPS General Purpose IO模块

Xilinx FPGA嵌入式开发(四)— XPS General Purpose IO模块

端口说明:外部IO信号连接到GPIO_IO上即可,其余端口无需连接。参数说明:C_BASEADDR和C_HIGHADDR必须覆盖模块所需要的地址空间,最小空间为0XFF,如果使用中断,即C_INTERRUPT_PRESENT被设置,则地址空间最小为0x1FF。C_IS_DUAL被设置,则使能通道2。C_DOUT_DEFAULT为系统复位后C_TRI_DEFAULT为系统复位后GPIO_TRI寄存器初始值。控制方式:如果不使用中断,那么对相应通道的GPIO_DATA、GPIO_TRI、GPIO2_DATA、GPIO2_TRI四个寄存器操作即可,这四个寄存器的基地址分别为C_BASEADDR + 0x00/0x04/0x08/0x0C。其中GPIO_DATA寄存器通过一个三态驱动器或寄存器连接到外部IO,参见手册框图; GPIO的每个管脚均可通过GPIO_TRI进行单独设置为输入或输出,GPIO_TRI相应位为0则管脚配置成输出,为1则配置成输入,因此说GPIO_TRI是个输入输出配置寄存器更妥当。对每个IO位,如果配置成输入,则对此位写操作没有效果,同样配置成输出时对此位读没有效果。  因此无中断时GPIO操作流程为:通过写入GPIO_TRI寄存器相应的位来配置对应IO端口的输入/输出属性;读取/写入GPIO_DATA寄存器相应位来完成对相应IO端口的读写操作。  如果某端口被配置成中断输入管脚,则操作流程:通过写入GPIO_TRI寄存器相应位为1来配置端口为输入;通过设置GPIO的IP Interrupt Enable Register的30/31位使能通道1或通道2中断;通过设置GPIO的Global Interrupt Register的bit0为1来使能全局中断;当中断被接收到,即输入管脚信号出现变化,则读取GPIO_DATA寄存器相应位, 通过Toggle-On-Write方式来清除GPIO的IP Interrupt Status Register相应位,TOW方式即对要操作的某些位写入1,则对应位进行翻转,能够用单个写命令清除多个中断位。 注:通道如果多个端口配置成输入,则任一输入端口出现变化会触发中断;三个中断寄存器地址参见手册。中断输出端口和PLB的中断控制器核相连。文章出自seadoncas的专栏:http://blog.csdn.net/seadoncas
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表