W5500 — Ethernet-контроллер WIZnet с аппаратным стеком TCP/IP
W5500 — микросхема WIZnet, в которой PHY 10/100 Мбит/с, MAC и стек TCP/IP сделаны логикой, а микроконтроллер только пишет и читает буферы сокетов по SPI. Разбираем по даташиту выводы, режимы PHY, обвязку и честные цифры: какая частота SPI гарантирована, сколько тока берёт микросхема и чего она не умеет.
Обновлено Редакция GAW
W5500 (WIZnet) — Ethernet-контроллер для микроконтроллеров без собственного MAC. Внутри — физический уровень 10BASE-T/100BASE-TX, MAC и стек TCP/IP, выполненный аппаратно: протоколы TCP, UDP, IPv4, ICMP, ARP, IGMP и PPPoE обрабатывает сама микросхема, а программа работает с сокетами через регистры по SPI. Сравнение с ENC28J60 и со встроенным MAC, тактирование, трансформатор и разводка — в статье «Ethernet для микроконтроллера».
Коротко
- Сеть — 10 и 100 Мбит/с, автосогласование, полу- и полный дуплекс; Auto-MDIX нет.
- Стек — аппаратный: 8 сокетов, 32 Кбайт буферов (16 + 16 Кбайт), режим сырых кадров MACRAW только у сокета 0.
- SPI — режимы 0 и 3; гарантированная частота 33,3 МГц, расчётная — 80 МГц.
- Питание — 2,97–3,63 В (тип. 3,3 В), входы допускают 5 В; ток около 132 мА при передаче на 100 Мбит/с (тип.).
- Корпус — LQFP-48, 7 × 7 мм, шаг 0,5 мм; рабочая температура −40…+85 °C.
Выводы
Корпус LQFP-48 — четырёхсторонний, поэтому ниже таблица, а не рисунок. Нумерация — по рис. 1 даташита: вывод 1 (TXN) — первый на левой стороне, счёт идёт против часовой стрелки (вниз по левой стороне, вправо по нижней, вверх по правой), и вывод 48 — AGND в левом конце верхней стороны.
| Выводы | Обозначение | Назначение |
|---|---|---|
| 1, 2 | TXN, TXP | дифференциальный выход передатчика к трансформатору |
| 5, 6 | RXN, RXP | дифференциальный вход приёмника |
| 4, 8, 11, 15, 17, 21 | AVDD | аналоговое питание 3,3 В |
| 3, 9, 14, 16, 19, 48 | AGND | аналоговая земля |
| 10 | EXRES1 | резистор 12,4 кОм 1 % на аналоговую землю — смещение аналоговых узлов |
| 18 | VBG | выход опорного напряжения около 1,2 В, оставить свободным |
| 20 | TOCAP | конденсатор 4,7 мкФ на землю, дорожка как можно короче |
| 22 | 1V2O | выход внутреннего стабилизатора 1,2 В, конденсатор 10 нФ |
| 7 | DNC | не подключать |
| 12, 13, 46, 47 | NC | не подключены |
| 23 | RSVD | соединить с землёй |
| 38–42 | RSVD | внутренняя подтяжка к земле, можно оставить свободными |
| 24–27 | SPDLED, LINKLED, DUPLED, ACTLED | светодиоды: скорость, связь, дуплекс, активность; активный уровень — низкий |
| 28, 29 | VDD, GND | цифровое питание 3,3 В и цифровая земля |
| 30, 31 | XI/CLKIN, XO | кварц 25 МГц или внешний генератор 3,3 В на XI (тогда XO свободен) |
| 32 | SCSn | выбор микросхемы SPI, активный низкий, внутренняя подтяжка вверх |
| 33, 34, 35 | SCLK, MISO, MOSI | шина SPI; MISO в третьем состоянии, пока SCSn высокий |
| 36 | INTn | выход прерывания, активный низкий |
| 37 | RSTn | сброс, активный низкий, держать не меньше 500 мкс; подтяжка вверх внутри |
| 43–45 | PMODE2–PMODE0 | режим PHY после сброса, внутренняя подтяжка вверх |
Режим PHY по выводам PMODE[2:0] (табл. 2): 000 — 10 Мбит/с полудуплекс, 001 — 10 Мбит/с дуплекс, 010 — 100 Мбит/с полудуплекс, 011 — 100 Мбит/с дуплекс (во всех четырёх автосогласование выключено), 100 — 100 Мбит/с полудуплекс с автосогласованием, 111 — автосогласование всех режимов; 101 и 110 не используются. Без внешних резисторов внутренние подтяжки дают 111. Режим можно сменить и программно, регистром PHYCFGR.
Параметры
Постоянные характеристики — по разд. 5.3 даташита при −40…+85 °C:
| Параметр | Мин. | Тип. | Макс. |
|---|---|---|---|
| Напряжение питания VDD, AVDD | 2,97 В | 3,3 В | 3,63 В |
| Входное напряжение высокого уровня | 2,0 В | — | 5,5 В |
| Входное напряжение низкого уровня | −0,3 В | — | 0,8 В |
| Выход низкого уровня при 8 мА | — | — | 0,4 В |
| Выход высокого уровня при 8 мА | 2,4 В | — | — |
| Подтяжка вверх SCSn, RSTn, PMODE | 50 кОм | 77 кОм | 112 кОм |
| Ток потребления в работе, 3,3 В, 25 °C | — | 132 мА | — |
| Ток в режиме выключения PHY, 3,3 В, 25 °C | — | 13 мА | — |
Ток по режимам (разд. 5.4, 3,3 В, 25 °C, типичные значения): связь 100 Мбит/с — 128 мА, передача на 100 Мбит/с — 132 мА, связь 10 Мбит/с — 75 мА, передача на 10 Мбит/с — 79 мА, без связи в режиме автосогласования — 65 мА, выключение — 13 мА. Наш расчёт: 132 мА × 3,3 В ≈ 0,44 Вт — микросхема заметно греется, и стабилизатор 3,3 В нужно рассчитывать с запасом.
Предельные режимы (разд. 5.1) — не рабочие значения, а границы повреждения: питание −0,5…4,6 В, вход −0,5…6 В, выход −0,5…4,6 В, ток входа 5 мА, кристалл до 125 °C, хранение −65…+150 °C. Стойкость к разряду: 2000 В по модели человеческого тела, 200 В по модели машины, 500 В по модели заряженного устройства.
Типичная схема
Обвязка по даташиту: кварц 25 МГц с нагрузочной ёмкостью 18 пФ и точностью ±30 ppm (или генератор 3,3 В на XI), резистор 12,4 кОм 1 % на EXRES1, 4,7 мкФ на TOCAP, 10 нФ на 1V2O, трансформатор 1:1 с индуктивностью 350 мкГн для приёма и передачи и разъём RJ-45 — часто со встроенным трансформатором. Шина SPI — четыре линии и, по желанию, INTn и RSTn к микроконтроллеру. В режиме переменной длины (VDM) микроконтроллер управляет SCSn и может делить шину с другими устройствами; в режиме фиксированной длины (FDM) SCSn постоянно на земле, и шина отдана W5500.
Как развести пары к трансформатору, куда подключать средние точки обмоток и какие ошибки встречаются чаще всего — в разделах «Трансформатор» и «Разводка платы» статьи «Ethernet для микроконтроллера»; назначение контактов разъёма — на странице RJ-45.
Ограничения
- Скорость обмена ограничивает SPI. Даже при 33,3 МГц это 33,3 Мбит/с сырого потока, и часть уходит на трёхбайтный заголовок каждой посылки (адрес и управляющий байт). Наша оценка: полные 100 Мбит/с линии через SPI не прокачать.
- Нет IPv6 и фрагментации IP — в списке протоколов их нет, а отсутствие фрагментации даташит оговаривает отдельно.
- Нет Auto-MDIX — для прямого соединения двух плат нужен перекрёстный кабель.
- Нет TLS — шифрование, если нужно, выполняет микроконтроллер поверх сокета.
Аналоги
WIZnet в даташите W5500 замен не называет. По назначению W5500 сравнивают с ENC28J60 — тоже Ethernet по SPI, но без стека TCP/IP и только на 10 Мбит/с, — и с микроконтроллером со встроенным MAC и внешним PHY вроде LAN8720A. Цоколёвка и регистры у этих решений разные, программный драйвер под каждое свой.
Частые вопросы
На какой частоте SPI работает W5500?
В таблице таймингов WIZnet пишет «80/33,3 МГц». 80 МГц — расчётный предел логики, а 33,3 МГц — частота, на которой WIZnet проверил устойчивую работу и которую гарантирует. На макетной плате с проводами и на длинных дорожках разумно начинать с 8–20 МГц и поднимать частоту, проверяя обмен. Режимы SPI — только 0 и 3, старшим битом вперёд.
Можно ли подключить W5500 к Arduino на 5 В?
Питание самой микросхемы — только 3,3 В (2,97–3,63 В, предел 4,6 В). Входы SCSn, SCLK, MOSI и RSTn допускают 5 В: высокий уровень до 5,5 В, абсолютный предел входа 6 В. Обратное направление слабее: MISO гарантирует не меньше 2,4 В при токе 8 мА, а ATmega328P при питании 5 В требует для высокого уровня не меньше 0,6 · VCC = 3 В. При малом токе выход поднимается выше, но гарантии этого в даташите нет, поэтому надёжнее буфер или сдвигатель уровня на линии MISO.
Почему две платы с W5500 не видят друг друга по прямому кабелю?
У W5500 нет автоматической смены пар (Auto-MDIX) — это прямо сказано в разделе 5.5.6 даташита. Две такие платы соединяют перекрёстным кабелем или через коммутатор. Современные коммутаторы и сетевые карты с Auto-MDIX сами подстраиваются, поэтому с ними подходит любой кабель.
Сколько соединений и какой объём буфера доступны?
Восемь аппаратных сокетов, всего 32 Кбайт: 16 Кбайт на передачу и 16 на приём. После сброса каждому сокету достаётся по 2 Кбайт в каждую сторону, регистрами Sn_TXBUF_SIZE и Sn_RXBUF_SIZE их можно перераспределить блоками 0, 1, 2, 4, 8 или 16 Кбайт так, чтобы сумма в каждую сторону не превышала 16 Кбайт. Фрагментация IP не поддерживается.
Источники
- WIZnet. W5500 Datasheet, Version 1.1.0 (2022) — с. 2 — возможности; гл. 1 — расположение выводов LQFP-48, табл. 2 — назначение выводов, PMODE[2:0], резистор EXRES1 12,4 кОм, конденсаторы TOCAP 4,7 мкФ и 1V2O 10 нФ, RSTn не меньше 500 мкс; гл. 2 — SPI режимов 0 и 3, VDM и FDM; гл. 3.3 — распределение 32 Кбайт буферов; разд. 5.1 — предельные режимы; разд. 5.3 — постоянные характеристики; разд. 5.4 — потребление; разд. 5.5 — кварц 25 МГц, тайминги SPI (80 МГц расчётные, 33,3 МГц гарантированные), трансформатор 1:1 350 мкГн, отсутствие Auto-MDIX
- Texas Instruments. AN-1469 PHYTER Design & Layout Guide (SNLA079D, 2013) — общие правила разводки линии к трансформатору: пары 100 Ом, без отводов, симметрично, отдельная земля корпуса разъёма
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B, 2020) — постоянные характеристики: VIH не меньше 0,6 · VCC при питании 2,4–5,5 В — для сравнения с уровнем выхода MISO
Нашли ошибку?
Смотрите также
- Интерфейсные микросхемыРасширители портов, трансиверы, Ethernet, 4–20 мА: параметры, карточки
- Ethernet для микроконтроллераW5500, ENC28J60, MAC + PHY по RMII, LAN8720, DP83848, трансформатор и разводка
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- RJ-45T568A и T568B, Ethernet, PoE, обжим
- ENC28J60MAC + PHY 10BASE-T по SPI: выводы, уровни, обвязка, ошибки ревизии B7
- LAN8720APHY 10/100 с RMII: выводы, страпы, REF_CLK In и Out, питание
- Как проверить, что W5500 отвечает по SPI?Прочитать VERSIONR (0x0039): ответ 0x04, затем бит LNK в PHYCFGR
- Что лучше для Arduino: W5500 или ENC28J60?W5500: стек TCP/IP в микросхеме и штатная библиотека Ethernet