В этой статье пойдет речь о микросхеме, которая управляет работой всего ноутбука, в том числе, его включением. Её неисправности приводят к значительным последствиям для пользователя и чаще всего требуют ремонта материнской платы в сервисе.
Задачи мультиконтроллера
Мультиконтроллером, или, по-английски 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. Поэтому, когда это возможно, флэшку перешивают. В некоторых сервисах имеется специальный программатор от Сергея Вертьянова, который позволяет прошивать почти любые флэшки:
Для справки: схема плат Asus K40AA K50AA и схема нетбуков ASUS 1015P.