LAN8720A — микросхема физического уровня Ethernet с интерфейсом RMII
LAN8720A — PHY Microchip для микроконтроллеров со встроенным MAC Ethernet: STM32F4, STM32F7, ESP32. Сам он кадров не собирает — он превращает биты RMII в сигнал на витой паре и обратно. Разбираем по даташиту выводы корпуса QFN-24, страп-выводы, два режима такта 50 МГц, питание и потребление.
Обновлено Редакция GAW
Содержание
LAN8720A (Microchip; LAN8720Ai — исполнение для −40…+85 °C) — приёмопередатчик физического уровня Ethernet 10BASE-T/100BASE-TX. Он работает в паре с MAC микроконтроллера: по RMII получает и отдаёт данные по 2 бита за такт 50 МГц, по шине управления MDC/MDIO отдаёт состояние связи, а со стороны кабеля через трансформатор ведёт витую пару. Тактирование RMII у STM32 и ESP32, трансформатор, разводка и типичные ошибки — в статье «Ethernet для микроконтроллера».
Коротко
- Сеть — 10 и 100 Мбит/с, автосогласование, HP Auto-MDIX: подходит и прямой, и перекрёстный кабель.
- Интерфейс с MAC — только RMII, плюс шина управления MDC/MDIO с периодом MDC не меньше 400 нс (до 2,5 МГц).
- Такт — 50 МГц от генератора (REF_CLK In) или из кварца 25 МГц самим PHY (REF_CLK Out).
- Питание — аналоговое 3,0–3,6 В, ввод-вывод 1,62–3,6 В, ядро 1,2 В от встроенного стабилизатора или снаружи.
- Корпус — QFN-24, 4 × 4 мм, площадка снизу — земля.
Выводы
Корпус QFN-24 с выводами на четырёх сторонах, поэтому — таблица. Нумерация по табл. 2-8 даташита; площадка на дне корпуса — общий провод VSS, её соединяют с полигоном земли массивом переходных отверстий.
| Вывод | Обозначение | Назначение |
|---|---|---|
| 1 | VDD2A | аналоговое питание 3,3 В второго канала и встроенного стабилизатора |
| 2 | LED2 / nINTSEL | светодиод скорости 100 Мбит/с; страп режима такта: подтяжка вверх или свободен — REF_CLK In, к земле — REF_CLK Out |
| 3 | LED1 / REGOFF | светодиод связи и активности; страп: подтяжка к VDD2A выключает встроенный стабилизатор 1,2 В |
| 4 | XTAL2 | выход кварца; при внешнем генераторе не подключать |
| 5 | XTAL1 / CLKIN | кварц 25 МГц или вход внешнего такта (50 МГц в режиме REF_CLK In) |
| 6 | VDDCR | ядро 1,2 В: от встроенного стабилизатора или снаружи; конденсаторы 1 мкФ и 470 пФ на землю |
| 7 | RXD1 / MODE1 | данные приёма RMII; страп режима |
| 8 | RXD0 / MODE0 | данные приёма RMII; страп режима |
| 9 | VDDIO | питание ввода-вывода 1,62–3,6 В |
| 10 | RXER / PHYAD0 | ошибка приёма; страп младшего бита адреса, по умолчанию 0 |
| 11 | CRS_DV / MODE2 | несущая и данные действительны; страп режима |
| 12 | MDIO | данные шины управления |
| 13 | MDC | такт шины управления |
| 14 | nINT / REFCLKO | прерывание (открытый сток, подтяжка к VDDIO) или выход 50 МГц в режиме REF_CLK Out |
| 15 | nRST | сброс, активный низкий, подтяжка вверх внутри |
| 16 | TXEN | разрешение передачи RMII |
| 17, 18 | TXD0, TXD1 | данные передачи RMII |
| 19 | VDD1A | аналоговое питание 3,3 В первого канала |
| 20, 21 | TXN, TXP | первая пара к трансформатору |
| 22, 23 | RXN, RXP | вторая пара к трансформатору |
| 24 | RBIAS | резистор 12,1 кОм 1 % на землю |
Страп-выводы защёлкиваются при включении питания и по фронту nRST (разд. 3.7). Режим MODE[2:0]: 111 — автосогласование всех режимов (по умолчанию, внутренние подтяжки вверх), 000 и 001 — 10 Мбит/с полудуплекс и дуплекс, 010 и 011 — 100 Мбит/с полудуплекс и дуплекс (без автосогласования), 100 — автосогласование с объявлением только 100 Мбит/с полудуплекса, 101 — режим повторителя, 110 — включение в режиме выключения. Внешние подтяжки делают к VDDIO, а REGOFF и nINTSEL — к VDD2A. Полярность светодиода на выводе со страпом зависит от уровня страпа, поэтому схему светодиода рисуют с учётом выбранного режима.
Параметры
Рабочие режимы (разд. 5.2):
| Параметр | Мин. | Макс. |
|---|---|---|
| Питание ввода-вывода VDDIO | 1,62 В | 3,6 В |
| Аналоговое питание VDD1A, VDD2A | 3,0 В | 3,6 В |
| Питание ядра VDDCR (если стабилизатор выключен) | 1,08 В | 1,32 В |
| Питание трансформатора | 2,25 В | 3,6 В |
| Температура: LAN8720A / LAN8720Ai | 0 °C / −40 °C | +85 °C |
Требования к такту и шине управления (табл. 5-12, 5-13): REF_CLK 50 МГц, уход не больше ±50 ppm, скважность 40–60 %, джиттер до 150 пс от пика до пика; кварц или генератор 25 МГц ±50 ppm в режиме REF_CLK Out; период MDC не меньше 400 нс. Сброс nRST — не короче 100 мкс; после того как питание достигло 80 %, сброс снимают не раньше чем через 25 мс; страп должен установиться за 200 нс до снятия сброса (табл. 5-9).
Потребление самой микросхемы (табл. 5-2, режим REF_CLK In). По разд. 5.4 токи измерены при номинальном питании — VDDIO, VDD1A, VDD2A = 3,3 В и VDDCR = 1,2 В; мощность в столбцах «Тип.» и «Макс.» соответствует питанию 3,3 В со встроенным стабилизатором, а мощность в столбце «Мин.» по прим. 5-8 посчитана для самого экономичного варианта — VDDIO = 1,8 В и внешний стабилизатор 1,2 В:
| Режим | Мин. | Тип. | Макс. |
|---|---|---|---|
| 100BASE-TX с трафиком | 41 мА; 96 мВт при 1,8 В и внешних 1,2 В | 45 мА / 148 мВт | 49 мА / 159 мВт |
| 10BASE-T с трафиком | 20 мА; 42 мВт при 1,8 В и внешних 1,2 В | 22 мА / 70 мВт | 24 мА / 77 мВт |
| Энергосбережение по отсутствию сигнала | 5,8 мА | 6,2 мА | 7,4 мА |
| Полное выключение | 2,0 мА | 2,3 мА | 3,4 мА |
В эти цифры не входит ток через трансформатор: по прим. 5-7 это около 41 мА в режиме 100BASE-TX и 100 мА в 10BASE-T, при питании трансформатора и 2,5, и 3,3 В. В режиме REF_CLK Out ток ввода-вывода больше — 5,8 мА вместо 0,5 мА (тип., табл. 5-3), потому что вывод REFCLKO раскачивает линию 50 МГц.
Предельные режимы (разд. 5.1): питание VDDIO, VDD1A, VDD2A −0,5…+3,6 В, ядро −0,5…+1,5 В, XTAL1/CLKIN до 3,6 В, XTAL2 до 2,5 В; стойкость по IEC 61000-4-2 ±8 кВ контактным и ±15 кВ воздушным разрядом (испытания сторонней лаборатории). Цифровые выводы допускают 3,6 В, к 5-вольтовой логике их не подключают: Microchip прямо пишет, что выводы не рассчитаны на 5 В, если не оговорено иное. Тепловое сопротивление кристалл — воздух — 58 °C/Вт без обдува (плата 2S2P).
Типичная схема
По рис. 3-18 даташита и разд. 3.9: резистор 12,1 кОм 1 % на RBIAS; по два резистора 49,9 Ом на каждую пару с подключением к питанию и конденсаторами 0,1 мкФ; трансформатор 1:1 со средней точкой; со стороны кабеля — цепь Боба Смита из резисторов 75 Ом и конденсатора 1000 пФ на 3 кВ. Источник такта — генератор 50 МГц, общий с MAC, или кварц 25 МГц и режим REF_CLK Out.
У ESP32 вход внешнего такта RMII возможен только на GPIO0, а это страп-вывод загрузки: источник 50 МГц на время старта отключают, например удерживая PHY в сбросе. Выдавать такт с ESP32 при работающих Wi-Fi или Bluetooth Espressif не рекомендует. Подробности для ESP32 и STM32 — в статье «Ethernet для микроконтроллера», выводы и страпы ESP32 — на странице ESP32.
Аналоги
Microchip в даташите замен не называет. В том же классе — DP83848 (TI): PHY 10/100 с MII и RMII, но в корпусе на 48 выводов, с другими страпами и без режима, в котором PHY сам делает 50 МГц из кварца 25 МГц. Базовые регистры PHY стандартизованы IEEE 802.3, поэтому простые драйверы (например, универсальный драйвер PHY в ESP-IDF) работают с разными микросхемами, но страпы, такт и обвязку переносить с одной на другую нельзя.
Частые вопросы
Можно ли подключить LAN8720A к микроконтроллеру без MAC?
Нет. LAN8720A — только физический уровень: кадры Ethernet собирает и разбирает MAC, а он должен быть в микроконтроллере, и связь с ним идёт только по RMII. Микроконтроллеру без MAC нужен SPI-контроллер вроде W5500 или ENC28J60.
Откуда LAN8720A берёт такт 50 МГц?
Два варианта задаются страпом nINTSEL на выводе LED2. По умолчанию (REF_CLK In) 50 МГц подают от внешнего генератора на XTAL1/CLKIN, им же тактируют MAC. Если вывод LED2 подтянуть к земле (REF_CLK Out), PHY сам делает 50 МГц из кварца 25 МГц и выдаёт их на вывод nINT/REFCLKO — тогда нет прерывания, а Microchip предупреждает, что временные параметры этого режима не соответствуют спецификации RMII и их нужно проверить расчётом.
Какой адрес у LAN8720A на шине MDIO?
0 или 1 — по страпу PHYAD0 на выводе RXER; по умолчанию внутренняя подтяжка вниз даёт 0. Адрес больше 1 можно записать программно в регистр Special Modes после того, как связь по MDIO установлена. В ESP-IDF адрес задают числом 0–15 или −1 для автоматического поиска, если PHY на шине один.
Почему LAN8720A не отвечает или стартует не в том режиме?
Частая причина — испорченные страп-выводы: RXD0, RXD1, CRS_DV и RXER подключены к микроконтроллеру, и если в момент сброса PHY его вывод уже настроен как выход или с подтяжкой, PHY защёлкнет не тот режим или адрес. Microchip требует, чтобы уровень на страпе был установлен не меньше чем за 200 нс до снятия сброса. Надёжно держать PHY в сбросе выводом nRST, пока микроконтроллер не настроит свои выводы.
Источники
- Microchip. LAN8720A/LAN8720Ai Small Footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX and flexPWR Technology (DS00002165C, 2024) — разд. 1.2 — описание, допуск 3,6 В на цифровых выводах; разд. 2 — назначение выводов, табл. 2-8 — нумерация QFN-24; разд. 3.7 — страп-выводы PHYAD0, MODE[2:0], REGOFF, nINTSEL, табл. 3-4 — режимы MODE, режимы REF_CLK In и Out; разд. 5.1–5.2 — предельные и рабочие режимы; табл. 5-1 — тепловые параметры; табл. 5-2, 5-3 — потребление и прим. 5-7 о токе трансформатора; табл. 5-9 — тайминги сброса и страпов; табл. 5-12 — требования к REF_CLK; табл. 5-13 — тайминги SMI
- Espressif. ESP-IDF Programming Guide v6.1: Ethernet (ESP32) — RMII у ESP32, вход такта EMAC_CLK_EXT_IN только на GPIO0, ограничение выхода такта ESP32 при работающих Wi-Fi и Bluetooth, адрес PHY 0–15 или −1
Нашли ошибку?
Смотрите также
- Интерфейсные микросхемыРасширители портов, трансиверы, Ethernet, 4–20 мА: параметры, карточки
- Ethernet для микроконтроллераW5500, ENC28J60, MAC + PHY по RMII, LAN8720, DP83848, трансформатор и разводка
- ESP32: выводы и GPIO34 GPIO: функции, свободные выводы, только входы, флеш-память, strapping, JTAG, токи
- STM32F4Cortex-M4 с FPU: от F401 и F411 до F429 и F469 — линейки и распиновки
- DP83848PHY 10/100 с MII и RMII: выводы LQFP-48, страпы, такт, обвязка
- RJ-45T568A и T568B, Ethernet, PoE, обжим
- Почему LAN8720 не работает с ESP32?Такт 50 МГц на GPIO0, адрес PHY, режим REF_CLK и выводы RMII
- Что выбрать для ESP32: W5500 или LAN8720?LAN8720 — только классический ESP32 и P4; W5500 — любой ESP32