So this evening, I got into a discussion with good sir BrandonW on our IRC/SAX channel #cemetech about the CR1620 backup battery used in TI-83, TI-83+/SE, and TI-84+/SE graphing calculators.

#Cemetech on EfNet wrote:
+KermM_: I bet the calculator could run for quite a few minutes on the backup battery
+KermM_: I'd be interested in testing that one day
+BrandonW: Two seconds at most, I already tested it with OS2.
+KermM_: ah
+KermM_: really, only two seconds? that doesn't make any sense to me
+KermM_: it's a 75mAh battery
+BrandonW: It's also 3V, and the calculator needs twice that.
+KermM_: hold on, hold on
+BrandonW: Either 1.5V or 3V, I forget.
+KermM_: an AAA is about 1250 mAh
+KermM_: four AAAs are therefore 5000mAh
+KermM_: in parallel.
+KermM_: We have them in series, so we get 1250mAh at 6V
+KermM_: =1250*10^-3*6 = 7.5Wh
+KermM_: the backup battery provides 3V at 75mAh
+KermM_: so 0.075*3 = 0.225Wh
+KermM_: assuming that the circuit they use to step up the power is really really bad, say 60% efficient
+KermM_: that's 0.135Wh at 6V
+KermM_: if 0.135Wh lasts 2 seconds, then the AAAs at 7Wh would last...
+BrandonW: In an OS that doesn't check bit 0 of port 2, it lasts for a couple of seconds and then the LCD fades away.
+KermM_: 103.7 seconds maximum
+KermM_: ie, the AAAs are 50 times as powerful, but if you consider that a TI calculator can operate for, what, at least 8 continuous hours on a set of AAAs?
+KermM_: they're certainly not (8*3600)/2 = 14400 times as powerful
+KermM_: so either something odd is happening on the hardware level
+KermM_: or TI did a particularly poor job implementing the power conversion
+KermM_: consider that a much smaller battery can power a watch LCD and "processor" and crystal for months!
+KermM_: sure, it's a giant LCD by comparison, and an immense processor
+KermM_: but no where near 5 million times as power-hungry, if you say a watch battery lasts 4 months
+BrandonW: Write a small program that resets the flag, pull the battery, and see what happens.
+KermM_: I totally believe you
+KermM_: I'm just very curious now how exactly the schematics for this thing look
@tifreak: I am guessing it might have something to do with not wanting to wear out that battery? I mean, they probably don't want people to have to worry about replacing it often at all
+KermM_: tifreak, BrandonW, a proposition.
+KermM_: perhaps the backup battery keeps a capacitor topped off
+BrandonW: The flag you actually want to reset is 7,(iy+0Fh).
+KermM_: and when you pull the main batts, it's actually powering itself off said capacitor, not the backup battery directly?
+BrandonW: It makes good sense to want to prevent it from running without the AAA batteries for more than a few seconds, because all they need to do is execute that small bit of code.
+KermM_: I have a calc motherboard right here, lemme take a look

My hypothesis is that the running time with no AAAs is on the order of one to two seconds because the calculator is not directly running off the backup battery, instead drawing power from something like a capacitor charged up by the backup battery. I whipped out the dead motherboard from one of the TI-83+s I lobotomized to figure out the partial pinout of the mysterious TI REF 9815455GAII integrated circuit, and started tracing out, well, traces. I was mostly able to find my way around, and it looks like the battery is charging a 100uF capacitor on the left underside of the TI-83+ PCB (hardware revision XR303, anyway) right underneath the Flash chip. I checked one final fact with BrandonW, to make sure that his 2 seconds of battery life didn't leave the backup completely drained (ie, that the 2 seconds were using only a tiny fraction of the CR1620's capacity):

#Cemetech on EfNet wrote:
+KermM_: were you able to repeatedly do that [run the calc from the backup battery for 2 seconds] with OS2?
+BrandonW: Yes.
+KermM_: If you can repeatedly run it for two seconds or so off the backup battery, then my hypothesis is correct
+KermM_: excellent, thanks

Discuss.
Why does TI do such strange things?
It's actually quite smart. This is why you're able to pull a battery from within the OS and RAM doesn't reset -- _getKey enables the second hardware timer which senses that the battery has been pulled, at which point it stores a special value for the RAM checksum (which is checked at boot) and then turns off. When re-inserting the battery and booting the calculator, it checks for the special RAM checksum value and decides not to reset.
CalcFan52 wrote:
Why does TI do such strange things?
Well, in this case it kinda makes sense, since there's no sense letting your backup battery run flat while you use the calculator. BrandonW found that the calculator only needs to run for a fraction of a second on the backup battery's charge, to let it update the RAM checksum so that the calculator will boot from the boot code and RAM Clear the next time you turn it on.
That's really neat. I didn't even know that stuff could be controlled from software alone, I thought it was all hardwired.
quigibo wrote:
That's really neat. I didn't even know that stuff could be controlled from software alone, I thought it was all hardwired.
I think we all do. Up until BrandonW explained it to me, I intuited that pulling an AAA battery would cut power, erasing the RAM and causing it to clear, logical enough. I would presume that most people think/thought somewhere along the same lines.

