Wiren Board Embedded Controller

Материал из Wiren Board

Описание

Индикатор Embedded Controller

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

Кроме этого на нём реализованы: сторожевой таймер, часы реального времени, будильники, обработка нажатий на кнопку ON/OFF и другие системные функции.

У EC есть индикатор LED1, установленный на плате контролера:

  • Рабочий режим — светодиод мигает 500 мс включен, 1000 мс выключен.
  • Ожидание выключения Linux после нажатия кнопки — мигает 250 мс включен, 250 мс выключен.
  • Проверяет рейки питания и пробует запустить основной процессор — мигает очень часто 50 мс включен, 50 мс выключен.
  • Спящий режим — очень короткие вспышки раз в 2 секунды.

Будильник. Вы можете включать контроллер по будильнику — это может быть полезным при работе от автономного источника питания. Будильник настраивается в консоли контроллера утилитой rtcwake, примеры:

  • Выключить сейчас и включить через 60 секунд:
    rtcwake -m off -s 60
    
  • Выключить сейчас и включить 31.07.2023 в 07:15 локального времени:
    1. Переведите дату в unix-формат командой date +%s -d "дата время":
      # date +%s -d "2023-07-31 07:15"
      1690787700
      
    2. Выключите контроллер и установить дату и время включения:
      rtcwake -m off -l -t 1690787700
      

Выключение контроллера из Linux по команде poweroff возможно только при установленном будильнике, или вставленном модуле WBMZ4-BATTERY / WBMZ4-SUPERCAP. Будьте осторожны с выключением контроллера из Linux, если у вас нет физического доступа к контроллеру — включить его можно будет в таком случае дождавшись когда сработает будильник, либо когда появится питающее напряжение.

Обработка нажатия кнопки On/Off. При подаче напряжения питания на любой из возможных входов (Vin, PoE, USB-C), контроллер включается автоматически. Для выключения на месте в контроллере есть кнопка ON/OFF, у которой есть два типа нажатий:

  • Короткое нажатие отправит операционной системе Linux команду poweroff, что приведёт к завершению работы и отключению питания.
  • Длинное нажатие принудительно выключает питание контроллера — это полезно, если по каким-то причинам Linux не может завершить работу сам.

Кроме этого на нём сделаны:

  • Аппаратный watchdog.
  • Часы реального времени RTC. Питаются от собственного отдельного аккумулятора, периодическая замена батарейки не требуется. Ёмкости аккумулятора хватает на 2-3 месяца работы часов при отключенном питании контроллера.
  • Измерение температуры внутри корпуса.
  • Управление выходом Vout с защитой от превышения напряжения. Если напряжение питания контроллера больше 29 В, то EC отключит выход Vout т.к. напряжение с Vin на Vout идёт напрямую и может повредить устройства подключенные к контроллеру. Если напряжение снизится ниже 28 вольт — выход будет включён снова.

Обновление прошивки EC

Этот раздел про обновление прошивки EC, если вам надо обновить ПО самого контроллера Wiren Board, вам сюда Обновление прошивки контроллера Wiren Board.

Текущую версию прошивки можно узнать командой cat /sys/bus/spi/drivers/wbec/spi0.0/fwrev.

Узнать, какая именно версия прошивки будет зашита так: wb-ec-firmware-update --help, внизу вывода будет имя доступного файла прошивки.

Для обновления прошивки:

  1. Подключитесь к контроллеру по SSH.
  2. Выполните команду wb-ec-firmware-update, дождитесь завершения процедуры.
  3. Перезагрузите контроллер — это важно.