PIC-контроллер на хэшборде — что делает MCU, почему срывается инициализация и как диагностировать без пайки

PIC-контроллер (или MCU на хэшборде) — это локальный микроконтроллер на плате майнера, который читает «паспорт»/калибровки из памяти, опрашивает датчики, готовит плату к работе и общается с системным контроллером. Если MCU не завершает инициализацию, плата остаётся «немой»: в логах появляются «PIC init fail», «chain missing», «find 0 asic», растут ошибки обмена (CRC), падает хешрейт и стабильность.

Коротко о MCU

  • MCU — «дежурный» на хэшборде: проверяет датчики, читает калибровки, запускает цепочку чипов и отдаёт статусы в главный контроллер.
  • Срыв старта даёт «PIC init fail/chain missing/find 0 asic», всплески CRC и форсаж вентиляторов.
  • Быстрая проверка: вернуть сток-профиль, снять логи, исключить питание/шлейфы/перегрев, изолировать конкретную плату.
  • Если в стоке и на эталонном PSU симптом «ходит» за платой — нужна стендовая диагностика хэшборда (MCU/EEPROM/шины/силовые).

Зачем на хэшборде MCU и что он делает

  • Читает «паспорт» и калибровки платы из энергонезависимой памяти, подготавливая режимы запуска (см. EEPROM).
  • Опрашивает датчики: температуры, служебные сигналы питания, состояния линий.
  • Инициализирует шины и цепочку чипов, переводя их в базовый рабочий режим.
  • Общается с системным контроллером майнера, передаёт «готов/не готов», телеметрию и коды ошибок.
  • Реагирует на аварии: перегрев, потерю связи, невалидные данные — включает защитные сценарии, инициирует повторный старт.

Примечание: в обиходе закрепилось «PIC», но конкретная архитектура MCU может отличаться между семействами/ревизиями. Логика и роль узла остаются теми же.

Как плата стартует (упрощённая последовательность)

  1. Подача питания, самотест MCU.
  2. Считывание EEPROM: паспорт/калибровки, служебные флаги.
  3. Проверка датчиков и линий: температуры, базовые напряжения, сигналы «готовности».
  4. Настройка интерфейсов, подготовка цепочки ASIC-чипов.
  5. Обмен с системным контроллером: статусы, коды, телеметрия.
  6. Выход на базовые частоты/напряжения и дальнейшая адаптация под условия.

Срыв возможен на каждом шаге: от «битых» калибровок до «шумной» шины и просадок по питанию.

Где чаще всего «ломается» инициализация MCU

  • Невалидные данные/контакт памяти — MCU не получает корректный «паспорт»/параметры запуска (см. EEPROM).
  • Датчики «врут» или выпали — алгоритм уходит в защиту: форсаж вентиляторов, троттлинг, перезапуски.
  • Питание/земля «шумят» — просадки, «пила», окисленные коннекторы и перегретые жгуты.
  • Шлейфы/порты — неплотная посадка, износ, микротрещины, перекрученные кабели.
  • Несостыкованные версии/ревизии — редкие случаи несовместности прошивки/конфигов и ревизии железа.

Как это видно в логах

Сообщение/симптом Что означает Возможные причины
PIC init fail / MCU init error MCU не завершил старт Питание/земля, «битый» паспорт, шум/шина, шлейф/порт, версия/ревизия
EEPROM error / EEPROM NG Паспорт/калибровки не читаются/невалидны Контакт/данные памяти, несоответствие ревизии
chain X missing / find 0 asic Плата «немая», цепочка не поднялась Срыв MCU/EEPROM/датчиков, шлейф/порт, просадки по PSU
CRC counter high (особенно на старте) Ошибки целостности обмена Шум/наводки, плохая земля, перегрев, плохой кабель
thermal/fan аномалии при запуске Защита уходит в форсаж Выпавший датчик, неверные калибровки, локальная «горячая точка»

Для примеров и чтения формулировок используйте разбор Kernel log.

Пошаговая диагностика MCU без пайки

  1. Сток-профиль. Отключить разгон/касты. Цель — убрать влияние агрессивных параметров на стартовую логику MCU.
  2. Снять логи «с нуля». Kernel/current/history сразу после холодного пуска, отметить временные метки ключевых сообщений.
  3. Окружение и чистка. Свободный поток воздуха, чистые радиаторы/решётки. Перегрев силовой части на старте резко снижает стабильность.
  4. Питание и земля. Осмотреть силовые кабели/коннекторы, нагрев пинов. По возможности повторить запуск с эталонным блоком питания.
  5. Шлейфы и порты. Поменять шлейфы между платами и/или порты на контроллере — понять, следует ли ошибка за кабелем/портом.
  6. Изоляция платы. Оставить одну подозрительную плату. Если срыв инициализации повторяется только с ней, круг сузился до её логики/памяти/шины.
  7. Сопоставить с EEPROM/датчиками. Внимательно смотреть соседние ошибки про память и аномальные температуры; нередко это первопричина.
  8. Повтор на другом стенде. Если в стоке, на другом PSU/шлейфах и при чистом обдуве симптом держится за конкретной платой — требуется стендовая диагностика.

Совет: фиксируйте, на каком шаге появляются «PIC init fail/EEPROM/chain/CRC» — это ускоряет разделение «кабель/питание» vs «логика платы».

«Симптом → причина → действие» (шпаргалка)

Симптом Вероятные причины Что сделать сначала Если не помогло
PIC init fail / MCU init error Просадки/шум по питанию, «битый» паспорт, шлейф/порт, несостыкованные версии Сток-профиль, эталонный PSU, чистка/охлаждение, перекинуть шлейфы/порты, повторный холодный старт с логами Изоляция платы; сервис: диагностика MCU/EEPROM/шины; проверка соответствия ревизий
EEPROM error / NG Контакт/данные памяти, ревизия/калибровки Проверка кабелей/контактов, запуск с одной платой, сток-прошивка Восстановление по мануалу; сервис платы/памяти (EEPROM)
chain missing / find 0 asic Срыв инициализации цепочки чипов PSU/кабели, шлейф/порт, перегрев/датчики Если повторяется на одной плате — стендовая диагностика
CRC на старте высокий Шум/помехи, плохая земля, «шевелящийся» контакт Эталонный PSU, перестановка шлейфов, контроль заземления Диагностика линий/платы; см. CRC
fan/thermal аномалии Выпавший датчик, кривая калибровка Проверить показания, сопоставить с логом, вернуть сток Диагностика датчиков/калибровок/логики

Почему «прошивкой MCU» проблемы обычно не лечатся дома

  • Закрытые образы и привязка к ревизиям. Производитель защищает низкоуровневую прошивку MCU.
  • Риск «окирпичить» плату. Сбой записи/неверный образ = ремонт только в сервисе.
  • Часто первопричина — «железо». Питание, контакты, датчики, шины — то, что прошивкой MCU не исправить.

Рекомендация: перед любыми «прошивочными» идеями исключите питание/кабели/охлаждение и корректность «паспорта» в памяти.

Практические сценарии

  • Холодный старт: «PIC init fail», затем повтор. На эталонном PSU старт проходит — причина в питании/земле/нагрузке.
  • Перестановка шлейфов: «chain 1 missing» стал «chain 2 missing». Ошибка следует за кабелем — заменить шлейф, осмотреть порт.
  • Летом после чистки ошибка исчезла. Пыль мешала охлаждению силовой части, MCU «падал» при прогреве.
  • CRC всплески только на старте. Ищем «шум»/просадку в момент инициализации, проверяем распределение нагрузки и заземление.

Профилактика для стабильного старта MCU

  • Чистота и поток. Регулярная продувка, правильная ориентация по воздушному тракту.
  • Питание с запасом. Не работать на пределе; качественные кабели/коннекторы; короткая линия, нормальная земля.
  • Фиксация жгутов. Исключить натяжение/перегибы; иметь комплект исправных шлейфов для диагностики.
  • Сток в жару. Умеренные частоты, плавный прогрев.
  • Журнал обслуживания. Записывать чистки, замены, версии прошивок и появление ошибок.

FAQ

Почему «PIC init fail» иногда проходит после перезагрузки? Пограничные условия (температура, контакт, питание). Повторяемость говорит о системной причине — её надо устранить.

«EEPROM NG» — это точно MCU? Не обязательно. Чаще первична память/контакт/несоответствие ревизии, а MCU лишь сообщает о проблеме (см. EEPROM).

Зачем смотреть CRC, если речь про MCU? CRC отражает качество обмена и питания; всплески на старте указывают на «шум»/просадки (см. CRC).

Можно ли диагностировать MCU без пайки? Да: методика «сток → PSU → шлейфы → изоляция платы → логи» обычно достаточно точно отделяет «кабель/питание» от проблемы локальной логики.

См. также

Task Runner