Что выбрать для ESP32: W5500 или LAN8720?
Обновлено Редакция GAW
Выбор определяется прежде всего тем, какой у вас ESP32. LAN8720 — это только физический уровень (PHY): кадры Ethernet формирует MAC внутри микроконтроллера, а связь между ними — интерфейс RMII. Встроенный MAC с RMII есть у классического ESP32 и у ESP32-P4; в даташитах ESP32-S2, S3, C3 и C6 Ethernet нет. Им подходит только контроллер, подключаемый по SPI, — W5500 и подобные.
| LAN8720 (RMII) | W5500 (SPI) | |
|---|---|---|
| Какие ESP32 | классический ESP32, ESP32-P4 | любые с SPI |
| Скорость | 100 Мбит/с по RMII | 10/100 Мбит/с в линии, обмен ограничен частотой SPI |
| Выводы | 9 сигналов RMII на фиксированных выводах, MDC, MDIO, сброс | SCK, MOSI, MISO, CS, прерывание, сброс |
| Такт | 50 МГц, внешний — только на GPIO0 | кварц 25 МГц на модуле |
| Драйвер ESP-IDF | встроенный EMAC и драйвер PHY | компонент из esp-eth-drivers |
Когда LAN8720
Классический ESP32 со встроенным MAC и PHY по RMII получает полную скорость интерфейса, а стек TCP/IP работает в ESP-IDF так же, как для Wi-Fi. Цена за это — такт 50 МГц: внешний генератор ESP32 принимает только на GPIO0, который при включении выбирает режим загрузки, а такт от самого ESP32 нестабилен при работе Wi-Fi. Типичные ошибки разобраны в ответе «Почему LAN8720 не работает с ESP32?».
Когда W5500
Если у вас ESP32-S3, C3 или C6, если GPIO0 и выводы RMII заняты или не хочется возиться с тактом — берите W5500. Он подключается четырьмя линиями SPI плюс прерывание и сброс, а драйвер Espressif выпускает в репозитории esp-eth-drivers вместе с драйверами DM9051, CH390, ENC28J60 и KSZ8851SNL. Наш расчёт: по SPI с тактом 20 МГц за секунду можно передать не больше 20 Мбит — на практике меньше из-за служебных байтов кадра SPI, так что для потокового видео лучше RMII, а для датчиков и веб-интерфейса W5500 хватает с запасом.
Устройство обоих вариантов, трансформатор и разъём — в статье «Ethernet для микроконтроллера», выводы ESP32 — на странице ESP32, шина — в статье «SPI».
Похожие вопросы
Есть ли Ethernet у ESP32-S3?
Встроенного MAC у ESP32-S3 нет — в его даташите Ethernet не упоминается. Проводную сеть к нему подключают SPI-контроллером: W5500, DM9051, CH390 или ENC28J60; драйверы для ESP-IDF Espressif выпускает в репозитории esp-eth-drivers.
Можно ли подключить W5500 и Wi-Fi одновременно?
Да: в ESP-IDF Ethernet и Wi-Fi работают одновременно — в документации есть пример sta2eth, который делает мост между станцией Wi-Fi и проводной сетью. С LAN8720 Wi-Fi тоже работает, но такт REF_CLK тогда нельзя брать от самого ESP32 — Espressif предупреждает о его нестабильности при работе радио.
Сколько выводов займёт LAN8720, а сколько W5500?
RMII по ESP-IDF — 9 сигналов, плюс линии управления MDC и MDIO и обычно сброс PHY, причём данные закреплены за конкретными выводами. W5500 займёт SPI из четырёх линий плюс прерывание и сброс, и выводы SPI ESP32 можно выбрать свободнее.
Источники
- Espressif. ESP-IDF Programming Guide v6.1, Ethernet (ESP32) — единый API для встроенного EMAC и внешних SPI-модулей; пример sta2eth — мост Wi-Fi и проводного интерфейса; встроенный EMAC — только RMII, 9 сигналов; варианты REF_CLK и ограничение GPIO0; линии данных закреплены через IO_MUX; драйверы SPI-модулей — в репозитории esp-eth-drivers
- Espressif. esp-eth-drivers, README — драйверы PHY (LAN87XX, DP83848, IP101, KSZ80XX, RTL8201 и др.) и SPI-модулей Ethernet: CH390, DM9051, ENC28J60, KSZ8851SNL, W5500, W6100 — через ESP Component Registry
- Espressif. ESP32 Series Datasheet v5.3; ESP32-S2, S3, C3, C6 Datasheets; ESP32-P4 Datasheet — ESP32: разд. 4.8.13 и табл. 6-3 — Ethernet MAC с MII и RMII; ESP32-P4: Ethernet MAC с интерфейсом RMII; в даташитах ESP32-S2, S3, C3 и C6 Ethernet MAC нет
- WIZnet. W5500 Datasheet v1.1.0 (17 Dec 2022) — 10/100 Мбит/с, SPI режимы 0 и 3; SCK до 80 МГц, гарантированно проверено на 33,3 МГц; ток 128–132 мА при 100 Мбит/с
Нашли ошибку?
Смотрите также
- Ethernet для микроконтроллераW5500, ENC28J60, MAC + PHY по RMII, LAN8720, DP83848, трансформатор и разводка
- Почему LAN8720 не работает с ESP32?Такт 50 МГц на GPIO0, адрес PHY, режим REF_CLK и выводы RMII
- ESP32: выводы и GPIO34 GPIO: функции, свободные выводы, только входы, флеш-память, strapping, JTAG, токи
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR