• 【【萌新的SOC学习之GPIO之MIO控制LED实验程序设计】】


    萌新的SOC学习之GPIO之MIO控制LED实验程序设计

    如何设置完GPIO并且传递数据
    我们先了解GPIO引脚的配置
    每一个GPIO引脚都可以设置成输入输出 ,只有GPIO8 7 只能作为输出

    我们现在做一个例子 GPIO 的bank我们知道有4个 bank0 1 2 3
    DIRM_0 就是第一个bank 需要写入的是32位数据
    因为写法是16进制 假设我们要操作 第10位置为1
    那就是write 0x0000_0400 我们分析最后的几个位 我们可以看到是 100_0000_0000 正好是第10个管脚被置为了1
    我们在上面的设置中还知道不仅要配置 DIRM 还要配置OEN
    在这里插入图片描述
    所以对于OEN这样的寄存器我们也需要把它的第十位设置为1 0x0000_0400 (16进制)
    OEN寄存器比较特殊 只有当我们配置成输出模式的时候才有意义也就是在DIRM=1时 ,当我们前面的DIRM=0 时 OEN就会没有别的意义

    我们把MIO设置为输入 只要把DIRM_0设置为 全0就可以了

    接下来我们需要把数据写入

    我们本次实验的任务是 使用PS端的MIO控制LED ,实现LED闪烁的效果
    我们来看本次实验的系统框图
    在这里插入图片描述
    按照步骤创建完 会打开到一个SDK软件 其中的有
    在这里插入图片描述
    我们对这些数据敏感就会发现了
    0xe000_a000
    在这里插入图片描述
    下一个实验GPIO之EMIO按键控制LED实验
    实验任务: 使用ZYNQ底板上的三个用户按键分别控制PS端的三个LED的亮灭,其中一个按键需要通过EMIO进行扩展。
    但是ZYNQ的底板上只有2个PS端的用户按键,要是用三个的话,就需要通过EMIO进行扩展
    在这里插入图片描述
    PS端的按键不够用 我们通过EMIO扩展 PL的按键
    在这里插入图片描述
    当我们的设计需要用到PL的资源时,我们就需要导出bitstream配置FPGA

    我们想要读出数据可以直接使用GPIO_RO_x寄存器

    把DIRM写0 就可以配置成输入了
    如何配置MIO的输入?
    配置成输入
    读MIO_RO 寄存器
    在这里插入图片描述
    我们观察底板的电路图会发现

    PS LED1 连接到的是 PS MIO8
    PS LED0 连接到的是 PS MIO7
    PS KEY0 连接到的是PS MIO12
    PS KEY1 连接到的是PS MIO11
    还有一个PS LED 直接接到了MIO0_LED上
    PL端的KEY0 用的是L14

    我们在vivado中实现 但是发现我们使用EMIO就需要给它分配管脚
    在调用PS端的时候并不需要,因为它会自动给我们分配管脚
    但是PL端需要我们自己去设置

  • 相关阅读:
    程序员的实用神器之——通义灵码
    laravel-admin 头部添加操作
    ELK-介绍及Elasticsearch集群搭建
    DouZero: 定制化AI在斗地主游戏中的实战应用与Python实现教程“
    C语言实验五 循环结构程序设计(二)
    Linux 实践项目之论坛搭建
    SpringCloud之配置中心
    Oracle EBS Interface/API(45)- 销售发运自动创建交货单
    华为再放大招“重新造车”,这次能否延续手机辉煌?
    ELK集群 日志中心集群、kafka、logstash
  • 原文地址:https://blog.csdn.net/weixin_50965981/article/details/133773574