Мультиконтроллер
Мультиконтроллер (ранее «KBC») отвечает за управление включением, работу с периферийными устройствами такими как клавиатура и тачпад, мониторинг температур и напряжений. С кнопки включения сигнал поступает на мультиконтроллер, а он в свою очередь управляет включением ШИМ контроллеров, которые управляя ключами вырабатывают необходимые напряжения разных узлов, зарядки аккумулятора. Поэтому если ваш ноутбук не включается — стоит убедиться в исправности мультиконтроллера. К мультиконтроллеру чаще всего по интерфейсу (SPI) подключена микросхема Flash памяти , в которой хранится BIOS. У современных ноутбуков встречается два вида микросхем — 25Q64 (w25q64) и 25Q32 (w25q32).
Мультиконтроллер выходит из строя при залитии ноутбука, замыкании цепей кнопки питания или разъема LVDS матрицы.
Очень часто при замене матрицы ноутбука не выключают аккумулятор, что приводит к «выгоранию» микросхемы, так как напряжение с нее поступает на разъем матрицы даже в выключенном состоянии.
Замена мультиконтроллера
По сложности данная процедура легче чем замена северного, южного моста либо видеочипа ноутбука. Однако не все мультиконтроллеры так просты. Для инициализации требуется микропрограмма, которая хранится либо в Flash памяти, либо в отдельной EEPROM микросхеме памяти, либо прошивается внутрь самого микроконтроллера. Как раз в последнем случае (что часто встречается в современных ноутбуках) требуется прошивка, специальный программатор.
Прошиваемые мультиконтроллеры — NPCE288N/388N, KB9010/9012/9016/9022, IT8585/8586/8587/8985/8987.
Диагностика мультиконтроллера
Самое главное с чего стоит начать после визуального осмотра — это присутствие напряжений питания и ток потребления. Изначально все включения должны производится с лабораторным блоком питания, у которого есть возможность регулировки ограничения тока.
Диагностика материнской платы ноутбука
Диагностика неисправности материнской платы ноутбука — самый важный этап при ее ремонте. Но для диагностики платы нужно знать последовательность ее включения.
Последовательность включения ноутбука
При включении ноутбука дежурное напряжение через кнопку подается на мультиконтроллер. Чтобы он запустил контроллеры ШИМ, вырабатывающие все напряжения (их много). Если все нормально, он вырабатывает сигнал PowerGood. По этому сигналу снимается сигнал resetс процессора и он начинает выполнять программный код, записанный в BIOS с адресом ffff 0000.
Затем BIOS запускает POST (PowerOnSelfTest), который выполняет обнаружение и самотестирование системы. Во время самотестирования обнаруживается и инициализируется видеочип, включается подсветка, а также определяется тип процессора. Из данных BIOS определяется его тактовая частота, множитель, настройки. Затем определяется тип памяти, ее объем, проводится ее тестирование. После этого происходит обнаружение, инициализация и проверка накопителей – привода, жесткого диска, картридера, дисковода и др. В дальнейшем следует проверка и тестирование дополнительных устройств ноутбука.
После завершения POST управление передается загрузчику операционной системы на жестком диске, который и загружает ее ядро.
Приводим схему последовательности включения ноутбука
Алгоритм диагностики материнской платы ноутбука
- проверка напряжений питания на плате согласно datasheet;
- проверка PowerGood и сигнала запуска;
- контроль опроса BIOS;
- проверка загрузки по посткарте, показывающий на каком этапе прекращается загрузка.
Рассматриваем 2 варианта.
Не горит индикатор питания ноутбука
1. Питание не появляется, а также его индикатор не горит.
Ищем неисправность в схеме управления питанием платы ноутбука. Проверяем Мультиконтроллер — микросхему, управляющую схемами ШИМ формирования напряжений. А также в нем встроены контроллеры периферии ноутбука. Например, контроллер клавиатуры, мыши, температуры, вентилятора, аккумулятора, тачпада и др. Иногда в мультиконтроллер входит контроллер USB. Часто это микросхема ITE.
На мультиконтроллер подается напряжение непосредственно с адаптера (обычно 19В). А дальше оно передается на другие устройства. Таким образом контроллер управляет процессом включения в ноутбуке.
За распределение питания на плате ноутбука может отвечать и схема коммутации, например, может быть чип MAXIM. Она отвечает за переключение питания с внешнего адаптера на батарею, а также контролирует зарядку и др.
В некоторых случаях в ноутбуке слетает прошивка микроконтроллера. В этом случае ноутбук не запускается, но все напряжения присутствуют и нужные сигналы подаются. Чтобы решить проблему нужно восстановить прошивку.
Горит индикатор питания, но ноутбук не включается
2. Питание в ноутбуке есть, светодиод горит, но ноутбук не включается, экран темный. Индикатор жесткого диска сначала включается и гаснет, затем не горит.
Алгоритм поиска неисправности на материнской плате ноутбука следующий.
Разбираем ноутбук, прогреваем микросхемы чипсета на плате по-очереди. После каждого прогрева пробуем плату на включение. Если ноутбук включается, то виноват конкретный чип.
Еще полезно узнать, как произошла поломка. Например, очень важна предыстория поломки. Если до поломки перестали работать USB порты, то скорее всего вышел из строя Южный мост. Но при артефактах на встроенном видео виноват Северный мост. На современных платах мостов нет, потому что вместо них чипсет.
Способы диагностики материнской платы
Чтобы подробнее ознакомиться со способами диагностики материнской платы ноутбука, прочтите здесь. Там описаны способы определения неисправного чипа, а также поиск короткого замыкания на плате.
Диагностика и неисправности мультиконтроллера в ноутбуке
В этой статье пойдет речь о микросхеме, которая управляет работой всего ноутбука, в том числе, его включением. Её неисправности приводят к значительным последствиям для пользователя и чаще всего требуют ремонта материнской платы в сервисе.
Задачи мультиконтроллера
Мультиконтроллером, или, по-английски Super I/O (SIO) или Multi I/O (MIO), на сленге «мультик» (еще в документации встречается EC-контроллер), называется микросхема, обеспечивающая мониторинг напряжений и температур, работу с периферийными устройствами. Такими устройствами могут быть клавиатура, мышь, кнопка включения, датчик закрытия крышки и тп. Основным его предназначением является управление клавиатурой (даже в схемах он обозначается как KBC-контроллер), однако со временем производители начали нагружать его множеством дополнительных функций, таких, например, как индикация работы жесткого диска (светодиод на передней панели ноутбука) или управление частотой работы кулера. Именно на эту микросхему «приходят» все контактные дорожки шлейфа клавиатуры ноутбука. На самом деле на ножки мультиконтроллера приходят сигналы практически со всех устройств и микросхем ноутбука. Уровень сигнала может быть постоянный 3.3V (высокий логический уровень), либо изменяющийся в случае обмена данными (измеряется осциллографом).
В запуске ноутбука он вообще играет первостепенную роль, так как именно на него приходит сигнал с кнопки включения, и именно он запускает все источники напряжений и затем отдает сигнал южному мосту для начала инициализации.
Мультиконтроллер управляет включением ШИМ-контроллеров, вырабатывающих необходимые для работы узлов ноутбука напряжения, ключами, коммутирующими эти напряжения. Через мультиконтроллер по протоколу Firmware HUB или SPI подключена микросхема Flash c программным обеспечением (которую иногда приходятся прошивать). В состав мультиконтроллера могут входить контроллеры часов реального времени, жестких дисков, USB, интегрированный аудиоинтерфейс, интерфейс LPC.
Разновидности мультиконтроллеров
Мультиконтроллеры выпускают следующие фирмы: ENE; Winbond; Nuvoton; SMCS; ITE; Ricoh.
Сильно отличаются только последние, хотя бы методом пайки, они BGA.
На современных мультиконтроллерах имеется по 128 ножек, но их назначение сильно отличатся в зависимости от модели мультиконтроллера и даже от его ревизии. К примеру, KB926QF-D2 и KB926QF-C0. — два совершенно разных мультиконтроллера.
Неисправности мультиконтроллеров и их симптомы
Мультиконтроллер часто выходит из строя при залитии ноутбука жидкостью или вследствие выгорания ключей, формирующих 3.3В. Второе случается при скачках питания в сети.
К основным симптомам неисправности мультиконтроллера можно отнести некорректную работу клавиатуры и тачпада и отсутствие запуска как такого. Также, следствием неправильной работы «мультика» являются и глюки периферии — неправильная работа датчиков, кулера. Также по вине SIO может не определяться жесткий диск и другие накопители (работа USB при этом завязана на южный мост).
В диагностике и ремонте ноутбуков мультиконтроллер имеет ключевое значение, поскольку отсутствие на мультиконтроллере важных сигналов, приходящих с микросхем ноутбука, позволяет выявить неисправные микросхемы и произвести их замену. На мультиконтроллер приходит LPC шина, по который идет обмен с южным мостом, и с которой можно считать всем известные POST-коды. Для этого, кстати, в ремонте часто подпаиваются на прямую к ножкам мультиконтроллера тоненькими проводками и выводят коды на индикаторы.
Также иногда во время самостоятельной замены матрицы ноутбука забывают отключить аккумулятор. Это тоже может привести к выгоранию мультиконтроллера. Но, к счастью, микросхемы эти не очень дорогие и ремонт такой неисправности обходится дешевле, чем, например, замена южного моста или видео. Многие микросхемы взаимозаменяемы, а перепайка их — 15 минут (если не потребуется прошивать флэш память).
Диагностика запуска (или отсутствия старта) ноутбука
Для правильной диагностики старта ноутбука необходимо понимать его последовательность и участие в нем мультиконтроллера.
Последовательность включения ноутбука
При включении ноутбука дежурное напряжение через кнопку подается на мультиконтроллер, который запускает все ШИМ-контроллеры, вырабатывающие все напряжения (их много), и, при нормальном исходе, вырабатывают сигнал PowerGood. По этому сигналу снимается сигнал RESET с процессора и он начинает выполнять программный код, записанный в BIOS с адресом FFFF 0000.
Затем BIOS запускает POST (Power-On Self Test), который выполняет обнаружение и самотестирование системы. Во время самотестирования обнаруживается и инициализируется видеочип, включается подсветка, определяется тип процессора. Из данных BIOS определяется его тактовая частота, множитель, настройки. Затем определяется тип памяти, ее объем, проводится ее тестирование. После этого происходит обнаружение, инициализация и проверка подключенных накопителей – привода, жесткого диска, карт-ридера, флоппи дисковода и др., а после проверка и тестирование дополнительных устройств.
После завершения POST управление передается загрузчику операционной системы на жестком диске, который и загружает ее ядро.
Из описания выше видно, что мультиконтроллер вступает в работу на самой ранней стадии, и без его нормального запуска не сформируются управляющие напряжения. Вот условия, необходимые для того, чтобы мультиконтроллер дал команду на старт:
- Основной BIOS и EC-BIOS должны быть рабочие.
- Мультиконтроллер запитан, работает его кварц и мульт вычитывает содержимое BIOS
- ACIN = 3.3 V
- LID_SW# = 3.3V (крышка ноутбука открыта)
- EC_RST# = 3.3V (мульт снимает RESET с южного моста)
- Южный мост снимает сигналы PM_SLP_S3# и SLP_S5#, то есть, на них устанавливается 3.3V
- При нажатии кнопки включения сигнал ON/OFFBTN# падает до нуля и этот же сигнал транслируется в PBTN_OUT#
Для инициализации мультиконтроллера необходима микропрограмма, которая хранится либо в той же микросхеме флеш-памяти, что и прошивка BIOS (UEFI), либо в отдельной микросхеме меньшего объема, либо внутри самого мультиконтроллера. В первых двух случаях восстановить прошивку не представляется сложным. А вот прошить непосредственно мультиконтроллер пока могут не любые программаторы. Да и подключиться к нужным его выводам не всегда просто. Прошиваемые мультиконтроллеры — NPCE288N/388N, KB9010/9012/9016/9022, IT8585/8586/8587/8985/8987.
Лучше всего найти документацию и описание сигналов по мультикам IT, которые используются во многих бюджетных ноутбуках, в том числе ASUS и Dell. Благодаря схемам можно понять и отследить, где находятся выше указанные сигналы. Например, в случае IT8752 и аналогичных (используется, например, в семействе ASUS K40 и K50) для диагностики вас должны интересовать, помимо выше указанных, следующие сигналы на мультике:
- ALL_SYSTEM_PWRGD (68 мульт)
- SUS_PWRGD (67 мульт)
- VRM_PWRGD (1 ISL6262)
Входящие сигналы указывают на выработку сигнала PowerGood и наличие питания Suspend режима и питания на VRM регуляторе ISL6262. Это значит, мост и процессор запитаны. - Сигналы H_CPURST#_XDP и H_PWRGD_XDP разрешают работу процессора.
- PWR_SW# — сигнал с кнопки включения
- CPU_VRON — включения питания на CPU
- PM_RSMRST# — снимает RESET с моста
- PM_SUSB# — хаб PCH должен выдать сигналы PM_SUSC# и PM_SUSB# идущие на мульт, а мульт в ответ выдать сигналы SUSC_EC# и SUSB_EC#
- PM_PWROK — сигнал на хаб, что питание в норме
- PM_CLKRUN# — сигнал на запуск тактирования
- PM_PWRBTN# — сигнал на включение южного моста
- VSUS_ON — сигнал включения дежурного питания на силовых ключах
- EC_CLK_EN (CLK_EN#) — разрешение тактирования на южный мост
Питание на IT85xx мульты поступает следующее: +3VA_EC, +3VPLL, +3VACC, без них микросхема не запустится.
Последовательность диагностики мультиконтроллера
Рассмотрим схему последовательности включения ноутбука:
Процедура включения материнской платы
Для диагностики в целом, вам нужно рассмотреть две ситуации:
1. Питание не появляется, светодиод питания не горит.
Ищем неисправность в схеме управления питанием. Проверяем 19 V со входа , приходящие на микросхему зарядки (charger), например, MAX. Проверяем наличие дежурных напряжений +3VSUS и т.п. Через форфмирователи +3 V питание поступает на мультик — проверяем это питание на входе. Проверяем выходные сигналы мультика. В некоторых случаях слетает прошивка микроконтроллера. В этом случае, при наличии входных напряжений, нужные управляющие сигналы с микросхемы контроллера не формируются при нажатии кнопки питания.
2. Питание есть, светодиод питания горит, но ноутбук не включается, экран темный. Индикатор жесткого диска сначала включается и гаснет, затем не горит.
Очевидно, мультик работает, управляющие сигналы формируются, однако, дальнейший запуска не происходит или он обрывается. Чаще всего виноваты в этом микросхемы чипсета, сам процессор или тактирующие генераторы, которые срывают генерацию сигналов. Для быстрой диагностики прогреваем микросхемы чипсета по-очереди. После каждого прогрева пробуем на включение. Если ноутбук включается, то виноват конкретный чип. Очень важна предыстория поломки — например, если до поломки перестали работать USB порты, то скорее всего вышел из строя южный мост. Если были артефакты на встроенном видео, то виноват северный мост.
Если же мы видим, что питающие напряжения присутствие, а сигналы с мультика нет (например, не снимается сигналы RESET), то изучаем все сигналы более подробно.
Вот обобщенный порядок следования сигналов при запуске EC:
<- входящий сигнал
-> исходящий сигнал
<- LDO питание +3VA_EC
<- сигнал с чарджера AC_IN>2в или ACIN_OC#=0в
<- сигнал с ДХ LID_SW#=3в
<- снятие ресета EC_RST#=3в
<-> вычитка прошивки SPI ROM
-> сигнал включения силовых дежурок VSUS_ON=3в
<- сигнал с ШИМ дежурки SUS_PWR_GD=3в
-> снятие ресета с юга PM_RSMRST#=3в (юг узнает, что первичные источники питания ок)
<- сигнал с кнопки PWR_SW# 3в просаживается до 0в
-> сигнал PM_PWRBTN#=0в транслируется в юг
<- PM_SUSB# (SLP_S3), PM_SUSC# (SLP_S5) = 3в с юга, разрешение на включение вторичных источников
-> SUSB_EC#, SUSC_EC# = 3в включение вторичных источников и открытие коммут. мосфетов
<- ALL_SYSTEM_PWRGD=3.3в вторичные источники питания ок
-> CPU_VRON=3в поднятие питания CPU_VCORE процессора
<- VRM_PWRGD=3в с ШИМ проца
-> EC_CLK_EN (CLK_EN#) на юг или на тактовый генератор приходит с мульта или ШИМ проца
-> VRM_PWRGD_CLKEN приходит на юг
-> CLK_PWRGD с юга приходит на тактовый генератор
-> сигнал PWROK на юг
-> юг отдает процу сигнал H_PWRGD (HardWare PWRGD, все питания в порядке, следующий этап инициализации)
-> юг снимает ресет с севера PLT_RST#
-> юг снимает ресет с PCI шины PCI_RST#
-> север снимает ресет с процессора HCPU_RST#
Вот алгоритм проверки популярного мульта KB3926, его можно применить и к аналогам:
- Проверить питание мульта 3,3v (9 нога)
- Проверить генерацию кварца (123 нога)
- Проверить сигнал с кн.вкл. ON/OFF 3,3v/0,5v (32 нога)
- Проверить АCCOF 0V (27 нога)
- Проверить ACIN 3.1V (127 нога)
- Проверить PBTN_OUT 0v/3,3v (117 нога)
- Проверить сигнал 0v/3,3v (14 нога)
- Проверить RSMRST 0v/3,3v (100 нога)
- Проверить PWROK 0v/3,3v (104 нога)
- Проверить SYSON 0v/3,3v (95 нога)
- Проверить VRON 0v/3,3v (121 нога)
- Проверить обмен мульта с югом 3,3v (77,78 нога)
- Проверить обмен мульта с югом 0v/3,3v (79,80 нога)
- Проверить генерацию PCICLK (12 нога)
- Проверить сигнал 0v/3,3v (1,2,3 нога)
- Проверить TP_CLK 0v/0,1v (87 нога)
- Проверить TP_DATA 0v/5v (88 нога)
- Проверить SUSP 0v/3,3v (116 нога)
- Проверить VGA_ON 0v/3,3v (108 нога)
Вот дополнительные контрольные значения напряжения:
DPWROK_R — 3,3V
PM_RSMRST#PCH — 3,3V
PM_RSMRST#- 3,3V
SUS_PWRGD — 3,3V
5VSUS_PWRGD — 3,3V
ME_SUSPWRDNACK_R — 3.3V
Как видно из алгоритма, в самом начале EC контроллер должен вычитать прошивку из Flash памяти через SPI интерфейс. Если этого не происходит, то дальше никаких сигналов питания ШИМов не формируется. Часто, в случае серии IT85xx и аналогичных это отдельня 8-контактная микросхема (напримерб SST25VF080B) с питанием по линии +3VA_SPI. Обмен данными происходит по линия SO и SI, тактирование по линии SCK. Поэтому, когда это возможно, флэшку перешивают. В некоторых сервисах имеется специальный программатор от Сергея Вертьянова, который позволяет прошивать почти любые флэшки:
Программатор от Сергея Вертьянова
Аппаратный мониторинг материнских плат. Программно-аппаратная реализация (часть 2)
Как было сказано в первой части статьи, «мультиконтроллер» содержит один из наиболее важных компонентов – блок аппаратного монитора, иначе – контроллер окружения, на который возлагаются функции непрерывного мониторинга температур и напряжений, а также контроль и управление оборотами вентиляторов. Для того, чтобы разобраться, как реализован принцип работы EC-контроллера, ознакомимся со схемой, изображённой на Рис. 1.
Рис. 1. Принципиальная схема EC-контроллера
реклама
Здесь ЕС-контроллер представлен в виде совмещённого устройства, состоящего из мультиплексора и АЦП – аналого-цифрового преобразователя. Для тех, кто не знаком с курсом цифровой схемотехники, поясню, что мультиплексор представляет собой, по сути, коммутатор, у которого есть несколько сигнальных входов и один выход. Задача мультиплексора состоит в передаче сигнала, поступившего на один из его входов и последующей передаче на выход. На схеме (Рис. 1) видно, что у мультиплексора имеется 3 входа (TMPIN1–TMPIN3) для температур и 8 входов (VIN0–VIN7) для напряжений, а также вход VBAT. Выход мультиплексора подключен к АЦП для преобразования выходного сигнала в цифровое представление, т.е. в числовое значение, которое в дальнейшем можно считывать программным способом. Таким образом, через мультиплексор осуществляется непрерывный опрос всех входов на наличие уровня поступающих сигналов с последующей их передачей на АЦП для оцифровки.
Разрядность – одна из основных характеристик АЦП. У всех «мультиконтроллеров» и микросхем аппаратного мониторинга фирмы ITE АЦП являются 8-разрядными. Это означает, что уровень сигнала может быть преобразован в числовое значение размерностью 1 байт. Такая размерность может включать одно из 256 возможных дискретных значений – от 0 до 255. Для температурных показаний эта размерность достаточна для хранения значений в диапазоне от -55°C до 125°C. Что касается напряжений, то весь современный модельный ряд ITE, в т.ч. IT8686E и IT8792E, может напрямую подключаться к источнику для замера входных напряжений в допустимом диапазоне от 0 до 3,072 В. Если входное напряжение находится за пределами данного диапазона, тогда в цепь включают делитель сигнала, представляющий собой два резистора Ra и Rb (см. Рис. 1). Это справедливо для положительных напряжений. Отрицательные напряжения рассматривать не будем, т.к. в современных системах они утратили свою актуальность и больше не отслеживаются. Таким образом, при наличии делителя напряжения формула расчёта уровня напряжения, поступающего на вход VIN с номером X мультиплексора представляется в виде:
Данная формула приведена неспроста и нам она очень скоро понадобится.
Другой важной характеристикой АЦП аппаратного монитора является разрешение. В англоязычной терминологии эта характеристика обозначается как LSB – Least significant bit. Формально LSB – это наименьшее входное напряжение, которое способен измерить АЦП. Для таких устаревших моделей «мультиконтроллеров», как IT8705F и IT8712F, разрешение АЦП равно 0,016 В. Для современных моделей, типа IT8686E или IT8688E оно равно 0,012 В. Эту характеристику также нельзя игнорировать, потому что мы будем обращаться к ней постоянно. Ниже приведена сводная Таблица 1 для некоторых моделей EC-контроллеров, содержащая данную характеристику.
Модель | Разрешение, В |
IT8705, IT8712 | 0,016 |
IT8620, IT8628, IT8686, IT8688, IT8689, IT8721, IT8728, IT8771, IT8772 | 0,012 |
IT8790, IT8791, IT8792, IT8795 | 0,011 |
IT8665 | 0,0109 |
Регистры
реклама
Любое программируемое электронно-цифровое устройство обладает регистрами. Они представляют собой энергозависимые ячейки памяти с определёнными доступом – RO (Read-only – только чтение), RW (Read-Write – чтение и запись), WR (Write-only – только запись) и другие флаги. Энергозависимые означает, что при подаче питания на устройство его регистры находятся в обнулённом либо состоянии «по умолчанию». Через регистры происходит конфигурирование устройства – определение его режима работы, параметров и различных настроек. EC-контроллер также имеет свой набор регистров, но в контексте данной темы, мы будем обращаться только к имеющим флаг доступа RO, содержащим числовые значения показаний температур и напряжений. Важно заметить, что все регистры ЕС-контроллера являются 8-разрядными, т.е. могут хранить целочисленные значения от 0 до 255.
Традиционно ITE не меняет номера адресов регистров для хранения значений температур и напряжений. Они одинаковы для всех моделей «мультиконтроллеров». Например, в регистры 29h, 2Ah и 2Bh АЦП сохраняет показания температуры, уровни которых поступили на входы мультиплексора TMPIN1, TMPIN2 и TMPIN3 (Рис. 1) соответственно. Эти адреса определены ещё со времён устаревшей модели IT8705F и аналогично задействованы в новых моделях ITE. Сигналы, приходящие на входы VIN0–VIN7 мультиплексора сохраняются после оцифровки АЦП в регистры 20h–27h соответственно. Значение напряжения на элементе питания VBAT (3-вольтовая батарея) сохраняется в регистр 28h. Вся эта информация находится в технической документации на изделие и при желании вы можете подробнее ознакомиться с ней самостоятельно. К сожалению, ITE рассматривает свою техническую документацию, как конфиденциальную. Поэтому готовьтесь к тому, что найти в открытом доступе документацию для чего-то более нового, чем IT8728E, будет затруднительно. Ниже приведена сводная Таблица 2 для регистров, предназначенных для хранения температурных показаний и напряжений.
Адрес регистра, HEX | Вход мультиплексора |
20h | VIN0 / напряжение |
21h | VIN1 / напряжение |
22h | VIN2 / напряжение |
23h | VIN3 / напряжение |
24h | VIN4 / напряжение |
25h | VIN5 / напряжение |
26h | VIN6 / напряжение |
27h | VBAT / напряжение |
28h | VIN8 / напряжение |
29h | TMPIN1 / температура |
2Ah | TMPIN2 / температура |
2Bh | TMPIN3 / температура |
2Ch | TMPIN4 / температура |
2Dh | TMPIN5 / температура |
2Eh | TMPIN6 / температура |
2Fh | TMPIN7 / температура (возможно) |
Порты ввода-вывода
Итак, мы приблизились к самому интригующему разделу данной статьи, благодаря которой любой обладатель материнской платы с «мультиконтроллером» фирмы ITE сможет самостоятельно считывать показания аппаратного монитора. Но перед началом, читателю будет полезно ознакомиться с понятием портов ввода-вывода.
Фундаментальная архитектура персонального компьютера предусматривает наличие портов ввода-вывода, через которые происходит взаимодействие центрального процессора с различными устройствами. Однако такой способ организации доступа к регистрам аппаратных средств сегодня считается устаревшим. AMD, например, рекомендует обращаться к адресному пространству устройства, отраженному в оперативную память – Memory-mapped I/O Space. Все порты имееют уникальный номер и подразделяются на адресные и порты данных. Для поиска «мультиконтроллера» фирмы ITE программное обеспечение сначала использует пару из адресного и порта данных – 2Eh и 2Fh соответственно, а затем – пару 4Eh/4Fh. В первом случае всегда обнаруживается основной «мультиконтроллер», во втором – IT8792E и аналогичные ей микросхемы.
Практическая чаcть
реклама
Для считывания регистров EC-контроллера, перечисленных в Таблице 2, воспользуемся хорошо известным программным обеспечением Thaiphoon Burner. Программный мониторинг был реализован в версии 16.2.0.0 в начале прошлого года, но ограничен он поддержкой только контроллеров фирмы ITE.
После запуска приложения в главном меню Tools выбираем команду Hadware Monitoring либо нажимаем F4 на клавиатуре. Программа начнёт поиск основного и вторичного контроллеров через две пары портов ввода-вывода – 2Eh/2Fh и 4Eh/4Fh. Если ваша материнская плата снабжена «мультиконтроллером» фирмы ITE и дополнительной микросхемой аппартного монитора, типа IT8792E, то первоначально программа отобразит для вас список температурных линий и линий напряжения, как на скриншоте ниже (Рис. 2).
Рис. 2. Мониторинг температур и напряжений в Thaiphoon Burner
Как видим, пока достаточно затруднительно определить, какое именно напряжение отслеживается, например, по линии VIN6 или температура, например, TEMP2. Чтобы изменить название каждой линии в программе пользователю необходимо знать, какие температуры и напряжения отображаются в BIOS Setup Utility. Как было сказано выше, все напряжения меньше 3,072 В не требуют делителя, который, рассчитываемого по Формуле 1. Поэтому их легко определить, сопоставив с показаниями в BIOS. Эта рекомендация, кстати, также актуальна и для температур. Что касается напряжений +3,3 В, +5 В и +12 В, то для их вычисления нам потребуется значение делителя. В большинстве случаев для напряжения +12 В делитель равен 6, а для +3,3 В и +5 В он определяется согласно схемотехнической документации или, при её отсутствии, подбором.
Нажав кнопку Advanced, программа останавливает считывание регистров EC-контроллера и предоставляет пользователю возможность изменять название линий, адрес регистров (столбец Reg#), указывать нужное разрешение АЦП (столбец DAC formula), добавлять делитель напряжения (столбец DAC formula), задавать адресный порт (столбец I/O Port). Рядом с кнопкой Advanced располагается список профилей для некоторых материнских плат Gigabyte. Профили, содержащие в своём названии Generic for, являются типовыми, т.е. общими для всех материнских плат, основанных на конкретном чипсете. Untested-профили созданы по схемотехнической документации. В режиме Advanced пролистайте список профилей, чтобы иметь представление о том, какие делители определены для перечисленной выше тройки напряжений. На примере материнской платы Gigabyte GA-AX370 Gaming K5 подробно рассмотрим создание профиля в Thaiphoon Burner, обратившись к её схемотехнической документации.
реклама
Из первой части данной статьи нам известно, что линии SYS_TEMP, PM_TEMP и CPU_TEMP, «мультиконтроллера» подключены к входам EC-контроллера TMPIN1, TMPIN2 и TMPIN3 соответственно. Согласно Таблицы 2 значения температур считываются из регистров 29h, 2Ah, и 2Bh соответственно. В Thaiphoon Burner в режиме Advanced изменяем строку TEMP0 на Температура в системе, TEMP1 – на Температура чипсета, TEMP2 – на Температура процессора. У вас должно получиться так, как показано на скриншоте ниже (Рис. 3). Чтобы войти в режим редактирования строки поставьте курсор на нужную строку и щёлкните мышкой ещё раз.
Рис. 3
В столбце DAC formula для температуры можно ввести корректировочный коэффициент, например 0,99, который умножается на её текущее значение. Но делать это следует только в тех случаях, когда ощущается значительная погрешность в измерении температурным датчиком. Лучше оставить это поле пустым.
Теперь приступим к VIN-линиям. Повторно воспользуемся схемой подключения (Рис. 4) для определения нужных нам адресов регистров и составления формул.
Рис. 4. Схема подключения VIN-линий ITE IT8686E к источникам напряжения
Итак, по крайней левой линии VIN4 на схеме на вход VIN4 мультиплексора приходит сигнал от источника VCore SOC (SOC_SIO). Согласно Таблицы 2 оцифрованный уровень напряжения сохраняется в регистр с адресом 24h.
По линии VIN0 традиционно измеряется напряжение на ядре процессора CPU VCore, термодиод которого подключён ко входу VIN0 мультиплексора. Согласно Таблицы 2 значение напряжения сохраняется в регистре с адресом 20h. Напряжение VDDQ на модулях оперативной памяти измеряется по линии VIN6 и записывается в числовом выражении в регистр 26h. Первые три напряжения по уровню ниже 3,072 В, поэтому в столбце DAC formula для них указывается только разрешение АЦП – 0,012 В.
Следующие три напряжения на схеме (Рис. 4) VCC3 (+3,3 В), VCC (+5 В) и +12V (+12 В) выше 3,072 В, поэтому, чтобы АЦП смог их измерить, их уровни понижаются параллельным включением в цепь резистора. Итак, по Формуле 1 рассчитаем делитель напряжения VCC3, которое приходит на вход VIN1 мультиплексора: (6,49+10)/10=1,649. В Thaiphoon Burner находим строку VIN1 переименовываем её в +3,3 В. Далее в столбце DAC formula прописываем формулу расчёта напряжения: 0,012*1,649. Аналогично рассчитываем делитель для напряжений VCC и +12V, измеряемых по линиям VIN3 и VIN2 соответственно: (15+10)/10=2,5 и (75+15)/15=6. Также по аналогии изменяем название линий VIN3 и VIN2 в Thaiphoon Burner и прописываем формулы с учётом делителей: 0,012*2,5 и 0,012*6. Последнее на схеме напряжение A_VDDP поступает на вход VIN5 мультиплексора и сохраняется в числовом виде в регистре 25h. И для полноты эксперимента линию VIN8 переименовываем в VBAT и задаём формулу расчёта в виде 0,012*2. Таким образом, у вас должно получиться, как на скриншоте ниже (Рис. 5).
Рис. 5
Теперь, когда наш профиль готов, мы можем его сохранить в виде файла. Для этого нажимаем кнопку Save, задаём желаемое название профиля и нажимаем ОК. Профиль будет создан в текстовом виде и сохранён в каталоге HwProfiles. При желании вы можете отредактировать его в любом текстовом редакторе.
Теперь добавим в профиль поддержку IT8792E, который обнаруживается через опрос адресного порта 4Eh. Как было сказано в первой части статьи, данная микросхема имеет три температурных входа EC_TEMP1, EC_TEMP2 и EC_TEMP3, подключенных к наружным термисторам материнской платы. В соответствии с Таблицей 2 целочисленные значения температур записываются в регистры 29h, 2Ah и 2Bh соответственно. В Thaiphoon Burner находим строки TEMP0, TEMP1 и TEMP2 и переименовываем их в Температура PCIE 8x, Температура PCIE x16 и Температура в системе соответственно.
Для разбора VIN-линий снова обратимся к схеме их подключения (Рис. 6).
Рис. 6. Схема подключения VIN-линий ITE IT8792E к источникам напряжений
Обратите внимание, что уровень напряжений 5VSB и VPP_MEM понижается резисторами ECR35 и ECR12 соответственно. Поэтому делитель для 5VSB и VPP_MEM одинаковый и равен (6,49+10)/10=1,649. Рекомендую его использовать вам в первую очередь, когда будете самостоятельно подбирать делители для тех или иных напряжений, т.к. он почти универсальный. Остальные напряжения делителей не требуют. Теперь можно приступить к переименованию строк в Thaiphoon Burner, сопоставляя им названия согласно схеме (Рис. 6): VIN0 – VCORE, VIN1 – DDRVTT, VIN2 – PM_1V05 и т.д. Нажмите кнопку Save для сохранения профиля. В конечном итоге результат вашей работы должен выглядеть, как на скриншоте ниже (Рис. 7).
Рис. 7
Также вы можете упорядочить строки в наиболее приемлемом для вас виде. Для этого в режиме редактирования доступно контекстно меню, из которого необходимо выбрать команду Move up или Move down для смещения строки вверх или вниз. Однако гораздо быстрее это делать сочетанием клавиш Ctrl+U или Ctrl+J. Помимо этого через контекстное меню предусмотрено добавление, удаление и вставка строк. Не забывайте сохранять профиль после каждого изменения.
Итог
После прочтения материала, молодое поколение наверняка почувствовало себя «хакерами». Ещё бы! Мир программирования компьютерного железа невероятно увлекательный и таинственный. Я постарался максимально доходчиво рассказать простому пользователю, как устроен аппаратный мониторинг материнских плат, приоткрыть завесу тайны в отношении того, как взаимодействует программное обеспечение с EC-контроллерами. Возможно, для кого-то эта информация не нова, но я уверен, что большинство ею заинтересовалось. Теперь вы знаете, по какому принципу HWINFO и AIDA64 считывают показания температур и напряжений. Но благодаря данной статье и возможностям Thaiphoon Burner любопытный читатель может пойти ещё дальше, а не ограничиваться возможностями данных программ.