电子说
在电子设计领域,对于需要键盘输入和I/O扩展功能的设备而言,ADP5589这款芯片无疑是一个值得深入研究的选择。下面,我们就来详细探讨一下ADP5589的各项特性、功能以及应用场景。
文件下载:ADP5589.pdf
ADP5589是一款具有19个I/O端口的扩展器,内置键盘矩阵解码器、可编程逻辑、复位发生器和PWM发生器。它适用于多种设备,包括便携式设备(如手机、遥控器和相机)以及非便携式应用(如医疗、工业和仪器仪表领域)。该芯片能够通过I²C接口与处理器通信,实现对设备的配置和状态反馈。
ADP5589配备了一个16元素的FIFO,用于事件记录。默认情况下,它主要记录按键事件,如按键按下和释放。同时,也可以配置通用输入(GPI)和逻辑活动,使其在FIFO上生成事件信息。事件计数(EC[4:0])由5位组成,与FIFO协同工作,方便用户了解在任何给定时间需要读取多少FIFO内容。
芯片拥有19个可配置的I/O,支持多种功能:
FIFO由16个8位部分组成,用户通过读取FIFO_x寄存器来访问。每个寄存器的Bits[6:0]保存事件标识符,Bit 7保存事件状态。当FIFO中有事件时,用户应先读取事件计数EC[4:0],以确定需要读取多少事件。事件只能从FIFO顶部读取,读取后,FIFO中剩余的事件会向上移动一位,EC[4:0]计数减1。
19个输入/输出引脚可配置为解码最大88个开关(11×8矩阵)的键盘矩阵。行引脚(R0 - R7)通过内部300 kΩ(或100 kΩ)电阻上拉,列引脚(C0 - C10)通过内部NMOS电流沉驱动为低电平。键盘扫描过程中,按键需要按下两个扫描周期才能被识别为有效按键,释放按键也需要两个扫描周期才能被确认。
键盘可以通过将每行直接接地的开关进行扩展。当某个开关按下时,整行接地,ADP5589会对这种特殊情况进行解码。同时,在键盘矩阵中,当三个或更多按键在多行或多列上同时按下时,可能会出现幽灵键问题,即检测到额外的错误按键。解决方法是选择合适的键盘矩阵布局,避免按键组合形成直角。
ADP5589具有锁定模式,可防止事件更新FIFO、事件计数器或生成EVENT_INT中断,直到检测到解锁事件。解锁事件通过UNLOCK1[7:0](0x33)和UNLOCK2[7:0](0x34)寄存器进行编程。同时,芯片还具备解锁定时器和中断掩码定时器,增强了系统的安全性和稳定性。
每个I/O线都可以配置为通用逻辑输入(GPI)或通用输出(GPO)。GPI可以通过GPI_STATUS_x寄存器读取当前输入状态,并通过GPI_INTERRUPT_EN_x寄存器编程生成中断。GPO的输出模式可以配置为推挽或开漏。
芯片的几个I/O线可作为输入和输出,用于实现一些常见的逻辑功能。逻辑块的输出可以配置为生成中断和FIFO事件。
PWM发生器的输出可配置为驱动I/O引脚R3。PWM的开关时间通过四个8位寄存器进行编程,新编程的值在写入最后一个字节PWM_ONT_HIGH_BYTE(地址0x41)时才会被锁存。
时钟分频块可对外部提供的时钟源进行分频,输出驱动I/O引脚R3。
两个复位块可在检测到特定事件时生成复位条件。RESET1信号使用I/O引脚R4作为输出,RESET2信号使用I/O引脚C4作为输出。
INT引脚可以在任何内部中断源激活时被拉低。用户可以在寄存器INT_EN(地址0x4E)中选择哪些内部中断与外部中断引脚交互。
ADP5589通过I²C兼容的串行接口进行寄存器访问,支持最高1 MHz的时钟频率。在访问FIFO或按键事件计数器(KEC)时,FIFO/KEC更新会暂停。文中详细介绍了各种寄存器的功能和配置方法,包括ID寄存器、INT_STATUS寄存器、FIFO寄存器、GPI_INT_STAT寄存器等。
ADP5589适用于需要键盘输入和I/O扩展功能的设备,如手机、遥控器、相机、医疗设备、工业仪器等。文章还提供了详细的订购指南,包括不同型号的温度范围、封装描述和封装选项。
ADP5589是一款功能强大的键盘解码器和I/O扩展器,具有丰富的特性和灵活的配置选项。在实际应用中,电子工程师可以根据具体需求对其进行合理配置,以满足不同设备的功能要求。你在使用ADP5589过程中遇到过哪些问题呢?欢迎在评论区分享你的经验和见解。
全部0条评论
快来发表一下你的评论吧 !