ENC28J60 — Ethernet-контроллер Microchip с интерфейсом SPI
ENC28J60 — микросхема Microchip, которая даёт микроконтроллеру Ethernet по SPI: MAC, физический уровень 10BASE-T и буфер кадров 8 Кбайт. Стека TCP/IP внутри нет — его выполняет программа. Разбираем по даташиту и документу об ошибках кристалла выводы, электрические параметры, обязательную обвязку и то, что должен учитывать драйвер.
Обновлено Редакция GAW
ENC28J60 (Microchip) — автономный Ethernet-контроллер: MAC и физический уровень 10BASE-T в одном корпусе, связь с микроконтроллером по SPI. К сетям 100 и 1000 Мбит/с он подключается, но работает на 10 Мбит/с. Внутри — двухпортовый буфер кадров 8 Кбайт, собственный DMA для копирования внутри буфера и аппаратный подсчёт контрольных сумм; протоколы IP, TCP и UDP выполняет программа микроконтроллера. Как этот вариант соотносится с W5500 и со встроенным MAC, как подключить трансформатор и развести плату — в статье «Ethernet для микроконтроллера».
Коротко
- Сеть — 10BASE-T, полу- и полный дуплекс, буфер 8 Кбайт; стека TCP/IP нет.
- SPI — только режим 0,0, до 20 МГц.
- Питание — 3,1–3,6 В (тип. 3,3 В); входы CS, SCK, SI, RESET допускают 5 В.
- Ток — 160 мА тип., 180 мА макс. при передаче; 120 мА без передачи; 1,2 мА во сне (тип.).
- Ошибки — у ревизии B7 16 ошибок кристалла из 19 перечисленных Microchip; обходы — в DS80349C.
Распиновка
Корпуса — SPDIP, SOIC и SSOP на 28 выводов с одинаковой цоколёвкой (рисунок ниже, вид сверху) и QFN-28 со своей нумерацией.
| Вывод DIP/SOIC/SSOP | Вывод QFN | Обозначение | Назначение |
|---|---|---|---|
| 1 | 25 | VCAP | выход внутреннего стабилизатора 2,5 В: конденсатор с малым ESR, 10 мкФ тип., не меньше 1 мкФ; внешнюю нагрузку не подключать |
| 2 | 26 | VSS | общий провод |
| 3 | 27 | CLKOUT | программируемый выход тактов, до 8 мА |
| 4 | 28 | INT | выход прерывания, до 4 мА |
| 5 | 1 | NC | зарезервирован, не подключать |
| 6 | 2 | SO | выход данных SPI, до 4 мА |
| 7, 8 | 3, 4 | SI, SCK | вход данных и такт SPI, допускают 5 В |
| 9 | 5 | CS | выбор микросхемы, допускает 5 В, слабая подтяжка к VDD |
| 10 | 6 | RESET | сброс, активный низкий, допускает 5 В, слабая подтяжка к VDD |
| 11 | 7 | VSSRX | земля приёмника |
| 12, 13 | 8, 9 | TPIN−, TPIN+ | дифференциальный вход приёмника |
| 14 | 10 | RBIAS | резистор смещения на землю, 2,32 кОм 1 % |
| 15 | 11 | VDDTX | питание передатчика |
| 16, 17 | 12, 13 | TPOUT−, TPOUT+ | дифференциальный выход передатчика |
| 18 | 14 | VSSTX | земля передатчика |
| 19, 20 | 15, 16 | VDDRX, VDDPLL | питание 3,3 В приёмника и PLL |
| 21, 22 | 17, 18 | VSSPLL, VSSOSC | земля PLL и генератора |
| 23, 24 | 19, 20 | OSC1, OSC2 | вход и выход генератора 25 МГц |
| 25 | 21 | VDDOSC | питание генератора |
| 26, 27 | 22, 23 | LEDB, LEDA | выходы светодиодов, до 12 мА |
| 28 | 24 | VDD | питание 3,3 В |
Параметры
Постоянные характеристики — по разд. 16.1 даташита при VDD 3,1–3,6 В, −40…+85 °C (исполнение I) или 0…+70 °C (исполнение C, только SSOP):
| Параметр | Мин. | Тип. | Макс. |
|---|---|---|---|
| Напряжение питания VDD | 3,10 В | 3,30 В | 3,60 В |
| Высокий уровень на SCK, CS, SI, RESET | 2,25 В | — | 5,5 В |
| Низкий уровень на SCK, CS, SI, RESET | VSS | — | 1,0 В |
| Выход высокого уровня INT, SO при −4 мА | VDD − 0,7 В | — | — |
| Выход низкого уровня INT, SO при 4 мА | — | — | 0,4 В |
| Слабая подтяжка CS, RESET | 74 кОм | — | 173 кОм |
| Ток при передаче (3,3 В, SPI 10 МГц) | — | 160 мА | 180 мА |
| Ток без передачи (3,3 В) | — | 120 мА | — |
| Ток во сне (3,3 В, 25 °C) | — | 1,2 мА | 2,0 мА |
| Частота SPI | — | — | 20 МГц |
| Частота генератора | 25 МГц | — | 25 МГц |
| Допуск частоты генератора | — | — | ±50 ppm |
| Длительность импульса RESET | 400 нс | — | — |
Предельные режимы (разд. 16.0) — граница повреждения, а не рабочие значения: питание −0,3…3,6 В, входы RESET, CS, SCK, SI −0,3…6,0 В, выводы витой пары −0,3…5,0 В, VCAP −0,3…2,75 В (внешнее напряжение на VCAP не подавать), стойкость к разряду 2 кВ на всех выводах. Наш расчёт: при передаче микросхема потребляет около 160 мА × 3,3 В ≈ 0,53 Вт.
После включения питания или выхода из режима пониженного потребления внутренний таймер ждёт 7500 тактов генератора (300 мкс): пока не установится бит CLKRDY, регистры MAC, MII и PHY трогать нельзя, передачу и приём не включают (разд. 2.2). После программного сброса командой SPI так делать нельзя: по ошибке № 2 из DS80349C бит CLKRDY при этом не сбрасывается, и его опрос ничего не показывает — Microchip советует просто выждать не меньше 1 мс.
Типичная схема
Обвязка по разд. 2.4 и рис. 2-4 даташита:
- резистор 2,32 кОм 1 % от RBIAS к земле — он задаёт амплитуду передатчика;
- конденсатор 10 мкФ с малым ESR на VCAP;
- кварц или генератор 25 МГц на OSC1/OSC2;
- по два резистора 49,9 Ом 1 % на передающую и приёмную пары; к 3,3 В через ферритовую бусину (не меньше 80 мА) подключены средняя точка передающей обмотки и общая точка резисторов TPOUT, а общая точка резисторов TPIN идёт на землю через 0,1 мкФ;
- трансформатор 1:1 со средней точкой: индуктивность первичной обмотки не меньше 350 мкГн при подмагничивании 8 мА, изоляция 1,5 кВ (табл. 16-5).
Для микроконтроллера с питанием 5 В нужен однонаправленный сдвигатель уровня на выходах SO, INT и CLKOUT — Microchip предлагает 74HCT08 или 74ACT125 (разд. 2.5); входы микросхемы 5 В выдерживают сами. Как развести пары и подключить разъём — в статье «Ethernet для микроконтроллера», про согласование уровней — в статье «Логические уровни», разбор подключения к Arduino — в ответе «Можно ли подключить ENC28J60 к Arduino на 5 В».
Ошибки кристалла
Документ DS80349C перечисляет 19 ошибок для ревизий B1, B4, B5 и B7. Ревизию читают из регистра EREVID: у B7 там 0000 0110. На B7 приходится 16 ошибок, а три (№ 1, 3 и 8) касаются только старых ревизий B1 и B4 — в том числе ненадёжная работа SPI ниже 8 МГц и резистор RBIAS 2,7 кОм вместо 2,32 кОм. Важные для драйвера ошибки B7 и их обходы — в таблице раздела «Ошибки кристалла ENC28J60» статьи «Ethernet для микроконтроллера»: PKTIF и EPKTCNT, нечётный ERXRDPT, буфер приёма с 0000h, сброс TXRST перед передачей в полудуплексе, отказ от подсчёта контрольной суммы через DMA во время приёма.
Аналоги
Microchip совместимых по выводам замен в даташите не называет. По назначению ENC28J60 сравнивают с W5500: тот тоже подключается по SPI, но работает на 10 и 100 Мбит/с и содержит аппаратный стек TCP/IP. Выводы, регистры и драйверы у них разные, замена требует переразводки платы и другой программы.
Частые вопросы
Какие выводы ENC28J60 выдерживают 5 В?
Питать саму микросхему от 5 В нельзя: рабочий диапазон 3,1–3,6 В, и абсолютный предел тоже 3,6 В. Входы CS, SCK, SI и RESET допускают 5 В (предел 6 В). А выходы SO, INT и CLKOUT дают уровень 3,3 В, и для микроконтроллера с питанием 5 В Microchip советует ставить на них однонаправленный буфер вроде 74HCT08 или 74ACT125 (разд. 2.5).
В каком режиме SPI работает ENC28J60?
Только в режиме 0,0: SCK в покое низкий, данные защёлкиваются по фронту, выдаются по спаду. Частота — до 20 МГц. При чтении регистров MAC и MII вывод CS после последнего такта нужно держать низким не меньше 210 нс, для остальных регистров и буфера — 10 нс (табл. 16-6).
Какие ошибки кристалла у ENC28J60 важны для драйвера?
У текущей ревизии B7 по документу DS80349C 16 ошибок. Самые важные: флагу PKTIF нельзя верить — число кадров читают из EPKTCNT; в ERXRDPT пишут только нечётный адрес; буфер приёма начинают с 0000h; в полудуплексе перед каждой передачей сбрасывают логику передачи битом TXRST; контрольную сумму через встроенный DMA во время приёма не считают. Готовые библиотеки обычно эти обходы уже содержат.
ENC28J60 или W5500?
ENC28J60 — только 10 Мбит/с и только MAC с PHY: стек TCP/IP, буферы и протоколы ложатся на микроконтроллер. W5500 работает и на 100 Мбит/с и сам ведёт TCP и UDP в восьми сокетах. Для нового устройства обычно выбирают W5500; ENC28J60 остаётся там, где нужен полный контроль над кадрами при 10 Мбит/с и есть драйвер с учётом ошибок кристалла.
Источники
- Microchip. ENC28J60 Stand-Alone Ethernet Controller with SPI Interface (DS39662E, 2006–2012) — с. 1 — возможности и корпуса; табл. 1-1 — назначение выводов и примечания о токе, допуске 5 В и подтяжках; разд. 2.2 — таймер запуска генератора 7500 тактов; разд. 2.4 — RBIAS 2,32 кОм, VCAP 10 мкФ, резисторы 49,9 Ом, трансформатор, рис. 2-4; разд. 2.5 — сдвиг уровней для МК на 5 В; разд. 4.1 — SPI только в режиме 0,0; разд. 16 — предельные режимы, постоянные характеристики, табл. 16-2 — генератор, табл. 16-3 — сброс, табл. 16-5 — трансформатор, табл. 16-6 — SPI до 20 МГц
- Microchip. ENC28J60 Silicon Errata and Data Sheet Clarification (DS80349C, 2010) — табл. 1 — ревизии B1, B4, B5, B7 и значение EREVID; табл. 2 — какие ошибки касаются каких ревизий; пп. 1–19 — описания и обходы
Нашли ошибку?
Смотрите также
- Интерфейсные микросхемыРасширители портов, трансиверы, Ethernet, 4–20 мА: параметры, карточки
- Ethernet для микроконтроллераW5500, ENC28J60, MAC + PHY по RMII, LAN8720, DP83848, трансформатор и разводка
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- Логические уровниVOH, VOL, VIH, VIL, запас помехоустойчивости, ТТЛ и КМОП, уровни МК и интерфейсов
- W5500Ethernet по SPI с аппаратным TCP/IP: выводы, PMODE, обвязка, ток
- RJ-45T568A и T568B, Ethernet, PoE, обжим
- Можно ли подключить ENC28J60 к Arduino на 5 В?Входы терпят 5 В, а SO и INT нужно поднять до уровня 5 В
- Что лучше для Arduino: W5500 или ENC28J60?W5500: стек TCP/IP в микросхеме и штатная библиотека Ethernet