工具/软件:
大家好!
我们连接了一个定制 IM.X8MQ 板和一个键盘电路、包括 TCA8418RTWR。
配置的寄存器:
0x01 ->0x19 (TCA8418_keypad 驱动程序执行此操作)
0x1D -> 0x0F (4行)
0x1E -> 0x0F (4列)
我一直在处理数据表和文档、目前我有一些困惑。
1)"TCA8418具有集成 ESD 保护的 I2C 控制型键盘扫描 IC "页面37具有以下表述:
在图26的键盘设置中、有一个4x3键盘矩阵、连接到 ROW0-Row3和 COL0-col2。 所有行都配置为带有上拉电阻器的输入。 列配置为输出、驱动为低电平。 按下按键后、行中的一个输入将被拉低、让 TCA8418知道已按下按键、然后 TCA8418将启动按键扫描算法。 在此算法中 会扫描列上的输出低电平 、这样一次只有1列被驱动为低电平。 当对每一列执行此操作时、TCA8418将读取行输入、以确定正在按下列上的哪个键。
因此、在空闲连接中、我们的 ROWx 引脚为高电平、在内部上拉、COLL 引脚为低电平。
按下一个键后、应将 ROWx 引脚拉低。
然后、该语句告诉我们 IC 将执行"扫描"列的输出低电平、但它们是否都有低电平信号? 这是什么意思? IC 如何判断在 ROWx 中按下了哪个按钮?
2) ROWx 在空闲扫描连接中被上拉。 那么、按下按钮如何 产生下拉或低电平信号呢? 我无法理解 ROWx-Button-Colx 的关系。 有人能详细说明吗?
我们的当前设置如下所示:
按下键盘按钮不会改变 ROWx 状态、所有行都保持高位。
COLL 变为高电平。
不进行扫描。
INT 始终保持高电平。
3) Idk、如果它相关或指示任何错误、 GPIO_DAT_STAT1–3 (地址0x14–0x16)的值为0xFF、0xFF 和0x03、我无法清除或重写它们。
提前感谢、
Onur