0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Zynq中断的三个部分:SGI、PPI、SPI

454398 来源:瓜大三哥 作者:米果不回来 2020-11-16 17:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Zynq中断大致可分为三个部分

第一部分为SGI,软件生成的中断,共16个端口

第二部分为PPICPU私有外设中断,有5个;

第三部分为SPI,共享外设中断,来自于44个PS端的IO外设以及16个PL端的中断。中间部分为GIC,也即中断控制器,用于对中断进行使能、关闭、掩码、设置优先等。


以下为中断控制器框图,主要的控制器部分为ICC和ICD,ICD连接SGI和PPI,ICD连接SPI,可配置两者的寄存器来控制中断。


SGI中断(软件产生中断),共16个IRQ ID号


PPI中断,CPU私有中断,共5个IRQ ID号


SPI中断部分,共60个IRQ ID号



接下来设置带有中断的GPIO

INT_MASK:中断掩码

INT_DIS: 中断关闭

INT_EN: 中断使能

INT_TYPE: 中断类型,设置电平敏感还是边沿敏感

INT_POLARITY:中断极性,设置低电平或下降沿还是高电平或上升沿

INT_ANY: 边沿触发方式,需要INT_TYPE设置为边沿敏感才能使用


GPIO初始化→设置按键和LED方向→设置产生中断方式→设置中断→打开中断控制器→打开中断异常→打开GPIO中断→判断KEY_FLAG值,是1,写LED

GPIO_CONFIG =XGpioPs_LookupConfig(MIO_0_ID) ;
Status =XGpioPs_CfgInitialize(&GPIO_PTR, GPIO_CONFIG, PIO_CONFIG->BaseAddr) ;
    //设置LED方向
    XGpioPs_SetDirectionPin(&GPIO_PTR,0, GPIO_OUTPUT) ;
    XGpioPs_SetDirectionPin(&GPIO_PTR,13, GPIO_OUTPUT) ;
    //设置按键方向
    XGpioPs_SetDirectionPin(&GPIO_PTR,PS_KEY1, GPIO_INPUT) ;
    XGpioPs_SetDirectionPin(&GPIO_PTR,PS_KEY2, GPIO_INPUT) ;
    //使能LED输出
    XGpioPs_SetOutputEnablePin(&GPIO_PTR,0, GPIO_OUTPUT) ;
    XGpioPs_SetOutputEnablePin(&GPIO_PTR,13, GPIO_OUTPUT) ; 
    //设置中断类型 0表示上升沿  
