zynq中断:共享外设中断(SPI)

本文介绍了如何在Zynq上编程实现共享外设中断,特别是通过逻辑产生中断信号并接入ZYNQ中断输入。内容包括上升沿和高电平触发方式的解释,以及在Vivado中创建Block Design的步骤,同时提供了SDK中C代码的编写流程,强调了高电平触发时的时钟周期要求,以及按键抖动可能导致的中断问题。
摘要由CSDN通过智能技术生成

摘要:
关于zynq的中断说明网上有很多的帖子,比如说一下的帖子就写的很不错。
https://blog.csdn.net/shangguanyunlan/article/details/53147587

关于中断的说明不想在多说,详细的可以看上面的博客。我这里主要将如何编程实现。关于中断的说明将会分两篇来说明,第一篇是直接在PL端通过逻辑来产生中断,第二篇是通过按键来产生中断。

本篇通过逻辑来产生中断信号,并将其接入ZYNQ的中断输入。产生的中断信号是一个周期方波,周期为2秒。
在这里插入图片描述
共享外设中断的触发方式有上升沿和高电平两种方式。上升沿触发,顾名思义就是在上升沿的时候触发中断。高电平触发就是在高电平期间触发中断,但并不是说在高电平期间的每一个时刻都会触发中断。比如说高电平的占空比是1秒的话,并不是在1秒内都会产生中断。为什么呢?我想主要的原因就是,当中断相应进入中断处理函数后,会关闭中断,然后再进行处理,处理完后才再次打开中断,因此并不是每一个时刻都会响应中断。

高电平触发的应用场景主要用于类似于报警系统,当报警没有接触的时候就一直给高电平,产生警报。当警报解除之后就可以拉低信号。

一、在vivado 中创建一个Block Design

Block Design的完整配置如下
在这里插入图片描述
1、配置ZYNQ
a、中断设置
在这里插入图片描述
b、时钟设置
在这里插入图片描述
2、创建三个端口
分别创建PL_intr、CLK_100M和FCLK_RESET_N端口,并把这两个端口分别连接到IRQ_F2P、FCLK_CLK0和FCLK_RESET_N。
3、选中中断信号线, 并debug。
3、按照第一张图完成连接,如下图。
在这里插入图片描述
4、Generate output product

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值