[X]关闭

key通过axi_gpio IP核去控制LED灯

文档创建者:ぉ沙皮狗的忧伤
浏览次数:8370
最后更新:2019-10-30
第一步:PL部分的设置

先去画IP核,在昨天的LED灯的基础上增加一个AXI_GPIO的IP核



查看原理图


管脚配置



查看AXI_GPIO_0和AXI_GPIO_1在PS端接口的地址


编译生成.bit文件烧录替换至SD卡中


第二步:
PS端配置

led_drv.c文件


文件操作集合 读写操作

应用层代码编写



实验结果
    一、
      按下SW1和SW2开关正常均为低电平

      按下SW0开关始终为高电平
   二、
      使用万用表测的SW1和SW2按下之前的电压为3.3v,按下按键之后的电压为0v
      使用万用表测的SW0按下按键之前的电压为1.8v,按下按键之后的电压为0v


遗留问题:无法实现SW0按键的功能,可能是因为MIO50管脚也接在SW0导致,等待汤工明天援助








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

发表评论已发布 4

ぉ沙皮狗的忧伤

发表于 2019-10-17 19:35:23 | 显示全部楼层

SW0无法读取,sw1和sw2都能正常读取状态,求解决

RevWuuuuuu

发表于 2019-10-29 00:00:27 | 显示全部楼层

老师我有个问题,数据从PS端通过AXI总线通过寄存器输出到PL端,我可以在PL端修改寄存器的值再通过AXI总线写回PS端吗?可以的话大致需要怎么进行呢?希望能指点一下。
还有一个问题就是我在自定义的AXI的ip核时,定义了10个寄存器,我需要在其他模块调用这10个寄存器,我是不是应该在ip核内把这10个寄存器设置为输出,但是不需要将这些寄存器端口在block design中make external,也可以在其他模块进行调用,对吗?因为我尝试过将这些寄存器make external的话,会提示I/O口超出上限,是不是make external之后就一定要进行管脚约束了呢?我如果只需要在内部调用的话是不是就不需要这样了?直接在ip核内将寄存器设置为输出再从其他模块调用可以吗?

ぉ沙皮狗的忧伤

发表于 2019-10-30 15:15:41 | 显示全部楼层

RevWuuuuuu 发表于 2019-10-29 00:00
老师我有个问题,数据从PS端通过AXI总线通过寄存器输出到PL端,我可以在PL端修改寄存器的值再通过AXI总线写 ...

我也是学员,对于你这个问题,PS端可以将数据发往PL,同样也可以通过PL端将数据写会PS,你可以参考例程CH01_AXI_FDMA_DDR,大致实现过程就是利用另外一根总线将数据写回,

ぉ沙皮狗的忧伤

发表于 2019-10-30 15:19:31 | 显示全部楼层

RevWuuuuuu 发表于 2019-10-29 00:00
老师我有个问题,数据从PS端通过AXI总线通过寄存器输出到PL端,我可以在PL端修改寄存器的值再通过AXI总线写 ...

第二个问题,我自己明白,但是和你讲不明白,让汤工来替你解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则