Other Parts Discussed in Thread: TCA8418
https://e2e.ti.com/support/interface-group/interface/f/interface-forum/897705/tca8418-rtwr
器件型号:TCA8418我没有从该器件生成中断。 我将 KEY_INT 作为上拉电阻连接到10ku 电阻器。 按键时没有任何中断。 通过支持32使用 Arduino 界面。 phishman 的 TCA8418库。 请提供任何帮助。
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.
Other Parts Discussed in Thread: TCA8418
https://e2e.ti.com/support/interface-group/interface/f/interface-forum/897705/tca8418-rtwr
器件型号:TCA8418我没有从该器件生成中断。 我将 KEY_INT 作为上拉电阻连接到10ku 电阻器。 按键时没有任何中断。 通过支持32使用 Arduino 界面。 phishman 的 TCA8418库。 请提供任何帮助。
//在 COL0-COL4、ROW0-RoW4上配置4x4矩阵并启用中断
Keypad.begin(ROW0|ROW1|ROW2|ROW3、COL0|col1|col2|col3、
CFG_KE_IE|CFG_AI|CFG_INT_CFG|CFG_GPI_E_CFG);
这可能是4x4键盘的错误位。 第3行启用中断是否正确或我需要不同的中断?
这是默认值...
//在 COL0-COL4、ROW0-RoW4上配置4x4矩阵并启用中断
Keypad.begin(ROW0|ROW1|ROW2|ROW3、COL0|col1|col2|col3、
CFG_KE_IEG|CFG_OVR_FLOG_IEG|CFG_INT_CFG|CFG_OVR_FLOG_M);
您好、Khary、
对于寄存器值、您能为我提供每个寄存器的读取值吗? 我不是使用您所使用的软件/代码、因此您提供的代码不能帮助我了解正在执行的操作。
类似如下:
0x01h =>在此处插入十六进制值<<
0x02h =>>在此处插入十六进制值<<
等
"引脚24上的 key_INT 应该使用什么上拉电阻器。 我尝试了10k、似乎挂起了系统。"
INT 电阻的影响不大。 您使用的值越小、您将使用的功耗就越高、但反过来、您将在引脚上具有较强的上拉偏置。 10k Ω 正常。
示波器图。 看起来您正在探测 SCL 线路、我希望 INT 不会像当前那样切换。
我想看到 SDA/SCL 的 I2C 事务、以确保通信看起来正常。
-Bobby
您的原理图看起来不错。
您有一个去耦电容器。
引脚排列与数据表匹配。
网名称与引脚名称匹配。
复位时出现上拉。
"是否需要通过上拉电阻器将这些电阻器连接到 VCC?"
如果需要、可以将这些行连接到10k 上拉电阻器、但不需要100%上拉电阻器。
--------------------------
"好的、在0x01寄存器上、我有187个、所以中断被启用了、似乎只进行一次写入。 则0x01寄存器读为-1。 这在我按下按钮后发生。 您认为这是怎么回事...>>?"
因此十进制的187是0xBBh。 如果您在寄存器中写入0xBBh 并在之后读取0x01h、则听起来好像您没有正确地写入器件。 您应该能够读取您写入寄存器0x01h 的内容。
当您对0x01h 执行写入操作时、请将 SDA/SCL 引脚的范围设为热。 使 Suore 当您写入数据时、您会从器件获得 ACK。
-Bobby
您能否验证寄存器中的数据(按下按钮前后):
0x1D
0x1E
0x1f
0x03
按下按钮后、您应该会看到一个 INT GET 触发事件、读取0x02时应告知导致 INT 的原因。
读取0x03h 应告知您收集了多少个关键事件(如果按下然后松开1个按钮、则为2)
读取寄存器0x04h 应该会告诉你哪个按钮被按下(再次读取以查看按钮被释放)
不过、这一切假设您将0x1D/0x1E/0x1F 正确配置为键盘矩阵的一部分。
-Bobby