概述
ADP5585是一款10I/O端口扩展器,内置键盘矩阵解码器、可编程逻辑、复位发生器和PWM发生器。I/O扩展器IC适用于便携式设备(手机、遥控器和相机)及非便携式应用(医疗保健、工业和仪器仪表),可用来增加处理器可用的I/O数量,或者通过接口连接器减少前面板设计所需的I/O数量。
ADP5585处理所有按键扫描和解码,并通过一条中断线通知主处理器有新的按键事件发生。GPI变化和逻辑变化也可以通过FIFO记录为事件,从而无需监控不同的寄存器来判断事件变化。ADP5585配有一个FIFO,它最多可以存储16个事件。处理器可以通过I2C兼容型接口回读事件。
ADP5585使主处理器不必监控键盘,从而降低功耗和/或提高处理器带宽,以便执行其它功能。
可编程逻辑功能支持将常用逻辑要求集成为GPIO扩展器的一部分,从而节省电路板面积和成本。
数据表:*附件:ADP5585键盘解码器和IO扩展器中文手册.pdf
应用
要求键盘输入和I/O扩展功能的设备
特性
框图
时序图
引脚配置描述
操作理论
功能描述
事件先入先出存储器(FIFO)
在深入了解ADPD585各个模块的细节之前,理解事件FIFO的功能很重要。ADPD585能够记录多种事件。默认情况下,FIFO主要记录按键事件,比如按键按下和按键松开。不过,也可以配置通用输入(GPIO)和逻辑活动,以在FIFO上生成事件。每个事件都会生成一个事件标识(EC[4:0])。它由5位组成,其工作方式类似于FIFO的标签,这样用户随时都能知道FIFO中还剩余多少事件。
FIFO由16个8位字节段组成,用户可通过读取FIFO_x寄存器来访问。实际的FIFO是通过将FIFO_x寄存器链接在一起实现的。FIFO可以被视为一个“环形”缓冲区,在填满寄存器0x03到寄存器0x12后会重新开始。
事件FIFO由16个8位寄存器组成。每个寄存器的位[6:0]保存事件标识符,位7保存事件状态。这7位一起可识别27个不同的事件。有关事件解码,请参见表11。

当FIFO中有可用事件时,用户首先应读取事件计数EC[4:0],以确定FIFO中剩余的事件数量。读取一个事件后,所有剩余事件都会上移一个位置,EC[4:0]会相应递减。

FIFO寄存器(0x03到0x12)始终指向FIFO的顶部(即EVENT1[7:0]的位置)。如果用户试图从FIFO中的无效位置读取数据,总是会从FIFO的顶部获取数据。这确保了事件只能按其发生顺序从顶部读取,从而保证了事件顺序。
如前所述,ADPD585的部分增强功能可对FIFO中的事件进行编程计数。如果在更新控制块正在管理FIFO更新时发生了一次PC事务,会阻塞对FIFO的所有访问,直到PC事务完成。
在外部处理器读取FIFO并清除它之前,如果生成的事件多于16个,FIFO就会溢出。
如果发生溢出情况,溢出状态位会被置位。当生成的事件多于16个时,就会产生溢出中断,发出信号。
按键扫描控制器
概述
10个输入/输出引脚可配置为解码一个键盘矩阵,最大尺寸为25个开关(5×5矩阵)。也可以配置较小的矩阵,释放未使用的行和列引脚用于其他I/O功能。
通过R[4:0]引脚组成键盘矩阵的行,通过C[4:0]引脚组成键盘矩阵的列。引脚作为行被拉高,通过内部50kΩ或100kΩ电阻。引脚作为列被驱动为低电平。
全部0条评论
快来发表一下你的评论吧 !