This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TCA8418:TCA8418RTWR 密钥扫描问题

Guru**** 2386600 points
Other Parts Discussed in Thread: TCA8418
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1503757/tca8418-tca8418rtwr-key-scan-issue

器件型号:TCA8418

工具/软件:

大家好!

我们连接了一个定制 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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您尚未显示原理图。

    1.数据表指出"一次只有1列被驱动为低电平"。 当行输入为低时、按下的键必须在该列中。

    2.按键将行连接到列。 使用弱上拉电阻器且 COLL 输出强拉低时、结果为低电平。

    3. GPIO 不是关键。

    4.请注意,所有寄存器都必须正确且一致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Onur:

    今天是美国假期、因此团队已出场。 我们将在下周初回复您。 感谢您的理解。

    此致、

    插孔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Onur:

    [报价 userid="651228" url="~/support/interface-group/interface/f/interface-forum/1503757/tca8418-tca8418rtwr-key-scan-issue

    1)"TCA8418具有集成 ESD 保护的 I2C 控制型键盘扫描 IC "页面37具有以下表述:  

    在图26的键盘设置中、有一个4x3键盘矩阵、连接到 ROW0-Row3和 COL0-col2。 所有行都配置为带有上拉电阻器的输入。 列配置为输出、驱动为低电平。 按下按键后、行中的一个输入将被拉低、让 TCA8418知道已按下按键、然后 TCA8418将启动按键扫描算法。 在此算法中 会扫描列上的输出低电平 、这样一次只有1列被驱动为低电平。 当对每一列执行此操作时、TCA8418将读取行输入、以确定正在按下列上的哪个键。

    因此、在空闲连接中、我们的 ROWx 引脚为高电平、在内部上拉、COLL 引脚为低电平。

    按下一个键后、应将 ROWx 引脚拉低。  

    然后、该语句告诉我们 IC 将执行"扫描"列的输出低电平、但它们是否都有低电平信号? 这是什么意思? IC 如何判断在 ROWx 中按下了哪个按钮?

    [/报价]

    关键是一次只有1列被驱动为低电平。 它会单独扫描每个 COL、而不是同时扫描每个 COL。  

    [报价 userid="651228" url="~/support/interface-group/interface/f/interface-forum/1503757/tca8418-tca8418rtwr-key-scan-issue

    2) ROWx 在空闲扫描连接中被上拉。 那么、按下按钮如何 产生下拉或低电平信号呢? 我无法理解 ROWx-Button-Colx 的关系。 有人能详细说明吗?

    我们的当前设置如下所示:

    按下键盘按钮不会改变 ROWx 状态、所有行都保持高位。

    COLL 变为高电平。

    不进行扫描。

    INT 始终保持高电平。

    [/报价]

    行通过断路开关连接到 Col 引脚。  

    如果一行被弱上拉为高电平、而 COL 被强驱动为低电平、则当按下开关将该行连接到 COL 时、COL 引脚输出会将弱行输入拉低。 按下开关时、ROW 和 COL 将处于相同状态。  

    当未按下开关时、行是带 PU 电阻的输入、因此行引脚为逻辑高电平。  

    COL 输出低电平、但由于开关开路、行输入保持高电平逻辑、这意味着未按开关。  

    确保 KE_IEN = 1、以便在发生关键事件时在/INT 上将中断置为有效。  

    Unknown 说:
    3) Idk、如果它相关或指示任何错误、 GPIO_DAT_STAT1–3 (地址0x14–0x16)的值为0xFF、0xFF 和0x03、我无法清除或重写它们。

    如果 I/O 正在键盘扫描模式下使用、则需要在 KP_GPIOx 寄存器中将其设置为"1"。 默认值为"0"、使得所有行和 COL 引脚都单独控制 I/O、而不是键盘扫描。  

    GPIO_DAT_STAT 特定于设置为 GPIO 模式的引脚。 非键盘扫描模式。  

    此致、

    Tyler