视频讲解
硬件实现原理
ADSP-EDU-BF53x 开发板上的按键连接到了CPLD,通过CPLD 将按键信号与EBIU 总线和中断管脚PF0 连接,并将中断数据地址映射在CPLD 的当有按键按下后,会触发PF0 中断信号,同时可以通过EBIU 总线访问中断功能映射到CPLD 寄存器中的INTERRUPT_DAT 寄存器,通过访问该寄存器,可以获取键盘的中断源数据,通过读取CPLD 的 KEYBOARD_DAT 寄存器,可以获取当前触发中断的按键的键值。其寄存器映射如下
DEVICE_OE 寄存器(读/写):
DEVICE_OE 寄存器地址:0x20320000
DEVICE_OE 寄存器设置硬件设备上一些控制管脚的电平状态。
DEVICE_OE 寄存器位功能:
PF0_SET:PF0 模拟IIC 总线 SCL 接口或PF0 中断功能使能
1:关闭I2C_SCL 输入信号, 使能PF0 中断信号
0:使能I2C_SCL 输入信号,关闭PF0 中断信号
使用中断时,将 PF0_SET 位设置为1。
KEYBOARD_DAT 寄存器(读唯一):
KEYBOARD_DAT 寄存器地址:0x20380000
KEYBOARD_DAT 寄存器是按键数据寄存器,通过该寄存器可以读取当前按键键值,通过键值判断当前哪个按键按下。
KEYBOARD_DAT 寄存器位:
INTERRUPT_DAT 寄存器(读唯一):
INTERRUPT_DAT 寄存器地址:0x20360000
INTERRUPT_DAT 寄存器是板卡上所有中断资源的中断源数据寄存器,可以通过该寄存器数据判断出当前中断是哪一个设备产生的。
INTERRUPT_DAT 寄存器位功能:
当中断未触发时,读取的Bit 位值为1,当中断触发时,读取的Bit 位值为0,根据Bit 位数据,获取中断设备。SD_INF 为SD 卡插入查询位,该bit 位不会触发中断,只能通过读取该寄存器来查询SD 卡是否插入。