Is there a way to check and make sure a Dallas RTC chip has juice left? I have a board that needs one, and a chip with a manufacture date of 2005 but I don't know if it has power left or not, and I would rather be able to check before I order a new one..
Unfortunately there is no easy way to check most of the 1287, 12887, 1387, 1587 (or equal) type RTC because they cut the battery pins off or use them internal to the black box.
The only way to check is to grind a bit of the plastic to expose those two pins (like you were doing an ext. battery mod) and then use a voltmeter to check. iirc a few of the versions you only need to grind where the +bat is and check it against ground.
added: I can confirm that on a DS12887 series that you only need to grind-n-find the bat + at pin 20. The bat - is tied to the ground pin 12 (and pin 16 but that would be missing).
Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun
I was looking into the same and just for fun started building a simple program for Arduino for quickly testing the Dallas chips (reading RTC, loading, writing). I'll share it once done.
I was looking into the same and just for fun started building a simple program for Arduino for quickly testing the Dallas chips (reading RTC, loading, writing). I'll share it once done.
Hi, just came across your post looking for exactly what you're proposing. Did you ever get it done?
I was looking into the same and just for fun started building a simple program for Arduino for quickly testing the Dallas chips (reading RTC, loading, writing). I'll share it once done.
Hi, just came across your post looking for exactly what you're proposing. Did you ever get it done?
I have a simple arduino circuit and sketch with the intention of testing my Dallas 1386 RTC. This one came from an SGI Indy, which I got (for free from freecycle) in 2009. After 16 years I've finally gotten around to scraping off all the epoxy around the battery and removing it.
61 pinMode(LED_BUILTIN, OUTPUT); 62 RtcInit(); 63 Serial.begin(9600); 64} 65 66void loop() { 67 // put your main code here, to run repeatedly: 68 digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) 69 delay(250); // wait for a second 70 digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW 71 delay(250); // wait for a second 72 Serial.print('\r'); 73 Serial.print(++gCounter); 74 if (Serial.available() > 0) { 75 int inByte = Serial.read(); // get incoming byte 76 Serial.print("You typed:'"); 77 Serial.print((char)inByte); 78 Serial.print('\''); 79 if(inByte=='w' || inByte=='r') { 80 RtcTest(inByte=='w'); 81 Serial.println(); 82 } 83 } 84}
You run the code, and observe monitor. Type 'r'<return> to read bit 0 of bytes 0 and 1; 'w'<return> to write back the inverse of bit 0 of bytes 0 and 1 to bytes 0 and 1.
So, really, I figured I could test whether data can be read or written with this and whether it's retained when I add a replacement battery. As yet, I haven't gotten it to work though. With the RTC powered and the sketch running and typing 'r'<return> I see
Data[0]=0, Data[1]=0; when I try 'w'<return> I see
Data[0]=1, Data[1]=0 (didn't expect that) and finally when I try 'r' again I see:
Data[0]=0, Data[1]=0 , but I'm probably missing something from the datasheet: