Рабочее место школьника: ремонт материнки Asus H97M-E
Иногда так бывает: выключил компьютер, все было в порядке. На следующий день его включаешь, а он не включается. Кто знает, какие гремлины порезвились в нем? Но факт остается фактом: экран черный, POS-коды не пищат, материнка по неведомой причине не стартует.
Вот так и у меня стала выкаблучиваться маманька Asus H97M-E. Что делать? Поперетыкал память во все слоты, понажимал все возможные клавиши типа ESC, F2, F10, Del, ничего. Сбросил CMOS - ничего. Сгонял к знакомым, взял заведомо рабочую память на проверку, воткнул ее - ничего. Вот уж свезло так свезло.
Начинаю вдумчиво читать Интернет, проверяю известные напряжения, и закрадывается у меня подозрение, что все это дело похоже на то, что в материнке слетел BIOS. Внимательно смотрю на материнку и вижу, что висьминожная микросхема GD25B64BPIG заботливо установлена на разъемные контакты самим производителем. Звоню знакомым электронщикам: есть ли программатор для SPI-флешки? Нет говорят, для SPI нет.
Роюсь и интернете дальше по запросам «Самодельный программатор SPI FLASH из STM32 быстро и просто на коленке» - нет, ничего простого и вменяемого не нахожу. Тогда может быть есть на Arduino? Опа, есть такое: у какого-то любителя паять в разделе тенохрень. Вроде должно получиться!
Разбираю чудо-лампу, которую делал сын для школьного проекта на адресной цветной светодиодной ленте, внутри которой спрятана Arduino Uno. Конпеляю, прошиваю Ардуину, собираю схему на макетке, вставляю микросхему FLASH, и... ничего! Ничего из нее не читается. Пару часов разбираюсь что не так: прошивка Ардуино не та? Ардуино не видит SPI флешки? Дохлая флешка? В итоге оказывается, что фраза автора «Понадобится Arduino Pro Micro ну или любая другая, будет отличаться только распиновка на Ардуино» - эта фраза означает «ну вы сами разберитесь что куда подключать». Оказалось, что в схеме все контакты надо было подключать к одноименным сигналам, за исключением одной ножки. Все контакты SPI подключаются по именам MISO, MOSI, CLCK. А загадочный контакт 2, который в Pro Micro называется SDA и является частью I2C, надо подключать не к SDA в Arduino UNO, а так и оставить висеть на 2-й ножке. Вот такой ребус.
В результате программатор-на-коленке заработал. Фуллдамп снялся, но понять битый он или не битый никак не представлялось возможным. Да и вообще неясно было, в БИОСе ли вообще дело. Чтобы можно было зашить обратно, на всякий случай второй раз снял фуллдамп, проверил различия с первым, различий не было. Но коль есть программатор, решил прошить новый БИОС. Взял с сайта производителя самый свежий бинарь, оторвал 2Кб заголовок через утилиту dd и ее опцию skip. Насколько я понял, этот заголовок используется фирменным флешером, а для прямой прошивки он не нужен. Прошил флешку, перепроверил фуллдамп, увидел что все прошилось байт в байт. Вставил и материнку, и... результат на фото! Материнка завелась и работает на новом БИОСе.
Оборудование:
- Материнка Asus H97M-E
- Проц Intel Core i3-4130 @ 3.40GHz, подаренный вместе с памятью товарищем TolkoSprosit
- Память Crucial DDR3 4Gb
- Кусок железки вместо кулера на время экспериментов, помазанный капелькой Baraf-S
- Arduino Uno из 2010 года
- Ноутбук Samsung 2013 года выпуска для прошивки Ардуины
- «Стеклянная» макетка
- Мультиметр Mastech MY68
Полный размер: https://ibb.co/v14xwbT
>>> Просмотр (1820x1024, 2538 Kb)