Formula to calculate Trange in auto fan control

Discussion in 'Rivatuner Statistics Server (RTSS) Forum' started by DeeCiple, Aug 16, 2008.

  1. DeeCiple

    DeeCiple New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    XFX 8800GT 512 Mbyte
    If anyone is interested, the ADT7473 (fan controller) datasheet can be found here:

    http://rapidshare.com/files/137745268/adt7473_datasheet.pdf.html

    on page 42 there is a formula for calculating the Tmax value of the fan controller:

    Tmax = Tmin + (MaxDC - MinDC) * Trange / 170

    where:
    Tmax is the temp at which the fan runs at 100%
    Tmin is the temp at which the fan turns on
    MaxDC is the max duty cycle of the fan
    MinDC is the min duty cycle of the fan
    Trange is the duty cycle vs. temperature slope.

    This isn't very helpful if you have the Tmax and Tmin values and you need the Trange value that will get you there.

    Using this formula, you can get the Trange value:

    Trange = (Tmax - Tmin) * 170 / (MaxDC - MinDC)

    I created a spreadsheet that you can use to automatically calculate the values (don't type in the yellow cells because the formulas are there).

    http://rapidshare.com/files/142629276/T-Range_Calc.xls.html

    BTW... the values that are already plugged into the spreadsheet work pretty well for me. My 8800GT never goes above 80 degrees and the fan tracks the temp pretty smoothly. I think that the dynamic Tmin control settings have something to do with it too.

    Hope this helps
     
    Last edited: Sep 4, 2008
  2. Quacker

    Quacker New Member

    Messages:
    9
    Likes Received:
    0
    GPU:
    EVGA 8800GTS SSC 640K
    It did indeed help! Following your information, I was able gain control of the fan speed regulation loop and get it to do exactly what I want.

    Thanks!

    My settings:

    Duty cycle min 65 (Just below audibility)

    Duty cycle max 100

    T min 55

    T range 10

    T operating 65

    T low limit 60 (not really sure what this does)

    T high limit 80 (also not sure about this setting. I forced the temp above this point to test it and nothing happened)
     
  3. DeeCiple

    DeeCiple New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    XFX 8800GT 512 Mbyte
    According to page 48 of the fan controller data sheet, the T-low, T-high and T-operating parameters regulate how the T-min value is automatically adjusted:

    T-low - If the temp drops below the T-low value, the T-min value is automatically raised. (this assumes that the T-min was set too low for the operating conditions and attempts to compensate)

    T-high - If the temp rises above the T-high value, the T-min value is automatically lowered. (this assumes that the T-min was set too high for the operating conditions and attempts to compensate)

    T-Operating - The target temperture. The fan controller attempts to maintain system temperature at about the operating point by adjusting the TMIN parameter of the control loop.

    I noticed that after entering my fan controller settings and playing a 3D game for an hour or two, after going back in and checking the settings, the T-min value had been changed to a more appropriate value for the operating conditions.

    BTW... I plugged your settings into my spreadsheet and are you aware that your T-range may be set a little low? At a setting of 10 and a T-min of 55, your fan must shoot up to 100% speed almost instantly. Go back into RivaTuner and see if it hasn't already been automatically changed. Here are your settings as entered into the spreadsheet. Note the T-max value:

    Calculate T-Max
    D-Min 65.00
    D-Max 100.00
    T-Min 55.00
    T-Max 57.06 (this is at or below idle temp)
    T-Range 10.00
    T-Operating 70
    T-Low Limit 55
    T-High Limit 80
     
    Last edited: Sep 4, 2008
  4. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,927
    Likes Received:
    2,069
    Small note on the following formula:

    Tmax = Tmin + (MaxDC - MinDC) * Trange / 170

    It works correctly only with raw MaxDC and MinDC values replresented in PWM ticks (0 - 255 ticks max). The values you see and edit in RT are in percents, so 170 const should be corrected to consider that.
     

  5. DeeCiple

    DeeCiple New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    XFX 8800GT 512 Mbyte
    I see your point, however I'm not so sure that the constant needs to change. Anyway, I'm not at home right now but I will do some testing when I get back from work and reply

    What I did to come up with the formula was to take the formula for calculating the T-max value (given the T-range) from page 42 of the datasheet:

    TMAX = TMIN + (Max DC − Min DC) × TRANGE /170

    and reverse it so that the T-range value could be calculated if the T-max value is known. The formula still works, regardless whether your Max/Min DC values are between 0 & 100 (percent) or 0 & 255 (ticks).

    Just to be sure I did it correctly, I tested by entering both formulas in a spreadsheet (the one I posted).

    Try this:
    Enter the T-range, T-min, Max DC and Min DC values into the "Calculate T-Max" side of the spreadsheet.

    Then, in the "Calculate T-Range" side enter the T-min, Max DC, Min DC and the value for T-max that was calculated in the "Calculate T-Max" side. You will see that the calculated T-range will match the value that you entered in the "Calculate T-Max" side.

    I understand what you're saying and I have been thinking about it (now my head hurts again thank you very much) lol.

    I will test when I get home and get back to you.

    Thanks,
    :)

    PS... Which values in the RT fan control page are represented in percents? I assume only the ones pertaining to duty cycle... am I correct?
     
    Last edited: Sep 3, 2008
  6. ribbell

    ribbell Active Member

    Messages:
    55
    Likes Received:
    0
    GPU:
    4870X2
    The correct formula to compute TRange as a function of Tmax, Tmin and of the Duty_Cycle_min expressed in percents is this one:

    TRange=2/3*100*(T_max-T_min)/(100-Duty_Cycle_min)

    I got the formula some time ago when i was studying 8800 gtx auto fan control of the external controller.
     
  7. DeeCiple

    DeeCiple New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    XFX 8800GT 512 Mbyte
    Cool! Where did you get the formula?
     
  8. ribbell

    ribbell Active Member

    Messages:
    55
    Likes Received:
    0
    GPU:
    4870X2
    From the datasheet with some manipulations.
    I verified it by setting the auto control mode on my old 8800gtx with dynamic control of Trange disabled.
    Look here for more details.
     
  9. DeeCiple

    DeeCiple New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    XFX 8800GT 512 Mbyte
    That's very interesting. I'll have to read further when I get home but i see where you were able to get the fan at 100% duty cycle via your target max temp and t-range.

    cool!
     
  10. DeeCiple

    DeeCiple New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    XFX 8800GT 512 Mbyte
    Unwinder,

    You are sooo right. I did some testing and see that the RT duty cycles are represented as percentages. Would it be fair to say then that since the PWM ticks are from 0 to 255 and this represents a 0% to 100% duty cycle, we can translate the PWM value to duty cycle % by this formula:

    PWM Tick value = Duty Cycle % * 2.55

    If so, then the formula can be altered to represent this by the following:

    Tmax = Tmin + ((MaxDC * 2.55) - (MinDC * 2.55)) * Trange / 170

    What do you think?
     

  11. ribbell

    ribbell Active Member

    Messages:
    55
    Likes Received:
    0
    GPU:
    4870X2
    Yeah, in fact:
    170/2.55=(170/255)* 100=(2/3)*100
    so your last formula is equal to mine.
     
  12. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,927
    Likes Received:
    2,069
    Yep, absoultely correct.
     
  13. ribbell

    ribbell Active Member

    Messages:
    55
    Likes Received:
    0
    GPU:
    4870X2
    Also to better understand Trange, DeeCiple, you can put the relation between temperature and duty-cycle in this way:
    Duty_Cycle=Duty_Cycle_min+2/3*100*Delta_t/Trange
    where Delta_T is the temperature difference with respect to T_min.
    If you call TRange_effective the temperature range where the duty-cycle increases (taking into account that the maximum duty-cycle is 100), you obtain:
    3/2*(100-Duty_Cycle_min)/100*Trange=Trange_effective
    So Trange is the temperature range on which the fan speed is controlled when the duty_cycle min 33 %, in fact in this case:

    3/2*(100-1/3*100)/100*Trange=Trange_effective ->
    3/2*(2/3)*Trange=Trange_effective ->
    Trange=Trange_effective

    If Duty_Cycle_min is increased, Trange_effective decreases, i.e. fan speed slope vs temperature increases and viceversa. Take note that whle you can change Duty_Cycle_min from 0 to 100 %,with a step of 0.39 %, Trange can be programmed only to 16 different values, so if you fix Duty_Cycle_min, Trange_effective can assume only 16 values with wide steps between them. In conclusion is better to modify Duty_Cycle_min and Trange at the same time in order to achieve the desired Trange_effective, that can then be correctly "placed" by changing T_min, that can be modified with 1 °C steps.
     
  14. ribbell

    ribbell Active Member

    Messages:
    55
    Likes Received:
    0
    GPU:
    4870X2
    Also this is how dynamic control of Tmin works:
    The dynamic control changes Tmin in order to achieve a temperature equal to Toperating with the minimum possible Fan speed. It is a very powerful feature of this controller.
    Note that changing Tmin does not vary the slope of the fan speed versus temperature curve, that is fixed by Trange, i.e. decreasing Tmin moves the curve to the left (increasing fan speed) while increasing Tmin moves the curve to the right (decreasing fan speed).
    The inner control logic is this one:
    If the temperature is higher than Toperating minus a fixed value, Tmin is decreased with as a function of the temperature slope. If the temperature is higher than Toperating, Tmin is decreased faster.
    On the contrary, if the temperature is lower than Tlow, Tmin is increased.
    The maximum value that can reach Tmin is definied by Thigh.
    The operating principles of the controller are a little more complex, this is just a simplification to give an idea of how dynamic ontrol works.
    Based on this logic, itis clear that in order to disable dynamci control of tmin it is enough to set Tlow = 0 (i.e. very low value) and Toperating=Thigh=110 (i.e. very high value). In this way the relation between target duty-cycles and temperature is perfectly linear. The real duty-cycle can be different taking into consideration acoustic management of the controller that tries to minimize too fast variations of the fan speed.
     
    Last edited: Sep 4, 2008
  15. DeeCiple

    DeeCiple New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    XFX 8800GT 512 Mbyte
    That's definitely alot of good info guys (albeit very technical). Thanks for helping me with my understanding of how the fan controller works!!!

    I updated the spreadsheet to reflect the correct calculations and updated the link in my original post, as well as here:

    http://rapidshare.com/files/142629276/T-Range_Calc.xls.html

    Enjoy
     
    Last edited: Sep 4, 2008

  16. DAMAFIA

    DAMAFIA Master Guru

    Messages:
    231
    Likes Received:
    0
    GPU:
    7970@1180/1800
    been using your guide for a while now ribble and works perfect cheers bud:)
     
  17. coolville

    coolville Active Member

    Messages:
    61
    Likes Received:
    0
    GPU:
    EVGA FTW COOP GTX295
    Noob question here...does this formula you've been discussing work with my video card? XFX 9800 GTX Thanks.
     
  18. ribbell

    ribbell Active Member

    Messages:
    55
    Likes Received:
    0
    GPU:
    4870X2
    If your card is equipped with ADT7473 fan controller the same formula apllies to your card. You can check whenever this is the case by accessing the low level fan settings tab, if there is one.
     
  19. SVR

    SVR Member

    Messages:
    28
    Likes Received:
    0
    GPU:
    BFG/XFX 8800GTS 512
    I know this post is a bit old, but for those of us just finding this thread ...


    This is not right. THigh doesn't cause the TMin to decrease , TOperate does.
    THigh is the MAXIMUM that TMin can be auto adjusted to.

    Figure 70 shows a 'normal' range of settings. TOperate should be highest, then TLow then finally THigh.

    TLow & THigh position can be swapped to acheive a better (forced) cool down curve.

    ribbell stated it correctly, though I missed it the first read.
    The top post should probably be edited.

    Cheers
     
  20. EarlZ

    EarlZ Master Guru

    Messages:
    218
    Likes Received:
    0
    GPU:
    2x Zotac GTX 780
    @DeeCiple

    Maybe you can update you xls to something similar like this, found on vaguetech riva tuner guides. Id love to see the actual fan speed based on the temps rather than doing guess work, Im using a 285 with a ADT7473 controller also.
     

Share This Page