Wiren Board 7.4: различия между версиями

Строка 445: Строка 445:


== Контроллер питания (Embedded Controller) ==
== Контроллер питания (Embedded Controller) ==
=== Что это такое и как работает ===
В контроллере Wiren Board есть специальная микросхема, которая управляет питанием — Embedded Controller, или EC. Перед стартом он включает в правильной последовательности рейки питания, а также проверяет нормальное ли напряжение на них, если с напряжениями всё хорошо то он даёт команду старта основного процессора.  
В контроллере Wiren Board есть специальная микросхема, которая управляет питанием — Embedded Controller, или EC. Перед стартом он включает в правильной последовательности рейки питания, а также проверяет нормальное ли напряжение на них, если с напряжениями всё хорошо то он даёт команду старта основного процессора.  


Кроме этого на нём сделаны:
Кроме этого на нём реализованы: сторожевой таймер, часы реального времени, будильники, обработка нажатий на кнопку ON/OFF и другие системные функции.
* Аппаратный watchdog.
* Часы реального времени RTC. Питаются от собственного отдельного аккумулятора, периодическая замена батарейки не требуется. Ёмкости аккумулятора хватает на 2-3 месяца работы часов при отключенном питании контроллера.
* Измерение температуры внутри корпуса.
* Управление выходом Vout с защитой от превышения напряжения. Если напряжение питания контроллера больше 29 В, то EC отключит выход Vout т.к. напряжение с Vin на Vout идёт напрямую и может повредить устройства подключенные к контроллеру. Если напряжение снизится ниже 28 вольт — выход будет включён снова.
* Включение контроллера по будильнику. Например командой <code>rtcwake -m off -s 60</code> можно выключить контроллер, он включится сам по истечении 60 секунд.
* Обработка нажатия кнопки On/Off. При подаче напряжения питания на любой из возможных входов (Vin, PoE, USB-C), контроллер включается автоматически. При коротком нажатии на кнопку — линукс штатно завершает работу после чего от основного процессора отключается питание и EC уходит в спящий режим. Длинное нажатие кнопки в любом случае просто отключит питание основного процессора и EC уйдёт в спящий режим. Выключение контроллера из Linux по команде <code>poweroff</code> возможно только если установлен будильник или вставлен модуль WBMZ4-BATTERY или WBMZ4-SUPERCAP. '''Важно''', будьте осторожны с выключением контроллера по команде <code>poweroff</code> если вы подключены к контроллеру удалённо и у вас нет к нему физического доступа, включить его можно будет в таком случае дождавшись когда сработает будильник, либо когда появится питающее напряжение.
У EC есть индикация его состояния. Для этого на плате имеется светодиод LED1. У него есть 4 статусных состояния.
* Рабочий режим — светодиод мигает 500 мс включен, 1000 мс выключен.
* Ожидание выключения Linux после нажатия кнопки - мигает 250 мс включен, 250 мс выключен.
* Проверяет рейки питания и пробует запуастить основной процессор - мигает очень часто 50 мс включен, 50 мс выключен.
* Спящий режим — очень короткие вспышки раз в 2 секунды.


=== Обновление прошивки EC ===
Подробнее смотрите на странице [[Wiren Board Embedded Controller]].
{{Anchor|ec-update-fw}}
Этот раздел про обновление прошивки EC, если вам надо обновить ПО самого контроллера Wiren Board, вам сюда [[Wiren_Board_Firmware_Update#web-ui|Обновление прошивки контроллера Wiren Board]].
 
Не обновляйте прошивку EC просто так — это опасная процедура, которая при сбое в питании контроллера может его сломать. Поэтому выполняйте процедуру только по рекомендации нашей техподдержки.
 
Текущую версию прошивки можно узнать командой <code>cat /sys/bus/spi/drivers/wbec/spi0.0/fwrev</code>.
 
Узнать, какая именно версия прошивки будет зашита так: <code>wb-ec-firmware-update --help</code>, внизу вывода будет имя доступного файла прошивки.
 
Для обновления прошивки:
# Подключите контроллер к источнику бесперебойного питания, или установите внутренний модуль резервного питания.
# Подключитесь к контроллеру по [[SSH]].
# Выполните команду <code>wb-ec-firmware-update</code>, дождитесь завершения процедуры.
# Перезагрузите контроллер — это важно.


== Сторожевой таймер ==
== Сторожевой таймер ==