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 — и автоматически повторяет передачу позже. Перед началом передачи контроллер выдерживает время свободной линии, которое выбирает сам по истории передач или задаёт программа.
Источники
- 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
- 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
Нашли ошибку?
Смотрите также
- HDMIТип A, mini и micro: TMDS, DDC, HPD, CEC, +5 В
- DDCСлужебная шина I²C видеоразъёма для чтения EDID; DDC2B, +5 В
- EDIDОписание монитора в его памяти: форматы, предпочтительный режим; читается по DDC
- HPD (Hot Plug Detect)Контакт, которым монитор сообщает о подключении и готовности EDID
- STM32F7Cortex-M7 до 216 МГц: F72x/F73x, F74x/F75x, F76x/F77x — линейки, память, загрузка и распиновки
- STM32H7Cortex-M7 от 280 до 600 МГц, двухъядерные H745/H747 — линейки, память, загрузка и распиновки
- STM32G0Cortex-M0+, до 64 МГц: G030–G0B0 Value line, G031–G0C1 — линейки и распиновки