There can be a few different reasons for the i2c buss to hang, and may not be 
the fault of the DS3231. For instance, if there is a software interrupt during 
an i2c read or write, that can do it. Are you using a mpu based hardware i2c 
engine, or do you bit-bang the buss?

 

If the DS3231 is battery backed up, than resetting the power will not reset the 
buss either. In cases where I use a battery backup, I use a small routine to 
test the buss at every startup, including brownout and watch dog events:

 

void I2C_Test() //test to see if I2C line is in a valid (stopped) state

{

if                            //test I2C line

   (!input(i2c_SDA))           //if SDA stuck low - Fault Condition

   {    

   I2CEN=0;                    //temporary disable I2C Hardware Module 

   output_drive(i2c_SCL);      //set SCL as output 

 while

   (!input(i2c_SDA))           //Continue loop until SDA is released (high)

    {                           

    output_toggle(i2c_SCL);    //Toggle I2C clock line till fault clears

    delay_us(10); 

    } 

   output_float(i2c_SCL);      // set SCL back as input 

   I2CEN=1;                    // re-enable I2C Hardware Module 

   }

}

 

Bill

 

 

 

From: [email protected] [mailto:[email protected]] On 
Behalf Of Luka C
Sent: Friday, January 25, 2019 3:45 PM
To: neonixie-l <[email protected]>
Subject: Re: [neonixie-l] Re: Counterfeit RTC modules

 

I have written previously about a similar incident with ATmega328p chips 
ordered from Aliexpress. They did not arrived in a reel, but just packed in a 
small plastic bag. Two of them worked fine, but Atmel Studio was unable to even 
read the ID of the third one, thus rendering it unprogrammable and useless..and 
since it's an SMD, it was not as easy as just popping it out of the socket. I 
guess they are chips which failed QC and somehow, these companies got them, 
performed a somewhat "basic check" and sold them as new ones.

 

I have also ordered a lot of 10 DS3231 chips from some other Aliexpress seller 
(they had considerable 5* ratings so I decided to give it a try). They were 
like 14$/10pcs. The chips worked, the time is still very precise after two 
years of operation of the older clock I made. However, I did notice one "bug" 
in the chip. If you keep querying the chip too often (like in an unconditional 
loop) for seconds, it will eventually hang the I2C line. The solution was to 
set a timeout for I2C read operation, and if timeout does occur, the master 
(microcontroller) has to keep clocking the SCL line until the DS3231 releases 
the bus. However, I've read some people reporting the same "bug" on multiple 
sites, so I'm not sure if it's a "bug" specific to possibly counterfeit chips 
or just a general bug that affects genuine ones as well.


On Thursday, January 3, 2019 at 1:41:52 AM UTC+1, gregebert wrote:

For now I'm going to hold off on any experiments that require code-changes. 
I'll keep this RTC chip online for additional experiments; known-good RTC will 
go into the second board-set.

It appears the alarm registers are testable with software; I dont have the 
INT/SQW pin connected in my system.

 

I'm really itching to get the NIMO lit-up and running. So close to actually 
firing it up, but I wont attempt that unless everything is 100% stable. Mindset 
is that I have only 1 chance to get it right and it must be right the first 
time. Anything that can go wrong and remain uncorrected for more than a few 
milliseconds is assumed to result in a dead NIMO tube, and I only have 1. 

 

 

-- 
You received this message because you are subscribed to the Google Groups 
"neonixie-l" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected] 
<mailto:[email protected]> .
To post to this group, send email to [email protected] 
<mailto:[email protected]> .
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/neonixie-l/9529a437-2084-41b9-af82-158aa95ff505%40googlegroups.com
 
<https://groups.google.com/d/msgid/neonixie-l/9529a437-2084-41b9-af82-158aa95ff505%40googlegroups.com?utm_medium=email&utm_source=footer>
 .
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"neonixie-l" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send an email to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/neonixie-l/003a01d4b4f0%24aaac8250%24000586f0%24%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to