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.
Источники
- 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
- 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
Нашли ошибку?
Смотрите также
- USB OTGUSB-контроллер, работающий устройством и хостом: HNP, SRP, ESP32-S2/S3
- Скорости USB 2.01,5, 12 и 480 Мбит/с: точность частоты и как хост определяет скорость
- USBСкорости, распиновка Type-A, Micro-B и Type-C, питание, CC, USB PD
- MII и RMIIПараллельные интерфейсы между MAC и PHY Ethernet
- STM32H7Cortex-M7 от 280 до 600 МГц, двухъядерные H745/H747 — линейки, память, загрузка и распиновки
- STM32F7Cortex-M7 до 216 МГц: F72x/F73x, F74x/F75x, F76x/F77x — линейки, память, загрузка и распиновки
- PHY EthernetМикросхема физического уровня между MAC и кабелем