您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF51X技术支持专区 -> BF518的中断详解(2)
本帖共有822个阅读者
发表帖子 发表投票 回复主题
BF518的中断详解(2)
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF518的中断详解(2)

ADSP-EDU-BF51x 开发板上的中断资源连接到了CPLD,并通过CPLD 将中断信号连接到PF0 触发,通过CPLD映射的寄存器读取中断源数据。中断源包含了触摸屏中断,触摸屏控制器通过SPI 接口方式连接BF51x 处理器的SPI1 接口,该接口与SPORT1接口复用,SPORT1 接口连接了音频芯片,在音频测试后,音频芯片对接口会产生影响,为了不影响触摸屏控制器工作,在代码中增加了关闭音频芯片的初始化代码,以消除音频芯片对触摸屏控制器的干扰。

中断功能映射到 CPLD 寄存器中的DEVICE_OE 和INTERRUPT_DAT 两个寄存器,其映射内容如下:
DEVICE_OE 寄存器(读/写):
DEVICE_OE 寄存器地址:0x20220000
DEVICE_OE 寄存器设置硬件设备上一些控制管脚的电平状态

DEVICE_OE 寄存器位功能:

上传的图片
  201261812384842.jpg [ 16.64 KB 977×71 ] (缩略时请点击查看原图)

 



我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/6/18 12:39:12
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

INTERRUPT_DAT 寄存器(读唯一):
DEVICE_OE 寄存器地址:0x20260000
INTERRUPT_DAT 寄存器是板卡上所有中断资源的中断源数据寄存器,可以通过该寄存器数据判断出当前中断是哪一个设备产生的。
INTERRUPT_DAT 寄存器位功能:

上传的图片
  201261812405742.jpg [ 14.41 KB 983×71 ] (缩略时请点击查看原图)

 

当中断未触发时,读取的Bit 位值为1,当中断触发时,读取的Bit 位值为0。根据Bit 位数据,获取中断设备。
SD_INF 为SD 卡插入查询位,该bit 位不会触发中断,只能通过读取该寄存器来查询SD 卡是否插入。

硬件连接示意图

上传的图片
  201261812415442.jpg [ 19.71 KB 701×208 ] (缩略时请点击查看原图)

 

代码实现功能

代码实现 了利用板卡的中断机制, 当有中断触发时,PG1 脚产生中断,然后进入中断函数, 通过INTERRUPT_DAT 寄存器查询触发中断的中断源,并打印中断源信息。

测试实验步骤

1. 将仿真器(ICE)与ADSP-EDU-BF51x 开发板和计算机连接好。
2. 先给仿真器(ICE)上电再为ADSP-EDU-BF51x 开发板上电。
3. 运行 VisualDSP++ 5.0 软件,选择合适的BF518 的session 将仿真器与软件连接。
4. 加载 VisualDSP++ 5.0 工程文件BF51x_INTERRUPT.dpj,编译并全速运行。
5. 点击触摸屏或者按按键测试中断触发。

测试结果

点击触摸屏或者按按键测试中断触发,代码打印出触发中断的中断源。

上传的图片
  201261812433042.jpg [ 18.04 KB 592×215 ] (缩略时请点击查看原图)

 



我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/6/18 12:43:36
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159481 Call, 1 Queries, Processed in 0.031250 second(s),