本帖最后由 andeyqi 于 2019-2-20 13:36 编辑
IIC键盘使用的控制芯片为PCA9555芯片手册见附件,根据芯片手册的描述该芯片的一共有四组寄存器,每组寄存器包含两个同类的寄存器。
Registers 0 and 1: Input port registers /* 只读的输入寄存器 */
Registers 2 and 3: Output port reg /* 只读的输出寄存器 */
Registers 4 and 5: Polarity Inversion registers /* input 输入反向寄存器 */Registers 6 and 7: Configuration registers /* 输入输出寄存器 */
根据文档的描述以上四组寄存器主需要配置Registers 6 and 7 IO的输入输出方向即可,配置Registers 4 and 5 只是会影响 Registers 0 and 1: Input port registers 读取的值时是否是反向的,我们使用默认配置就可以,根据官方的电路图配置IO的输入方向配置为1为输入,0为输出。
根据电路图配置红框的引脚为输入,其余引脚为输出。
内部控制逻辑图:
按照初步的理解,只要设置configure 寄存器,电路对应的引脚配置为输入,键盘有输入时会INT引脚会有中断输出,MCU检测到中断信号去读取input寄存器就可以读取到相应的按键值,以上只是个人的理解,如果有误有了解的该芯片的欢迎指正,下一步进行编码验证。
=======================资料=======================
|