Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Problem with RTC 1037- Works for about half an hour, after that that will not work

Status
Not open for further replies.

sreepss

Full Member level 4
Joined
Jun 10, 2009
Messages
204
Helped
29
Reputation
60
Reaction score
27
Trophy points
1,308
Location
Cochin, Kerala, India
Activity points
2,376
Problem with RTC 1307- Works for about half an hour, after that that will not work

Hai all . Im in a project which uses the RTC DS1307 along with PIC18F4550. the problem was, the RTC works well for about half an hour. and after that, the time will be suspended.. the RTC was connected to 5V and a battery backup was provided. an Eprom was also connected to the same i2c bus. whts wrong with my circuit???

RTC.jpg
 
Last edited:

Hai all . Im in a project which uses the RTC DS1037 along with PIC18F4550. the problem was, the RTC works well for about half an hour. and after that, the time will be suspended.. the RTC was connected to 5V and a battery backup was provided. an Eprom was also connected to the same i2c bus. whts wrong with my circuit???

View attachment 66303

Normally this happens when two micro try to communicate two slave I2C at the same time,

For communication with I2C slave, rules must be follow, i2c start, i2c address than work after that i2c stop.

If for the some reason, PIC micro already established i2c communication with one slave and and try to establish with another slave without stopping communication with the first one will cause error.

You need to check your program carefully, or do one step, disable communication with EEPROM and than check your program with simple RTC. if your RTC work well after disabling I2C EEPROM, than you need to check your program and need some troubleshooting.

I think you might get cleared
 

...DS1037 means DS1307, as already mentioned on Picture

I noticed it.

But the information at image can´t be seen by keyword search queries.
:wink:





...an Eprom was also connected to the same i2c bus. whts wrong with my circuit???

I already faced to similar problem.
When we connect I2C devices at same Bus with diferent adress size, communication turns unpredictible.

The EEPROM device has a 16bit adress, while RTC has 8bit adress.







+++
 
Last edited:
  • Like
Reactions: deniah

    deniah

    Points: 2
    Helpful Answer Positive Rating
I already faced to similar problem.
When we connect I2C devices at same Bus with diferent adress size, communication turns unpredictible.

The EEPROM device has a 16bit adress, while RTC has 8bit adress.

Their is no such problem with 16bit or 8 bit, 24C01 to 24C16 has 8 bit address and 24C32 and 24C64 has 16 bits address.

I have done same project and had faced same problem, but it gave me information that this problem occur when micro is communicating with one device and also try to communicate with the other one without stopping first device.

The solution for this problem is use a function or anything which responsibility is to check I2C bus, wither their is a communication already or not, if their are no communication than it may allow to start I2C communication.

Very simple way to obtain such code is to use a char byte, when a i2C start function called write some value in char byte, when I2C stop function called reset that char byte. Now make if else check for that char byte, if it is not Zero than don't start I2C start function, if it is zero you may start I2C function.

hope it may help you
 
1) Make sure if LED is accepted on the SQR output pin.
2) Does LED keep blinking when you say, the clock is suspended?
3 ) try removing EEPROM on I2C ( in Code ) and see if the problem persists?
 

There is no such problem with 16bit or 8 bit...I have done same project and had faced same problem, but it gave me information that this problem occur when micro is communicating with one device and also try to communicate with the other one without stopping first device.

The solution for this problem is use a function or anything which responsibility is to check I2C bus, wither their is a communication already or not, if their are no communication than it may allow to start I2C communication...

I never realized that constraints could be worked around.
Thanks for remarking.


+++
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top