I'm having that touch sensor ST IC ST1633i. It's integrated into an LCD. I'm trying to interface with it, but don't know or understand the actual protocol.

Here is the protocol

enter image description here

enter image description here

So I'm trying to write multiple data as shown

as shown in the figure, I have to write a start header 0xaa, then the data register that I plan to read which is 0x12.

status = HAL_I2C_Mem_Write(i2c_handler, 0xaa, 0x12, I2C_MEMADD_SIZE_8BIT, 0x01, 1, 1000);

Then I read

 nbTouch = TS_IO_Read_Multiple(0xab, 0x12, buf[0], 1);
  nbTouch = TS_IO_Read_Multiple(0xab, 0x12, buf[1], 1);
  nbTouch = TS_IO_Read_Multiple(0xab, 0x12, buf[2], 1);

In all cases Read and for Mem_Write it gives me HAL_ERROR with ACKF error I'm using I2C1.

#define DISCOVERY_I2Cx_TIMING                      ((uint32_t)0x40912732)
  • \$\begingroup\$ Kinda strange how a public datasheet says, "CONFIDENTIAL". It's almost like they're giving the entire internet an NDA... Okay back to your question. Here's a related question to what you're asking \$\endgroup\$ – KingDuken Jul 29 at 18:35
  • \$\begingroup\$ @KingDuken Did I write the functions calls correctly ? I mean it's very confusing. 0xaa as start header, and the register I want to read from is 0x12 ? \$\endgroup\$ – andre Jul 29 at 20:44
  • 1
    \$\begingroup\$ Have you probed your I2C bus from your master to slave? Usually a NACK (or how you said ACKF) indicates that there's some improper address to that slave. \$\endgroup\$ – KingDuken Jul 29 at 21:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.