Начало » Микроконтроллеры » Не стартует материнка от кнопки питания. Лечим очень нетривиальным методом

 
 
 

Не стартует материнка от кнопки питания. Лечим очень нетривиальным методом

02.04.18   maddiego   5 367   7  
Приветствую читателей журнала Датагор! Есть у меня пожилой компьютер, которому уже исполнилось лет десять. Параметры у него соответствующие: «пенёк» 3,0 ГГц, пара Гб ОЗУ и древняя материнская плата EliteGroup 915-й серии.

И задумал я куда-нибудь старичка пристроить (подарить, продать), т. к. выбрасывать жалко. Но мешала задуманному одна неприятность: у материнки не срабатывало включение от кнопки питания, и что бы я ни делал, начиная от проверки проводов и заканчивая прозвонкой транзисторов на плате, проблему найти так и не смог. Отдавать в ремонт спецам — ремонт окажется дороже всего компа.

Думал я, думал и нашёл способ запустить моего бедолагу. Выдернул батарею BIOS-а, от чего комп испугался и сразу стартанул при следующем появлении питания! А дальше — почти в каждом BIOS-е есть запуск ПК от любой кнопки клавиатуры или кнопки POWER на клавиатуре. Казалось бы, проблема решена. Ан нет, есть нюансы. С USB-клавиатур запуск не срабатывал. Плюс не хотелось пугать нового хозяина, компьютер должен стартовать от привычной кнопки питания на корпусе.

Пришлось решать проблему по-своему, а наработками спешу поделиться с вами.

ХОД МЫСЛЕЙ МОИХ

У нас есть материнская плата, которая отказывается запускаться, PS/2 порт для клавиатуры, знания в области микроконтроллеров и любопытство.
А что если, собрать схемку, которая с одной стороны, слушает кнопку питания на корпусе, а с другой отправляет код нажатия кнопки POWER на клавиатуре прямо в PS/2 порт? Должно сработать!

Полез я гулять по Интернету, искал статьи, описывающие протоколы работы PS/2 порта клавиатуры, и выяснил, что протокол достаточно простой и очень похож на двухпроводной протокол I2C или TWI, а команды отправляются пачками в основном в одну сторону.
Не стартует материнка от кнопки питания. Лечим очень нетривиальным методом
Распиновка гнезда PS/2 на материнской плате



Пример посылки одного байта


Существуют два стандарта клавиатур, старая ХТ и новая АТ, какая из них у меня на компьютере, я точно не знал. Получается, клавиатура отправляет сперва стартовый бит 0, после пишет 8 битов младшим битом вперёд, далее отправляет бит чётности и стоповый бит. Всего 11 битов на пакет. Однако, клавиатура отправляет минимум 3 таких пакета. Первый, это код нажатой кнопки, затем, код отпускания кнопки 0xF0, а дальше код отпущенной кнопки.

Пример отправки пакетов при нажатии кнопки «J»


Не все кнопки содержат в себе всего 1 байт кода, есть и по 2, 6 и даже 8 байт! Например, безобидная кнопка PAUSE, шлёт пулемётную очередь из 8 байтов: 0xE1, 0×14, 0×77, 0xE1, 0xF0, 0×14, 0xF0, 0×77.

Изучив особенности протокола, я собрал быстро макетную плату с микроконтроллером посередине и дисплеем сверху, дабы попытаться принять команды от PS/2 клавиатуры и узнать что да как с протоколом по таймингам. К сожалению, я принимал только абракадабру.

Всё-таки без осциллографа не обойтись, подумал я и давай применять свой опыт из предыдущей статьи про модуль к проектору в использовании аудиокарты компьютера в качестве осциллографа. У аудиокарты стереовход, т.е. у меня есть самодельный двулучевой осциллограф до 16 кГц!

И начал я разбирать свою PS/2 клавиатуру. Следуя по дорожкам, нашёл контакты, отвечающие за кнопку POWER на платке клавиатуры. Припаял два провода к ножкам DATA и CLOCK, а другой конец проводов пустил на аудиоштекер типа «джек», который засунул в синий разъём аудиокарты этого же компьютера. Включил компьютер, поставил на запись канал линейного входа, и начал перебирать кнопки клавиатуры.
Заранее отмечу, мне нужна была последовательность команд кнопки POWER, а она в свою очередь выключает испытуемый компьютер, я откусил провод CLOCK идущий от платы клавиатуры к материнской плате и спокойно смотрел, что да как она передаёт в никуда.

Увидел такое чудо


Мне снова повезло: частота передачи сигнала от клавиатуры составила около 15 кГц, что является почти потолком пропускной способности аудиокарты. Это видно на рисунке ниже: края импульсов гладкие как мыло, но понять что к чему можно.

Первый пакет данных от клавиатуры