XGpioPs_SetIntrTypePin(&GPIO_PTR,PS_KEY1, 0);//rising edge
    XGpioPs_SetIntrTypePin(&GPIO_PTR,PS_KEY2, 0);//rising edge
    //设置按键使能
    XGpioPs_IntrEnablePin(&GPIO_PTR,PS_KEY1) ;
    XGpioPs_IntrEnablePin(&GPIO_PTR,PS_KEY2) ;
    //设置中断
    Status= IntrInitFuntion(&INTCInst, MIO_0_ID, &GPIO_PTR) ;
    //产生按键的GPIO
    while(1)
            {
                if (key_flag)
                {
                    XGpioPs_WritePin(&GPIO_PTR,0, key_val) ;
                    XGpioPs_WritePin(&GPIO_PTR,13, key_val) ;
                    key_val= ~key_val ;
                    key_flag= 0 ;
                }
            }
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11223

    浏览量

    223019
  • MIO
    MIO
    +关注

    关注

    0

    文章

    12

    浏览量

    8343
  • Zynq
    +关注

    关注

    10

    文章

    625

    浏览量

    49247
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CH367连接zynq问题

    通过四线SPI连接CH367和zynq时,CH367使用CH367StreamSPI函数设置为四线模式,然后设置SDI为MISO,SDX为MOSI,SCS和SCL为片选和时钟
    发表于 07-03 10:10

    LP87744-Q1 汽车,三个 3A 低噪声降压转换器和 5V 升压转换器数据手册

    LP8774x-Q1 器件旨在满足各种汽车和工业雷达应用中 AWR 和 IWR MMIC 的电源管理要求。该器件具有三个降压 DC/DC 转换器、一 5V 升压转换器和一 1.8V 或 3.3V LDO。LDO 由升压供电,
    的头像 发表于 04-23 16:32 624次阅读
    LP87744-Q1 汽车,<b class='flag-5'>三个</b> 3A 低噪声降压转换器和 5V 升压转换器数据手册

    详解Zynq中的SPI控制器

    本文简单介绍Zynq中的SPI控制器。本文将“master”称为“主机”;将“slave”称为“从机”;将“slave slect”从机选择简称为SS。
    的头像 发表于 03-31 10:35 1444次阅读
    详解<b class='flag-5'>Zynq</b>中的<b class='flag-5'>SPI</b>控制器

    半导体制造过程中的三个主要阶段

    前段工艺(Front-End)、中段工艺(Middle-End)和后段工艺(Back-End)是半导体制造过程中的三个主要阶段,它们在制造过程中扮演着不同的角色。
    的头像 发表于 03-28 09:47 5775次阅读
    半导体制造过程中的<b class='flag-5'>三个</b>主要阶段

    如何检测极管的三个

    可以用万用表来初步确定极管的好坏及类型 (NPN 型还是 PNP 型 ),并辨别出e(发射极)、b(基极)、c(集电极)三个电极。
    发表于 03-08 16:40

    如何区分场效应管mos管三个引脚

    场效应管mos管三个引脚怎么区分
    发表于 03-07 09:20 0次下载

    如何在三个三个或更多现场可编程门阵列* (FPGA) 设备上同时运行OpenVINO™?

    无法同时使用三个FPGA卡在同一模型上进行推理
    发表于 03-06 07:15

    Linux系统中最重要的三个命令

    Linux剑客是Linux系统中最重要的三个命令,它们以其强大的功能和广泛的应用场景而闻名。这三个工具的组合使用几乎可以完美应对Shell中的数据分析场景,因此被统称为Linux
    的头像 发表于 03-03 10:37 811次阅读

    使用DDS生成三个信号并在Vivado中实现低通滤波器

    本文使用 DDS 生成三个信号,并在 Vivado 中实现低通滤波器。低通滤波器将滤除相关信号。
    的头像 发表于 03-01 14:31 2476次阅读
    使用DDS生成<b class='flag-5'>三个</b>信号并在Vivado中实现低通滤波器

    ADS828的GND引脚有三个,这三个引脚的接地是哪个接数字地,哪个接模拟地?

    在贵公司的这款AD转换芯片ADS828的GND引脚有三个(1、16、26)想咨询一下这三个引脚的接地是哪个接数字地,哪个接模拟地,还是不用考虑这方面;还有就是在输出偏置电压的时候,在为2.5V的时候,是用CM输出端好,还是用REFT和REFB电阻分压好?
    发表于 02-14 08:27

    DAC7714总是在程序的最后一通道才可以驱动,程序的前三个通道无法获得正确的电压,为什么?

    DAC7714四通道,用dsp的spi控制,245电平转换,对四通道均进行驱动,总是在程序的最后一通道才可以驱动,程序的前三个通道无法获得正确的电压
    发表于 02-12 06:11

    请问ads8556使用三个串口通讯时DSP模块怎么配置?

    你好,我在使用ads8556时,要使用三个通道的数据线来传递数据,使用的是28335DSP,使用其中两SPI和一McBSP模拟的SPI
    发表于 02-11 07:53

    ZYNQ基础---AXI DMA使用

    Xilinx官方也提供有一些DMA的IP,通过调用API函数能够更加灵活地使用DMA。 1. AXI DMA的基本接口 axi dma IP的基本结构如下,主要分为三个部分,分别是控制axi dma寄存器
    的头像 发表于 01-06 11:13 3623次阅读
    <b class='flag-5'>ZYNQ</b>基础---AXI DMA使用

    使用ADS1256中的三个通道作定时采集遇到的疑问求解

    各位专家,使用ADS1256中的三个通道作定时采集,采样率30Ksps,单端输入,AINCOM接2.5V参考电压,其余输入端悬空。测试中,arm芯片开始能正常读到数据,但偶尔会三个通道的采样值相互
    发表于 12-26 06:18

    深视智能SGI系列四通道SU4-EC操作指南

    深视智能SGI-SD-SS系列四通道SU4-EC操作指南旨在协助用户更加全面地了解SGI、SD、SS系列系列产品
    的头像 发表于 12-16 08:18 862次阅读
    深视智能<b class='flag-5'>SGI</b>系列四通道SU4-EC操作指南