GPIO之EMIO的使用

EMIO使用

总共4个bank,除了bank1为22bit以外,其他的bank均为32bit,也就是说:

MIO=bank0+bank1=32+22=54bit,即有54个MIO可用;

EMIO=bank2+bank3=32+32=64bit,即有64个EMIO可用;

(1)创建硬件

指定EMIO为4,即使用前4个EMIO,即EMIO54,55,56,57;同时需要指定bank0和bank1的电压;

配置板上晶振为50Mhz,同时PLL输出为100Mhz的主频;

顺便设置DDR的参数;

(2)将EMIO外接

注意,仅仅将GPIO_0进行外接,小心别将M_AXI_GP0外接了,否则会报错;

(3)EMIO属于PL部分,需要进行管脚约束

set_property PACKAGE_PIN N15 [get_ports {gpio_0_tri_io[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports {gpio_0_tri_io[0]}]

set_property PACKAGE_PIN N16 [get_ports {gpio_0_tri_io[1]}]

set_property IOSTANDARD LVCMOS33 [get_ports {gpio_0_tri_io[1]}]

set_property PACKAGE_PIN M19 [get_ports {gpio_0_tri_io[2]}]

set_property IOSTANDARD LVCMOS33 [get_ports {gpio_0_tri_io[2]}]

set_property PACKAGE_PIN M20 [get_ports {gpio_0_tri_io[3]}]

set_property IOSTANDARD LVCMOS33 [get_ports {gpio_0_tri_io[3]}]

需要注意的是,管脚约束需要和顶层wrapper_HDL.v中的EMIO外扩管脚的名称对应,因为块图中名称为GPIO_0,而对应的PL名称为gpio_0_tri_io;

(4)新建应用程序

上述采用API来进行GPIO的控制,具体使用的函数几乎和MIO的相同;仅仅是管脚编号从54开始算起,可以看到使用的就是EMIO;

MIO范围:bank0-bank1:0-53;

EMIO范围:bank2-bank3:54-118;

往4个LED中分别写1和写0,即点亮,延时200ms,然后熄灭;

(4)原理图中管脚位置

从原理图可以看到LD0-3的物理引脚位置,可以参考原理图进行xdc约束文件;

(5)运行

program FPGA;run---run as GDB;

本实验让LD0-3,共4个LED灯进行轮流闪烁,使用到了PL侧的EMIO管脚,如上表;

物理上的4个管脚(N15+N16+M19+M20)---->连接到4个EMIO管脚(即GPIO54+55+56+57)--->于是只需要控制GPIO54_55_56_57就可以通过EMIO控制到对应的物理管脚;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值