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.

UCD9081: UCD9081 I2C Transactions for writing User Data and PARAMS

Part Number: UCD9081
Other Parts Discussed in Thread: TMP75

Hi,

       We use Keysight ICT Tester to program UCS9081 by I2C Transactions. We have a issue to program the device.

 a. We can  read out the data  0x1080~0x10F0 and 0xE000~0XE1F0

 b. We can program/erase the data  0x1080~0x10F0

 c.When execute the Unlock and erase the FLASH command for 0XE000, then we can not get the ack after write devie address.


I2C Write (Base address: 0xE000)
---------
Device Address: 0x6F
Register Address: 0x30
Data Length: 2
Data: 0x00 0xE0

ACK ok

I2C Write (Unlock and erase the FLASH)
---------
Device Address: 0x6F
Register Address: 0x32
Data Length: 2
Data: 0xDC 0xBA

ACK ok

I2C Write (Data address: 0xE000)
---------
Device Address: 0x6F
Register Address: 0x30
Data Length: 2
Data: 0x00 0xE0

ACK FAIL,NACK

    d. if we skip the  Unlock and erase the FLASH command for 0XE000, we can get the ack, but can not update the data from 0xe000 to 0xe1f0.

 

 Can you give us some advices to find out the root cause. thank you very much.



  • Hello

    What's the speed on the bus? Are there other i2c slaves on the same bus besides UCD9081? does your host support clock stretching? 

    0xE000 has more data to erase than 0x1080 therefore it takes more than to erase. Do you put some extra delay after erasing?

    Regards

    Yihe

  • Hello,

            

                Wait 12ms after execute the Unlock and erase the FLASH command for 0XE000,Program can test pass,but the data have not updated.and read the status register (26) bit0 to bit3 are 0 after program done.

                a.speed on the bus 22.2khz.(tester can use vector cycle from 160ns to 1.57ms, we use vector cycle 45us.f=1/45*1000=22.2khz)

                b.There are so many devices use the bus with UCD9081, these devices include tmp75,at24c04,74 buffer, and have disable the 74 buffer device in programming.

                c.Hold SCL to low about 12ms before STOP after execute unlock and erase commnad for 0XE000,can read the ack for next write command .

           We can not erase the 0XE000 range yet. please give some advices ,thanks.

  • Hello

    Have you tried your I2C hardware and software with the TI UCD9081 EVM?or you can try to use the USB-TO-GPIO Dongle to connect to your board to see whether you can use TI UCD9081 EVM to program the device?

    Regards

    Yihe

  • Hi!

    I have the same problem! Maybe they'll help me, too. I found this question in 2018, it is marked as "resolved". But I don't see a solution to this issue.

    e2e.ti.com/.../745603

  • Hello

    For the issue listed in the https://e2e.ti.com/support/power-management/f/196/t/745603#pi320995=1, we believe it is related to the customer's i2c application. Since the customer can successfully program the whole memory after receiving the i2c transaction text file. But the customer did not share what the solution is.

    But you can review the expected i2c transaction text file to see whether your i2c follows the same.

    Regards

    Yihe

  • Hello

    We haven't heard from you for a while and assumed that the issue has been solved. Please reply if any further help is needed.

    Regards

    Yihe

  • To my regret, the problem is not solved. I paused.