硬件实现原理
ADSP-EDU-BF51x 开发板上的按键连接到了CPLD,通过CPLD 将按键信号与EBIU 总线和中断管脚PG1 连接,并将中断数据地址映射在CPLD 的当有按键按下后,会触发PF0 中断信号,同时可以通过EBIU 总线访问中断功能映射到CPLD 寄存器中的INTERRUPT_DAT 寄存器,通过访问该寄存器,可以获取键盘的中断源数据,通过读取CPLD 的 KEYBOARD_DAT 寄存器,可以获取当前触发中断的按键的键值。其寄存器映射如下:
KEYBOARD_DAT 寄存器(读唯一):
KEYBOARD_DAT 寄存器地址:0x20280000
KEYBOARD_DAT 寄存器是按键数据寄存器,通过该寄存器可以读取当前按键键值,通过键值判断当前哪个按键按下。
INTERRUPT_DAT 寄存器(读唯一):
INTERRUPT_DAT 寄存器地址:0x20260000
INTERRUPT_DAT 寄存器是板卡上所有中断资源的中断源数据寄存器,可以通过该寄存器数据判断出当前中断是哪一个设备产生的。
INTERRUPT_DAT 寄存器位功能:
当中断未触发时,读取的Bit 位值为1,当中断触发时,读取的Bit 位值为0,根据Bit 位数据,获取中断设备。SD_INF 为SD 卡插入查询位,该bit 位不会触发中断,只能通过读取该寄存器来查询SD 卡是否插入。
硬件连接示意图