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 FIFO error

Other Parts Discussed in Thread: TCA8418

Team,

My customer is using TCA8418 as the key board application for the handset. They are reporting the FIFO error issue:

1. Read registers, all the register value are normal, and FIFO is empty;

2. Continue press the button, sometime it will report a wrong button value. And the wrong button value is always the previous pressed button, not the currently pressed one.

3. They are using the trace to debug it, add the break point. they found when the button was released, I2C transmit data is the button value of the previous press.

So they think it is a FIFO error, how to solve it?

They had removed all the capacitors from the row to ground.

Best Regards,

Peter

  • Hello Peter,

    At first glance, it sounds like you have a few things going on here.

    1) I notice that you mention they had to remove capacitors from row to ground. They should not add any external capacitance, because the internal pull-up resistors are only 100k ohms, and will not be strong enough to pull up the node if there is a capacitor. This results in extra and incorrect button pushes being registered. There are 2 ways to fix issues like this. 1) Remove capacitance and 2) Add additional pull-up resistors to help the TCA8418 to the row pins (adding a 20k pull up for example will help the voltage rise fast enough to properly read.

    2) You mention your FIFO seems to be lagging one button press. Can you tell me which register they are reading from when they read the FIFO? It sounds like they might be reading the incorrect register.

  • Hi Jonathan,

    TKS for your reply.

    They only read 0x04 register, they gave the example as below:
    1. Press button '1' '2' '3' '4' in sequence, pressed and released;
    2. Then press button '5' and hold, the data in 0x04 register is button '1' pressed, and released button '5', the data in 0x04 is button '1' released.
    3. The press button '5' again, still button one.

    I found they may have problem on POR, the raising edge of the power supply is very slow. But they issued a hardware reset on the /reset pin. So here is the question: if pulling /reset pin could reset the whole device?

    Best Regards,
    Peter Wei
  • Hello Peter,

    0x04 is the correct register to read...

    Interesting. The POR may be the issue. How slow is "very slow".

    Your question: Does pulling /RESET pin to ground reset the whole device?
    Answer: Yes, it should. However, if the power supply ramp rate is outside of our recommended specifications, it is possible the device does not reset properly.

    Please see page 42 in the datasheet, section 10: Power Supply Recommendations for more information regarding this.


    You mention that you think it might be POR related, can you explain why you think this is the case?