Как видно, сверху линия данных DATA, снизу линия тактов CLOCK. Проведя вертикали, можно выудить биты: 0 00000111 0 1. Тут идёт первый стартовый бит 0, после 8 битов кода кнопки, бит чётности 0 и стоповый бит 1. Т.е. клавиатура отправила код 0xE0, он же 224.

Затем следовала вторая часть кода кнопки.

Второй пакет данных с клавиатуры


Здесь уже был отправлен код 11101100, т.е. 0×37. Сложив их вместе, получаем 0xE0, 0×37. Сравнив с таблицей кодов я окончательно понял, как всё работает.

Пример кодов с Википедии


Дело за малым. Написать программку для мелкого микроконтроллера Tiny13 (smd, 8 ног), которых у меня накопилось как семечек, и всё это спаять вместе по невероятно сложной схеме!

Принципиальная схема устройства на бумаге



Схема на железе


ПРОГРАММА

Не стал я особо заморачиваться над кодом, выдернул из исходников предыдущих своих проектов функцию отправки байта по I2C и немного допилил её, добавив проверку бита чётности. Вывел управление на одну кнопку, при нажатии которой, происходит отправка трёх байтов на PS/2 порт и всё это дело прошил в микроконтроллер.

ПРАКТИКА

Лень было мне травить такую микроплату, сделал всё в воздухе. Для максимального удобства при работе с кнопкой питания, припаял контроллер сразу к штырькам, которые отвечают за кнопку питания компьютера. Пришлось перерезать дорожку от этой ножки, чтобы логика материнской платы не мешала контроллеру.

Перерезанная дорожка от ножки для родной кнопки питания


Может возникнуть вопрос, почему я не применил готовую платку от клавиатуры и начала писать программу и паять весь этот огород? Я хотел оставить гнездо PS/2 свободным для подключения клавиатуры.
Мой контроллер при нажатии на кнопку питания отправит материнской плате команду на запуск и больше никак не будет взаимодействовать с PS/2. Тогда как плата из клавиатуры отвечала бы на команды от ПК и в одном разъёме две клавиатуры, скорее всего, «поругались» бы.


Микроконтроллер на материнской плате



Подключение к гнезду PS/2 от клавиатуры



Общий вид



До ремонта этот бедолага служил мне вот в таком виде, без корпуса


ФАЙЛЫ

Прошивка для заливки (hex) 🕗 14/02/17 ⚖️ 543 b ⇣ 11
Программа в CodeVision AVR 3.12 (исходники) 🕗 14/02/17 ⚖️ 32,02 Kb ⇣ 10
Проект для опытов в Proteus v8.4 SP0 🕗 14/02/17 ⚖️ 19,15 Kb ⇣ 7
«Осциллограмма» в mp3-файле (открывать в любом аудиоредакторе) 🕗 14/02/17 ⚖️ 259,18 Kb ⇣ 10

ЗАКЛЮЧЕНИЕ

Собрал всё в корпус и подключил переднюю кнопку на родные штырьки от фронтальной панели. Теперь мою старую компьютерную систему можно включать и выключать как положено — кнопкой на корпусе и без проблем использовать любую PS/2 клавиатуру.
Ремонт удался, цель достигнута, плюс масса исследовательского материала!

Всем спасибо за внимание!
Тимур (maddiego)
Узбекистан, Ташкент
Профиль maddiego
Мне 27, с паяльником подружился в 10 лет. В 22 скатился в сферу микроконтроллеров.
 

Читательское голосование

Нравится

