Wii PowerPC TAU programming
January 10, 2010 11:16AM
I recently tried writing some code to try and get the cpu junction temperature using the THRM1 and THRM3 registers (single-threshold mode). Unfortunately it didn't work - writing to the registers worked, and I could read back the values that I'd written, but the TIV bit on the THRM1 register remained cleared so the comparison result was never valid.
What might be the problem is that the Sampled Interval Timer Value in THRM3 is meant to specify 20ms in processor cycles; given the wii cpu runs at 729MHz, this would mean a value of 14580. But the SITV field is only 13 bits so the largest value it can hold is 8191 (someone should probably tell the linux kernel people about this). I found a powerpc/freescale doc that said if the processor speed is too fast, just write 0x1FFF to SITV and accept the sampling inaccuracies but this doesn't solve the problem.

Is there anyone that has written code to use the TAU on the wii/any powerpc that might be willing to offer any insight?
Re: Wii PowerPC TAU programming
January 10, 2010 07:40PM
That's a tall order you got there. TIV is read only, I know that much. I'll snoop around, see what I can find out.

Might I ask, what is this for?

Edit: I think that it is possible to set a lower value for the SITV value in THRM3. However, the official documentation warns that this may cause inaccuracies in the sensed temperature.

Edited 1 time(s). Last edit at 01/10/2010 07:47PM by dancinninja.
Re: Wii PowerPC TAU programming
January 10, 2010 11:06PM
It's mainly just for fun - I wanted to see how much effect turning the fan on and off had on the cpu temperature.
I know TIV is read only, it's meant to change to 1 to indicate the TIN bit is valid i.e. a comparison has been completed.
The other interesting thing I found is some bits of THRM3 which are meant to be read-only seem to be writable - I think these bits are used for calibration as documented in [www.freescale.com] . But it's a bit hard to calibrate when it won't give me any data. ;)

This is the doc I found saying to set the max value in SITV when the 20ms value won't fit: [www-01.ibm.com]
Sorry, only registered users may post in this forum.

Click here to login