cancel
Showing results for 
Search instead for 
Did you mean: 

STC3100, can't write register (no last ACK)

EDust
Associate

Hi,

I'm facing some really weird problem with STC3100. After powerup I try to enable operating mode by writing 0x10 value (GG_RUN bit) to register REG_MODE at address 0x00. I2C address is 0x70 as default. STC3100 sends ACK for I2C address, also for register address, but NEVER for data byte, i.e. I never get last ACK. I tried to change clock frequency 10KHz/100KHz/400Khz without any success. How that can be?

0690X000009jBqOQAU.png

Same magnified:

0690X000009jBppQAE.png

0690X000009jBqBQAU.png

5 REPLIES 5
James Sullivan
Associate II

did you ever find out what the issue was ?

EDust
Associate

Hello!

Unfortunately no. I have created this thread with a hope to get some support from ST, but didn't get any answer. I replaced STC3100 with STC3115 in my device.

STC3115 works properly without any issues at all.

James Sullivan
Associate II

OK, I am seeing the same thing (lucky me)

Thanks for the recommendation - I will take a look.

James Sullivan
Associate II

Hello,

I believe that I have tracked the problem down to the part being in under-voltage lock-out

When the power to the part is below the threshold of 2.7 volts - I can't write the registers.

Above a threshold - it works.

What I am seeing now is the part sees any short excursion below the threshold, and immediately goes into lock-out.

I will add an R-C filter for the power in the future.

Gael_Miramond
ST Employee

Hello EDust, 

Better late than never but it could help other people. 

A possibility is that the edges of SCL and SDA are too steep. A possible solution is to add resistors on SDA and SCT to reduce the edges. 

Gaël