(кликните по картинке для увеличения) Перечитав даташиты не один раз, пришел к выводу, что измерение температуры с помощью термодиода, это….как бы сказать помягче….. в общем, очень сильно неправда.
Причем производитель, Winbond, снабжает даташиты на свои изделия заведомо неверной информацией. Постараюсь это доказать.
Прочитав ( и перечитав ) даташит в разделе измерений напряжений и температур, пришел к выводу, что за все отвечает один-единственный АЦП разрядностью 8 бит и диапазоном входных напряжений от 0В до 4.096В. Соответственно, при 8 битах всего 256 возможных состояний, а при указанном диапазоне входных напряжений это будет 16мВ на бит. То есть, при увеличении входного напряжения на 16мВ в регистр состояния записывается число, на 1 большее. Что касается конкретно температур, диапазон их измерения ограничивается от –55 до 125 градусов ( то есть всего 180 значений, а не 256 ), и в регистр состояния записывается число, численно равное температуре в градусах Цельсия. То есть, при предполагаемой температуре в +25 в регистр запишется 19h, а при –25 E7h ( отрицательные температуры записываются в дополнительном коде ). При это, видимо, диапазон входных напряжений для измерения температуры составит 2.88В, а не 4.096В. Но не это главное.
При такой схеме измерения температур ( с помощью терморезистора ), необходимо, чтобы при падении реальной температуры на 1 градус, напряжение, подаваемое на вход микросхемы с терморезистора, упало на 16 мВ. Тогда температура, отображаемая в биосе ( которая, в свою очередь, берется из регистра состояния ), тоже упадет на 1 градус. Но сделать то же самое при помощи диода нельзя! Во-первых, у диода температурный коэффициент равен –2мВ/градус ( это значит, что при нагреве диода на 1 градус прямое падение напряжения на нем уменьшится на 2 мВ ). То есть, при изменении реальной температуры на 8 градусов, показатель оной в биосе выдаст изменение всего на 1 градус! Во-вторых, прямое падение напряжения на кремниевом диоде составляет около 0.7В, в то время как входное напряжение при измерении температуры около 1.5В при комнатной температуре.Все. Финиш.
Осознав все это, я понял, почему в биосе наблюдал «температуру» процессора в 67 градусов. Просто входное напряжение в 0.71В примерно соответствует нагреву терморезистора в 67 градусов, а слабое изменение показателя температуры говорит о том, что микросхеме просто не хватает диапазона изменения напряжения на диоде.
После осознания вышеописанного я …..э-э-э-э…. очень сильно разозлился и поминал Winbond нехорошими словами…. Мягко говоря…. Это ж как надо раздолбайски относиться к собственной продукции, чтоб в даташите описать заведомо неверную схему подключения термодиода! В общем, одни огорчения….
Но ладно, переживем и это. Остыв, я сделал для себя несколько важных выводов:
1. В Winbond есть много раздолбаев. И эти раздолбаи, которые писали даташиты к собственным микросхемам, указали неправильную схему измерения температуры с помощью термодиода.
2. В доказательство пункта 1 могу привести примеры. В описании W83697HF сказано, что она меряет 2 температуры. Несколько страниц спустя пишется уже о 3 температурах. В описании W83627HF же, наоборот, при номинальных 3 каналах измерения температуры в разделе описания пинов этот третий канал «забыт». Вообще создалось впечатление, что оба документа писались абы как, путем «выдергивания» каких-то данных из третьего источника, причем правкой текста и выявлением ошибок там никто себя не утруждал…
3. Те «умельцы», которые уже «включили» термодиод на своих материнках, либо говорят неправду, либо сами плохо понимают, что же вообще они переделали, либо считают, что получившиеся «температуры» гораздо точнее.
( Да, и кстати, Andry Kuzmenko, который и написал статью о перепайке термосенсора, сам же и ошибся. Он посчитал, что ножка 105 в микросхеме W83697HF, именуемая AVCC, является аналоговой землей, а ведь это питание аналоговой части…. А землей является ножка 112, именуемая AGND… Что же это так неаккуратно? Или диверсия?
)
4. Переделать схемы мониторинга температур в существующих микросхемах под термодиод нельзя простой перепайкой терморезистора на термодиод.
5. Термодиод теоретически задействовать можно, но придется делать простейший усилитель, приблизительно такой:
(кликните по картинке для увеличения) 6. Кроме того, занявшись вопросом плотнее, я промерял зависимость показания температуры в биосе от входного напряжения, снимаемого с термосенсора. Зависимость получилась такой:
(кликните по картинке для увеличения) Как видно, она нелинейна. То есть, собрав усилитель, надо еще подумать, как сделать его нелинейным для компенсации индицируемых температур ( или терпеть занижение температур в середине диапазона ).
7. Материнки, которые честно меряют температуру по диоду, видимо, существуют. Навскидку – Epox – 8К3АР ( или что-то из этой серии ). Если они действительно показывают правильную температуру ( а у меня нет возможности посмотреть, каким образом там меряется оная ), то , видимо, используется похожая схема усиления. Теперь ясно, почему практически нет материнских плат с измерением «настоящей» температуры? Да потому что производитель, ставя на плату лишние детали, сталкивается с потоком обеспокоенных юзеров, которые не могут понять – а почему же их процессор «горячее», чем у соседа? А терморезистор – и надежнее, и проблем с суппортом меньше…
В общем, такие вот результатики…. Причем, насколько я понял, в форуме в ветке обсуждения Epox – 8RDA тоже был человек, не помню кто, он тоже переделал схему мониторинга и тоже получил слабо меняющиеся +67 градусов.
Если у кого мысли есть по поводу написанного, или есть что добавить, или опровергнуть хочется, то в форум:
https://forums.overclockers.ru/viewtopic.php?p=835029#835029