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.