Статью одобрил 61 читатель.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Работа с датчиком DHT11. Строим термометр-гигрометр на ATMEGA8... Привет любителям электроники! Сегодня я решил познакомиться с датчиком влажности DHT11, который...
Схема на Датагоре. Новая статья Модуль ИК дистанционного управления ПК на микроконтроллере ATTiny26 для перелистывания презентаций. ИК-клавиатура на 2 кнопки... Привет всем датагорцам! Возникла у меня в рабочем порядке проблемка. Есть неплохой проектор на...
Схема на Датагоре. Новая статья Вертушка «Эстония 010». Новая система управления на Arduino UNO... Здравствуйте, уважаемые Датагорцы! Делюсь с вами собственным опытом по освоению платы Arduino UNO и...
Схема на Датагоре. Новая статья Таймер от 1 секунды до 100 часов на микроконтроллере ATMEL AT89C2051... Картинка от Novelty Kitchen Timers В радиолюбительской практике частенько необходим таймер:...
Схема на Датагоре. Новая статья Педаль сустейна для синтезаторов Casio CTK-3000, TECHNO KB-820, KORG, YAMAHA, TECHNO и др.... Доброго дня, уважаемые Датагорцы! В этой небольшой статье для начинающих описан мой опыт...
Схема на Датагоре. Новая статья Простой станочек для намотки + счетчик витков из калькулятора... Понадобилось мне в один прекрасный день намотать катушки, и сразу же возник вопрос как считать...
Схема на Датагоре. Новая статья Счётчик витков для намоточного станка на ATtiny13... Случилось так, что припекло мне трансформатор мотать, всё бы хорошо, да станка только не хватает -...
Схема на Датагоре. Новая статья Управление шаговым двигателем с ПК... Драйвер для шагового двигателя, который управляется с персонального компьютера. Привет всем! Решил...
Схема на Датагоре. Новая статья Микроконтроллеры. Связь с внешним миром. Часть 1. Клавиатура... Очень давно обещал продолжить цикл статей по работе с микроконтроллерами, но не было физической...
Схема на Датагоре. Новая статья Миниатюрный полный USB-RS232 адаптер на CP-2102 для подключения микроконтроллера к компьютеру по USB... В продолжение к теме «Программатор AVR910», про маленькое устройство, хочу предоставить вашему...
Схема на Датагоре. Новая статья Анатомия микроконтроллеров ATmega - 3. Прерывания.... Итак, наши светодиоды мигают, но мы не можем никак повлиять на программу, давайте добавим в схему...
Схема на Датагоре. Новая статья Анатомия микроконтроллеров ATmega - 2... Итак, продолжим издевательство над МК. Что же нам ещё такого сделать? Давайте заставим мигать...
 

Общаемся по статье 💬

«Не стартует материнка от кнопки питания. Лечим очень нетривиальным методом»

Комментарии, вопросы, ответы, дополнения, отзывы

 

<

WF1273

Вячеслав Читатель Датагора
  • Гражданин
Комментарий # 1 от 02-04-18, 16:05.
Ответить
  • С нами с 10.11.2015
  • 51 комментарий
  • 1 публикация
 
Из личного опыта: у всех компов (4 шт. Celeron 2,66GHz, материнка Foxconn) с подобной проблемой рано или поздно происходил сильный "бабах" в блоке питания при включении 220В на силовом щите (похоже, летели цепи "дежурки" в БП?).

<

doswindows

Алексей Читатель Датагора
  • Гражданин
Комментарий # 2 от 02-04-18, 21:45.
Ответить
  • С нами с 22.03.2009
  • 33 комментария
  • 0 публикаций
 
Хорошо придумано
А кнопка reset работает ?
Мне пару мамок попадались с похожей гиморойной кнопкой заруска и вот и reset на них тоже неработал

<

zas5522

Сергей Читатель Датагора
  • Гражданин
Комментарий # 3 от 03-04-18, 11:26.
Ответить
  • С нами с 3.10.2010
  • 3 комментария
  • 0 публикаций
 
Это если в "мамке" нет других неисправностей.

<

stupic

Сергей Читатель Датагора
  • Гражданин
Комментарий # 4 от 03-04-18, 23:32.
Ответить
  • С нами с 13.09.2008
  • 11 комментариев
  • 0 публикаций
 
У материнок ECS EliteGroup на 915-м часто попадалась проблема - отвал сокета. ECS экономил и использовал только Socket 775 в SMD исполнении, да ещё тогда как раз перешли на бессвинцовые припои, не отладив технологию.

<

MegaLeon

Дмитрий Читатель Датагора
  • Кандидат
Комментарий # 5 от 04-04-18, 18:41.
Ответить
  • С нами с 15.04.2009
  • 14 комментариев
  • 1 публикация
 
Много раз оживлял компы на работе, которые не включались, принудительным запуском блока питания, после если загружался комп, входил в биос. сбрасывал настройки по дефолту, перезагружал, и комп начинал работать от родной кнопки питания.

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 6 от 04-04-18, 19:24.
Ответить
  • С нами с 26.02.2006
  • 2 253 комментария
  • 274 публикации
 
Дима, я тебя уверяю, Тимур взялся за паяльник, когда исчерпал все софтовые и т.п. способы.

<

maddiego

Тимур Читатель Датагора
  • Гражданин
Комментарий # 7 от 05-04-18, 10:47.
Ответить
  • С нами с 2.08.2016
  • 25 комментариев
  • 8 публикаций
 
Спасибо всем за комментарии и дельные советы, моя цель была избавиться от этой мамки, ибо жаба душила её выкидывать, а время шло lol

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте корректны и вежливы, соблюдайте правила!


Налетай! Паяльники, станции, жала с доставкой

Офигенная миниатюрная рация на литии BaoFeng UV-5R, 5W, 5-15 км!

Тестер универсальный LCR-TC1 для транзисторов, конденсаторов, ESR, MOSFET и т.д.
  • smilelolhellowinkscepticthumbupbored
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashpartyhandshake
    musicnegativenowordspardonshoksleepunknown
    wackoyawnsainthelmethashsmokingwhew


Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.