Перейти к содержанию

HDMI-CEC

Пульт телевизора, который заодно выключает ресивер и проигрыватель, работает через CEC — отдельную линию в разъёме HDMI. В STM32F7, H7 и G0 есть аппаратный контроллер этого протокола, так что микроконтроллер может участвовать в такой сети.

Обновлено Редакция GAW

HDMI-CEC (Consumer Electronics Control) — часть стандарта HDMI: протокол высокоуровневого управления между аудиовизуальными устройствами. По RM0433 (разд. 59.1) он работает на малой скорости и рассчитан на минимальные затраты на обработку и память. Для CEC в разъёме HDMI выделена отдельная однопроводная линия — см. распиновку HDMI; видео и звук идут по другим линиям, а служебные данные о мониторе — по DDC.

Контроллер CEC в STM32

В STM32F7, H7 и G0 есть аппаратный контроллер HDMI-CEC. По RM0433 (разд. 59.2):

  • соответствует HDMI-CEC v1.4;
  • тактируется отдельным тактом 32 кГц и работает в режиме Stop — устройство может спать и просыпаться по сообщению; у STM32F7 этот такт берут от LSE или от HSI/488 (RM0385, разд. 5.2);
  • собственный адрес задают в регистре OAR, а режим прослушивания позволяет принимать сообщения для других адресов, не влияя на линию;
  • время свободной линии перед передачей выбирается автоматически по истории или задаётся программно — 7 вариантов;
  • допуск на длительность принимаемых битов — стандартный или расширенный.

Ошибки и арбитраж

ФлагЧто означает
BREошибка фронта бита при приёме
SBPE, LBPEслишком короткий или слишком длинный период бита
TXERRошибка передачи
ARBLSTпотеря арбитража, передача повторяется автоматически
TXUDR, RXOVRопустошение передачи, переполнение приёма

Генерацию бита ошибки при BRE и LBPE можно включать отдельно; при SBPE он выдаётся всегда.

Вместе с CEC в HDMI работают EDID — описание возможностей монитора — и сигнал HPD, сообщающий о подключении. Состав периферии семейств — на страницах STM32H7 и STM32G0.

Частые вопросы

Что передаётся по линии CEC?

Команды управления между устройствами, подключёнными по HDMI, — так один пульт управляет телевизором, ресивером и проигрывателем. По RM0433 это протокол высокоуровневого управления аудиовизуальной техникой, работающий на малой скорости с минимальными затратами на обработку. Изображение и звук по CEC не идут — для них линии TMDS.

Зачем контроллеру CEC отдельный такт 32 кГц?

Чтобы работать в режиме Stop, когда основные такты выключены: устройство спит и просыпается, только когда по линии пришло сообщение для него. В STM32F7 этот такт берут от LSE или от HSI, делённого на 488 (RM0385, разд. 5.2); 16 МГц / 488 ≈ 32,8 кГц (наш расчёт).

Как контроллер CEC в STM32 решает конфликты на линии?

Как в любой однопроводной шине с арбитражем: передатчик следит за линией, и если видит не тот уровень, который выставлял, фиксирует потерю арбитража — флаг ARBLST — и автоматически повторяет передачу позже. Перед началом передачи контроллер выдерживает время свободной линии, которое выбирает сам по истории передач или задаёт программа.

Источники

  1. STMicroelectronics. RM0433: STM32H742, STM32H743/753 and STM32H750 Value line advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — разд. 59.1: CEC — часть стандарта HDMI, протокол высокоуровневого управления между аудиовизуальными устройствами; работает на малой скорости с минимальными затратами на обработку и память; контроллер HDMI-CEC даёт аппаратную поддержку протокола; разд. 59.2: соответствие HDMI-CEC v1.4; независимый такт ядра CEC 32 кГц; работа в режиме Stop; настраиваемое время свободной линии перед передачей — автоматически по состоянию и истории или программно (7 вариантов); адрес устройства OAR; режим прослушивания сообщений для других адресов без влияния на линию; стандартный и расширенный допуск приёма; ошибки приёма — ошибка фронта бита BRE, слишком короткий SBPE и слишком длинный LBPE период бита, настраиваемая генерация бита ошибки; ошибка передачи TXERR; потеря арбитража ARBLST с автоматическим повтором; опустошение передачи TXUDR, переполнение приёма RXOVR
  2. STMicroelectronics. RM0385: STM32F75xxx and STM32F74xxx advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — гл. 39 HDMI-CEC controller (CEC); разд. 5.2: такт HDMI-CEC — от LSE или от HSI, делённого на 488

Нашли ошибку?