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.

TCA8424- Other I2C Address option

Other Parts Discussed in Thread: TCA8424, TCA8418, TCA8418E, MSP430G2553, TCA9546A, TCA9543A

Hello team,

One of our customer wants to use several TCA8424 on the I2C bus, but the device has a unique I2C ID.

According to the datasheet of TCA8424 , " Other I2C address options are available Please contact your local TI salesperson for devices with alternate I2C address". Customer is interested for that. How to can they get devices with different I2C address?

Note that the EVM allows to change the I2C address, but this is not a permanent change. After power recycle it goes back to the default address.

Can you please help?

Best regards,

Mizanur

Centralized Apps, EMEA

  • Hello Mizanur,

    I'll have to look into this question more closely, as it has been a while since I reviewed this funcitonality.

    While I do that, can you explain how the customer is wanting to use this device?
    Are they specifically wanting the HID over I2C funcitonality? Or are they only looking for a keypad scanner.

    If they want a keypad scanner only, and don't necessarily need to the HID over I2C functionality, we find that the TCA8418[E] if often times picked over the TCA8424 due to ease of design. The TCA8424 must be flashed/programmed before it is used, which is where the I2C address bits are set.
  • Hello Jonathan,

    I understand they need a 3.3V Keyscan -IC with 60 keys and want to be able to switch several keyboards together.
    Will have the customer explain their needs so that you can help him.

    Thanks,
    Mizanur
  • Mizanur,

    From what I'm hearing, if 60 keys is the requirement, and they want to switch several keyboards together, there's a few approaches i hear.


    the TCA8424 supports 2 keyboards (through a function key modifier). Depending on how they wish to switch the keyboards, it may be easier to implement the multiple keyboards in software. The TCA8418E is much easier to support in Linux, since open source drivers exist by the linux community.
  • Hello, this is the customer.
    We choosed the TCA8424 because the possibility to change the I2C address and thus being able to run several keyscan circuits in parallel on the same I2C bus.
    We bought the EVAL board and were now able to test the unprogrammed TCA8424 together with our Linux hardware. We're just reading some bytes from the I2C address after an interrupt change. No problem with that.

    The EVAL board is connected with a MSP430G2553 launchpad to be controlled by a Windows application. With this setup it shall be possible to program the TCA8424 OTP, as explained by TI application note SCDU004.
    Currently we are stuck at this point. Trying to program the OTP with just the first address, which is its I2C address, does not work.

    And there is no information in the datasheet how programming has to be done. I understand from the EVAL board schematic that the TEST pin has to have a programming voltage.
    We would like to do an in circuit programming during production.
  • Meanwhile we were able to program the OTP in the EVAL board and analyzed the interface to the circuit.
    What happens on I2C bus when programming just those 22 bytes which are visible in documentation SCDU004 on page 30
    "91 1E 00 00 01 AA 00 30 00 00 04 0B 00 00 05 03 00 00 06 00 07 47" is the following:

    W 3B 00 06 00 01
    R 3B 00 00 00 00 00 00 00 00 00 00 00
    voltage on pin TEST changes to 7.2V
    wait 70ms
    W 3B 00 A0 91 1E 00 00 01 AA 00 30 00 00 04 0B 00 00 05 03 00 00 06 00 07 47
    W 3B C5 C5 80
    W 3B C7 C5 80
    W 3B 00 06 00 00
    W 3B C6 C5 06
    W 3B C7 C5 CA
    W 3B C7 C5 0C
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    W 3B C7 C5 1A
    W 3B C7 C5 0E 0F 0E
    voltage on pin TEST changes to 2.3V
    W 3B C7 C5 1A
    W 3B C7 C5 2A
    Interrupt changes to 0V
    wait 500ms
    voltage on pin TEST changes to 0V

    After that procedure the I2C address of the circuit was permanently changed to 0x90 instead of the original 0x76.

    We would still like to receive some official documentation for this programming procedure.
  • Hello Thomas,

    I want to be more clear when I say that the TCA8424 supports 2 keyboards. I mean to say that it supports 2 key maps through the use of a function key. I didn't mean to imply that it can work with 2 physically separate keyboards.

    In regards to the programming procedure, we have not released a guide on the OTP programming method. We recommend the use of the TCA8418 over the TCA8424.

    If you desire multiple keypad scanners on a single I2C line, I would also suggest the use of an I2C switch (such at TCA9546A) to switch the paths on or off for the keypad scanner you need.
  • Ok, seems we will give up with the TCA8424 because of two problems.

    First one was already explained, we would like to follow programming requirements. But after observation of the EVAL board behaviour that's not the biggest issue.

    The second problem is the following. After programming the OTP, the I2C address successfully changed, but the behaviour changed too.
    An unprogrammed TCA8424 generated interrupts and gave information on the pressed keys.
    A partly programmed one (e.g. only byte 1 = I2C address) just generates interrupts on some keystrokes. A programmed one does nothing. We used the programming file from TI, attached to this post: e2e.ti.com/.../1497751

    Thanks for the hint using TCA8418 and an I2C switch. We will have a look on those,

    Regards
    Thomas

  • My software colleagues don't like the concept of having only one keyscan device addressable at a time.
    Too bad that just changing the I2C address of the TCA8424 was unsuccessful.

    a) Would be great to get a TCA8424 programming file from TI which supports only the I2C address change. Keeping the other behaviour as beeing unprogrammed should be possible.

    b) Instead of using a simple I2C switch (TCA9543A) together with the TCA8418, we are now considerung a LTC4316 (Single I2C Address Translator) together with the TCA8418. Is such a circuit also available from TI? It's bad to go this direction because it increases costs.