转载--happysaisai的博客
为了实现人机交互,实现人机通信,方便学生做实验,我们在基于ADSP-21369的实验教学系统上设计了一个键盘,它可以实现实验数据的输入,由于键盘的多样性,结合实际需要,首先需要进行方案选择工作。
(1)方案选择
本实验系统采用4*4键盘,用于实验数据输入。4*4键盘共有16个按键,排列成4行4列的矩阵形式的分布,如果使用I/O端口扫描的形式来实现对16个按键的识别,那么需要8个I/O端口,为了节省系统资源并且提高系统效率,本系统使用芯片控制键盘扫描,键盘扫描的产品选型有CH451和CH452两种,它们都是键盘扫描控制芯片,都可以直接进行键盘扫描,并且可以中断,大大节省了系统时间。除此之外它们还有数码管LED显示驱动的功能,驱动数码管LED显示,并且能同时进行显示驱动和键盘扫描,也能为日后扩展提供方便。虽然CH451和CH452都可以支持3.3V和5V电源电压,但是CH451用于3.3V时要外接震荡电阻才能避免显示闪烁,而且CH452兼容I2C的两线接口,因此我们选定CH452,并且选择2线串行接口,28脚贴片的封装CH452A。
CH452的2线串行接口,包含2个主要信号线:串行数据时钟输入线SCL、串行数据输入和输出线SDA;以及2个辅助信号线:串行接口的地址选择线ADDR、串行接口的中断输出线INT#。其中,SCL、ADDR 是带上拉的输入信号线,SCL用于提供串行时钟,CH452 在其上升沿后的高电平期间从SDA输入数据,在其下降沿后的低电平期间从SDA输出数据,默认高电平。
在SCL为高电平期间发生的SDA下降沿定义为串行接口的启动信号,CH452只在检测到启动信号后才接收并分析命令,所以在DSP I/O 引脚资源紧张时,不但INT#引脚可以省掉而改用SDA 引脚的脉冲中断方式,而且在保持SDA引脚状态不变的情况下,SCL 引脚也可以与其它接口电路共用。
(2)DSP和CH452芯片的连接
ADSP-21369的DPI接口有一个TWI接口,TWI接口完全兼容I2C总线标准。DSP通过串行接口控制CH452芯片,CH452的串行接口是由硬件实现的,DSP可以频繁地进行高速操作,而绝对不会降低CH452的工作效率。2线串行接口的中断输出INT#接DSP的外中,2线串行接口的数据时钟SCL和DSP的DPI12_TWI_CLK相连,2线串行接口的数据输入和输出SDA和DSP的DPI11_TWI_DATA相连,此外由于I2C接口的输出端是漏极开路或集电极开路,默认高电平,所以必须在I2C接口处接上拉。键盘扫描期间,SEG7~SEG0 引脚都带有内部下拉电阻,用于行扫描输入;DIG7~DIG0 引脚用于列扫描输出。由于我们是4*4键盘,因此只选用SEG3~SEG0和DIG3~ DIG0 引脚。另外,在CH452的DIG0~DIG3引脚与键盘矩阵之间需要串接限流阻值2KΩ的电阻,是为了防止键被按下后在SEG信号线与DIG 信号线之间形成短路。键盘部分设计电路图如下图所示。
键盘设计电路图
Keyboard connection circuit |