ADP5587:多功能移动 I/O 扩展器与键盘控制器的深度解析

电子说

1.4w人已加入

描述

ADP5587:多功能移动 I/O 扩展器与键盘控制器的深度解析

在当今的电子设备设计中,尤其是在移动平台领域,对于扩展 I/O 端口和处理键盘输入的需求日益增长。ADP5587 作为一款专为满足这些需求而设计的芯片,为工程师们提供了一个强大而灵活的解决方案。下面将对 ADP5587 的特性、工作原理、应用等方面进行详细解析。

文件下载:ADP5587.pdf

一、ADP5587 关键特性

1. 端口扩展与键盘矩阵配置

ADP5587 具备 18 - GPIO 端口扩展能力,或者可配置为 10×8 的键盘矩阵,最多支持 80 个按键。其 GPIO 可灵活配置为通用输入(GPI)、通用输出(GPO)以及键盘的行或列,为不同的应用场景提供了极大的灵活性。

2. 电气特性与低功耗设计

  • 宽电压范围:支持 1.65 V 至 3.6 V 的工作电压,适用于多种电源环境。
  • 低功耗:典型的空闲电流仅为 1 μA,典型的轮询电流为 55 μA,有效降低了设备的功耗。

    3. 通信接口与中断功能

  • I2C 接口:采用 I2C 接口并支持自动增量功能,减少了处理器的干预,节省了处理器带宽和电流消耗。
  • 中断功能:具有开放漏极中断输出,支持按键按下和释放中断、GPI 中断,且 GPI 中断的电平可编程。

    4. 其他特性

  • 按键锁定功能:可对键盘进行锁定,防止误操作,并可选择是否在按键按下和释放时触发中断。
  • 按键事件计数与溢出中断:配备按键事件计数器,当事件溢出时可触发中断。
  • 去抖功能:在复位线和 GPI 上具有 275 μs 的去抖时间,确保信号的稳定性。

二、工作原理

1. 键盘操作

  • 矩阵配置:通过设置寄存器 0x1D 至 0x1F 中的相应位,可将任意数量的行和列配置为键盘矩阵的一部分。
  • 按键检测:当有按键按下时,内部状态机检测行引脚,触发内部中断,并启动按键扫描周期以确定涉及的列。按键按下 25 ms 后,状态机在按键事件状态寄存器中设置相应的按键编号,并设置 KE_INT 位。若 KE_IEN 字段设置,则向主机处理器发送中断。
  • 按键释放检测:按键释放 25 ms 或更长时间后,状态机清除按键事件状态寄存器中的按键按下位。由于按键释放可能与按键扫描采样周期不同步,按键释放的检测可能需要 25 ms 至 50 ms。

    2. 按键事件跟踪

  • FIFO 机制:10 个按键事件寄存器作为 FIFO 工作,按按键按下和释放的顺序存储事件。
  • 事件计数:按键事件计数器(KEC 字段)记录按键事件的数量,最多可记录 10 个事件。

    3. 按键事件溢出处理

    当 FIFO 满时,额外的事件会设置寄存器 0x02 中的 OVR_FLOW_INT 位。若 OVR_FLOW_IEN 位设置,主机处理器将被中断。通过设置 OVR_FLOW_M 位,可选择丢弃新事件或覆盖旧数据。

    4. 自动增量功能

    在 I2C 读取访问期间,ADP5587 支持自动增量,用户无需为后续地址发送读取命令,减少了处理器的干预。

三、通用输入输出(GPIO)功能

1. 通用输入(GPI)

  • 配置与功能:用户可将部分或全部 GPIO 配置为 GPI,并可开启上拉电阻和中断生成功能,减少软件监控和处理器交互,节省功耗。
  • 中断级别:GPI 中断的编程级别决定了 GPI 引脚的有效电平。
  • 事件跟踪:配置为 GPI 的列或行可参与按键事件表,生成按键事件中断。

    2. 通用输出(GPO)

    用户可将部分或全部 GPIO 配置为 GPO,用于主机处理器的额外使能或触发输出。配置为 GPO 时,数字缓冲器将引脚驱动为 0 V 或 VCC。

    3. 去抖与中断配置

  • 去抖:GPIO 配置为 GPI 时,具有 275 μs 的去抖时间,复位线也有 275 μs 的去抖时间。
  • 中断配置:通过设置寄存器 0x01 中的 INT_CFG 位,可灵活控制中断的断言和去断言。

四、I2C 编程与数字控制

1. I2C 地址与通信

LFCSP 封装提供两种 I2C 地址选项,默认写地址为 0x68,读地址为 0x69;ADP5587ACPZ - 1 - R7 的写地址为 0x60,读地址为 0x61。所有通信通过 I2C 兼容的串行接口进行。

2. 读写序列

  • 写序列:起始条件后发送芯片写地址,接着发送寄存器地址和数据,最后以停止条件结束。
  • 读序列:起始条件后发送芯片写地址和寄存器地址,然后重复起始条件并发送芯片读地址,读取寄存器内容,最后以停止条件结束。

五、寄存器功能

1. 寄存器概述

所有寄存器复位时为 0,除特殊说明外,均为读写寄存器。未使用的位读取为 0,中断位通过写入 1 清除,按键按下、释放和 GPIO 中断状态寄存器在读取时清除。

2. 部分重要寄存器

  • CFG(寄存器 0x01):配置 I2C 自动增量、GPI 事件模式、溢出模式、中断配置等功能。
  • INT_STAT(寄存器 0x02):记录溢出中断、键盘锁定中断、GPI 中断和按键事件中断的状态。
  • KEY_LCK_EC_STAT(寄存器 0x03):控制键盘锁定功能和按键事件计数。
  • KEY_EVENTx(寄存器 0x04 至 0x0D):作为 FIFO 存储按键事件和状态。

六、应用信息

1. 应用概述

ADP5587 适用于需要扩展键盘和 GPIO 的移动平台,如 QWERTY 类型的手机。其可编程寄存器为设计人员提供了灵活的配置选项。

2. 键盘电流

键盘电流消耗取决于按键数量和按下的行与列。单键按下时,典型电流为 55 μA;两键按下时,典型电流为 100 μA。

七、总结

ADP5587 作为一款功能强大的移动 I/O 扩展器和键盘控制器,具有丰富的特性和灵活的配置选项。其低功耗设计、完善的中断功能以及强大的按键事件处理能力,使其成为移动平台设计中的理想选择。在实际应用中,工程师们可以根据具体需求对其进行合理配置,以实现最佳的性能和用户体验。你在使用 ADP5587 过程中遇到过哪些问题呢?欢迎在评论区分享你的经验和见解。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分