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

ULPI (интерфейс внешнего USB PHY)

Встроенный PHY USB в большинстве STM32 работает только на Full Speed, 12 Мбит/с. Чтобы получить High Speed на 480 Мбит/с, к контроллеру OTG_HS подключают внешнюю микросхему физического уровня, и связывает их интерфейс ULPI.

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

ULPI (UTMI+ Low Pin Interface) — интерфейс между контроллером USB и внешней микросхемой физического уровня (PHY). В STM32 он нужен для USB High Speed, 480 Мбит/с: по RM0433 (разд. 57.2.1) контроллер USB OTG OTG_HS поддерживает встроенный PHY Full Speed и интерфейс ULPI для внешнего PHY High Speed.

Скорости OTG_HS (RM0433, табл. 516)

РежимHS, 480 Мбит/сFS, 12 Мбит/сLS, 1,5 Мбит/с
Хостестьестьесть
Устройствоестьесть—

High Speed доступен только с внешним PHY по ULPI; см. также скорости USB.

Сигналы

Интерфейс занимает 12 выводов:

СигналНазначение
ULPI_CKтакт от внешнего PHY
ULPI_DIRнаправление шины данных
ULPI_STPостановка передачи от контроллера
ULPI_NXTготовность принять или выдать следующий байт
ULPI_D0–D7восьмибитная шина данных

Линии D+ и D− идут от PHY к разъёму USB. Такт ULPI выдаёт сам PHY — в RCC STM32H7 он заведён как вход OTG_HS_ULPI_CK, а такты интерфейса включают битом USB1OTGHSULPIEN.

Похожие решения

Так же контроллер Ethernet MAC отделяют от PHY Ethernet интерфейсом MII или RMII: цифровая часть протокола — в микроконтроллере, аналоговая — во внешней микросхеме. Интерфейс ULPI есть у STM32F7 и STM32H7.

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

Почему для USB High Speed на STM32 нужен внешний PHY?

Потому что встроенный физический уровень контроллера OTG_HS у STM32H743 рассчитан на Full Speed. По RM0433 OTG_HS поддерживает встроенный PHY Full Speed и интерфейс ULPI для внешнего PHY High Speed — только с ним устройство работает на 480 Мбит/с.

Какие сигналы у ULPI?

Двенадцать: такт ULPI_CK, который выдаёт внешний PHY, направление шины ULPI_DIR, сигнал остановки ULPI_STP от контроллера, сигнал готовности ULPI_NXT и восемь линий данных ULPI_D0–D7. Линии D+ и D− идут уже от PHY к разъёму USB.

Откуда берётся такт ULPI?

От внешнего PHY: по RM0433 такт USB_PHY1 — вход OTG_HS_ULPI_CK от микросхемы PHY. Поэтому, пока PHY не запитан и его генератор не запущен, контроллер OTG_HS в режиме ULPI не работает. В RCC такты интерфейса ULPI включают отдельным битом USB1OTGHSULPIEN.

Источники

  1. STMicroelectronics. RM0433: STM32H742, STM32H743/753 and STM32H750 Value line advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — разд. 57.1, табл. 516: OTG_HS поддерживает HS (480 Мбит/с), FS (12 Мбит/с) и LS (1,5 Мбит/с) в режиме хоста, HS и FS в режиме устройства; единственный внешний элемент в режиме OTG — накачка заряда для VBUS; разд. 57.2.1: OTG_HS поддерживает встроенный PHY Full Speed и интерфейс ULPI для внешнего PHY High Speed; рис. блок-схемы: интерфейс ULPI — 12 выводов: ULPI_CK, ULPI_DIR, ULPI_STP, ULPI_NXT, ULPI_D0–7, к внешнему PHY USB 2.0 (D+/D−); разд. 8 (RCC): такт USB_PHY1 — вход от внешнего PHY (OTG_HS_ULPI_CK), бит USB1OTGHSULPIEN включает такты ULPI; бит ULPIIPD — отключение защиты интерфейса ULPI в PHY
  2. STMicroelectronics. RM0385: STM32F75xxx and STM32F74xxx advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — гл. USB on-the-go high-speed (OTG_HS) STM32F74x/F75x: интерфейс ULPI для внешнего PHY High Speed

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