On the subject of fun facts about the TI-OS, BrandonW discovered some interesting things about the parser while helping me solve a Doors CS bug/limitation, so I'll try to remember to post about that tomorrow.
So, I know little about ASM and even less about EE, but would it perhaps be possible to have an ASM program detect a battery pull / dead battery so that if it died mid-execution you could use the two seconds to execute some code that would make it not clear your RAM upon re-batterying?
Pseudoprogrammer wrote:
So, I know little about ASM and even less about EE, but would it perhaps be possible to have an ASM program detect a battery pull / dead battery so that if it died mid-execution you could use the two seconds to execute some code that would make it not clear your RAM upon re-batterying?

That's precisely what the TI-OS does, using its interrupt routine and _getKey. This is why you can pull a battery at the homescreen (which is basically in _getKey) and RAM won't reset, but it can if you pull it while it's busy doing other things.

To enable this effect, all you have to do is enter an ei \ halt loop and set 0,(iy+16h) within it (which is what _getKey does). Try it...it's kind of freaky to see.
freaky cool.
TI actually did something well done.
I always wondered why sometimes I pulled the batteries without RAM Reset because if the RAM is not powered unexpectedly the checksum will be corrupt.
Now I get it. This feature save my programs 2 or 3 times and 1 time for a friend of mine in which the calc frozen after linking in TI-OS.
You might not have a Ram Clear but taking out any of the batteries while the calculator is on resets the Real Time Clock.
Galandros wrote:
You might not have a Ram Clear but taking out any of the batteries while the calculator is on resets the Real Time Clock.

The 84+/SE clock continues to work. It used to get reset on RAM clear but that was fixed in a later OS version.
That is good to know. How recent of a change is this? I may actually bother setting my clock again.
I believe it was OS 2.43, but it could've been earlier.
It was OS 2.43. (actually it was the only end-user-noticeable change from 2.40)
What about PTT mode? That came in 2.43, didn't it?

Frankly, I'm not surprised TI put real thought into it They are a hardware development company, after all. It's just their software that's crap.
willrandship wrote:
What about PTT mode? That came in 2.43, didn't it?
No, I believe that it was in 2.30 or 2.40.
I wonder if the earlier calc models (TI-86, 82, 85, etc.) had anything similar, since they functioned along similar lines (removing the batteries when idle leaves RAM intact, otherwise not; unless I'm remembering wrong and these calcs actually have to be turned *off* to not lose RAMâ€”maybe I should do some quick tests).

I always figured that the backup battery would have just simply been connected to a special circuit that powers just the RAM or something, not the entire calculator. But I'm not an electronics expert, either.

Back in the glory days of the ticalc.org mailing lists, I remember long, heated debates about what actually happens when the calc is turned off, main/backup batteries removed, etc. Fun times, they must have been. :)

willrandship wrote:
Frankly, I'm not surprised TI put real thought into it They are a hardware development company, after all. It's just their software that's crap.

Except for maybe the USB hardware interface?
Travis wrote:
willrandship wrote:
Frankly, I'm not surprised TI put real thought into it They are a hardware development company, after all. It's just their software that's crap.

Except for maybe the USB hardware interface?

And the newer TI 84+ SE calcs with only 48 KB of RAM.
Travis wrote:
I wonder if the earlier calc models (TI-86, 82, 85, etc.) had anything similar, since they functioned along similar lines (removing the batteries when idle leaves RAM intact, otherwise not; unless I'm remembering wrong and these calcs actually have to be turned *off* to not lose RAMâ€”maybe I should do some quick tests).
I would have assumed that they would have worked exactly the same way, although this could indeed have been a later development of the TI hardware team.

Quote:
I always figured that the backup battery would have just simply been connected to a special circuit that powers just the RAM or something, not the entire calculator. But I'm not an electronics expert, either.
Indeed, as most of us including myself assumed, I think.

Quote:
Back in the glory days of the ticalc.org mailing lists, I remember long, heated debates about what actually happens when the calc is turned off, main/backup batteries removed, etc. Fun times, they must have been.
I really need to go read through all of those one rainy day.
Very interesting. I guess that's smart to clear the RAM if it doesn't checkout, so as to avoid running in the middle of some memory-befudged location and screwing things up

Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

»
» All times are UTC - 5 Hours

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum