83Plus:Ports:30

From WikiTI
Revision as of 20:26, 10 July 2005 by Dan Englender (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This port only exists on the the TI-84 Plus and the TI-84 Plus Silver Edition. On the standard TI-83 Plus, it acts as a shadow of port 10. On the TI-83 Plus Silver Edition, this port has no effect.


Please format this article according to the guidelines and Wikification suggestions, then remove this {{Wikify}} notice from the article.


Synopsis

Port Number: 30

Function: Timer1 Speed


Frequencies for timers on SE.

There seem to be some programmable timers on the 83P SE. In fact, there seem to be three of them. The timers themselves are eight bit, and with their setup ports, they run 3 ports each: from 30h to 38h. The first port in each set of three is the speed/timer select port. It determines which clock to use for the timer, and the frequency of the timer. The second port has only two bits for input. If bit 0 is reset, the timer will stop timing when it reaches zero (the timers are count-down). If bit 0 is set, it will just go on forever. If bit 1 is set, the calculator will crash when the counter expires (what this is actually doing, I have no clue) ((This is probably generating an interrupt and was crashing because it was an old OS version that wasn't set up to handle it)). If you've got it running on forever, bit 2 will be set when the timer underflows. You can check this flag to see when the timer has gone through 256 cycles, and reset it by outputting a value of 1 to the port again. The third port is the actual timer. On input, it just returns the current value of the timer. On output, it sets the value for the. If you're just going on forever, the value doesn't matter much, but if you want it to count down to zero and then stop (bit 0 of the second port reset), you'll want to output the value to start from. The counter will not start automatically once you set the first two ports. You must output a number to the third port for the timer to start.


On the speed port, 30h, 33h, or 36h, the top two bits determine what clock to use for the timer. 00 = none, 01 = xtal, 10 = CPU clock 11 = ???? A combination of both xtal and CPU clock? When using CPU clock, it'll be either 6 MHZ or 15 MHZ, depending on what speed the CPU is currently running at.

(Note: The particular program I used to test this was not very accurate at very low frequencies, so the 10 HZ and 8 HZ are very rough. Actually, everything is very rough, but those, more so.)

xtal freqs - There are three significant bits, bits 3/4/5 don't seem to do anything. 40h - 10882.56 HZ 41h - 990.72 HZ 42h - 97.28 HZ 43h - 10 HZ 44h - 32706.56 HZ (natural xtal frequency, close to 32.768 khz) 45h - 2042.88 HZ (close to 2048 HZ) 46h - 125.44 HZ (close to 128 HZ) 47h - 8 HZ

So....It seems to go 10000 -> 1000 -> 100 -> 10. Then 2^15 -> 2^11 -> 2^7 -> 2^3. In practice it seems that everything seems to be a small bit slower than it should be "ideally", and I'm going to take the fact that my 40h frequency is actually above 10K as a fluke, probably caused by human error.


CPU clock freqs - These are a factor (of a power of two) of the main CPU clock. 80h - CPU 81h - CPU/2 82h/83h - CPU/4 84h-87h - CPU/8 88h-8Fh - CPU/16 90h-9Fh - CPU/32 A0h-BFh - CPU/64