Перейти к содержанию

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 со своей нумерацией.

ENC28J60, вид сверху: 1 VCAP, 2 VSS, 3 CLKOUT, 4 INT, 5 NC, 6 SO, 7 SI, 8 SCK, 9 CS, 10 RESET, 11 VSSRX, 12 TPIN−, 13 TPIN+, 14 RBIAS, 15 VDDTX, 16 TPOUT−, 17 TPOUT+, 18 VSSTX, 19 VDDRX, 20 VDDPLL, 21 VSSPLL, 22 VSSOSC, 23 OSC1, 24 OSC2, 25 VDDOSC, 26 LEDB, 27 LEDA, 28 VDDENC28J601VCAP2VSS3CLKOUT4INT5NC6SO7SI8SCK9CS10RESET11VSSRX12TPIN−13TPIN+14RBIAS15VDDTX16TPOUT−17TPOUT+18VSSTX19VDDRX20VDDPLL21VSSPLL22VSSOSC23OSC124OSC225VDDOSC26LEDB27LEDA28VDDвид сверху
ENC28J60 в корпусе SPDIP-28, SOIC-28 или SSOP-28, вид сверху
Вывод DIP/SOIC/SSOPВывод QFNОбозначениеНазначение
125VCAPвыход внутреннего стабилизатора 2,5 В: конденсатор с малым ESR, 10 мкФ тип., не меньше 1 мкФ; внешнюю нагрузку не подключать
226VSSобщий провод
327CLKOUTпрограммируемый выход тактов, до 8 мА
428INTвыход прерывания, до 4 мА
51NCзарезервирован, не подключать
62SOвыход данных SPI, до 4 мА
7, 83, 4SI, SCKвход данных и такт SPI, допускают 5 В
95CSвыбор микросхемы, допускает 5 В, слабая подтяжка к VDD
106RESETсброс, активный низкий, допускает 5 В, слабая подтяжка к VDD
117VSSRXземля приёмника
12, 138, 9TPIN−, TPIN+дифференциальный вход приёмника
1410RBIASрезистор смещения на землю, 2,32 кОм 1 %
1511VDDTXпитание передатчика
16, 1712, 13TPOUT−, TPOUT+дифференциальный выход передатчика
1814VSSTXземля передатчика
19, 2015, 16VDDRX, VDDPLLпитание 3,3 В приёмника и PLL
21, 2217, 18VSSPLL, VSSOSCземля PLL и генератора
23, 2419, 20OSC1, OSC2вход и выход генератора 25 МГц
2521VDDOSCпитание генератора
26, 2722, 23LEDB, LEDAвыходы светодиодов, до 12 мА
2824VDDпитание 3,3 В

Параметры

Постоянные характеристики — по разд. 16.1 даташита при VDD 3,1–3,6 В, −40…+85 °C (исполнение I) или 0…+70 °C (исполнение C, только SSOP):

ПараметрМин.Тип.Макс.
Напряжение питания VDD3,10 В3,30 В3,60 В
Высокий уровень на SCK, CS, SI, RESET2,25 В—5,5 В
Низкий уровень на SCK, CS, SI, RESETVSS—1,0 В
Выход высокого уровня INT, SO при −4 мАVDD − 0,7 В——
Выход низкого уровня INT, SO при 4 мА——0,4 В
Слабая подтяжка CS, RESET74 кОм—173 кОм
Ток при передаче (3,3 В, SPI 10 МГц)—160 мА180 мА
Ток без передачи (3,3 В)—120 мА—
Ток во сне (3,3 В, 25 °C)—1,2 мА2,0 мА
Частота SPI——20 МГц
Частота генератора25 МГц—25 МГц
Допуск частоты генератора——±50 ppm
Длительность импульса RESET400 нс——

Предельные режимы (разд. 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 Мбит/с и есть драйвер с учётом ошибок кристалла.

Источники

  1. 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 МГц
  2. Microchip. ENC28J60 Silicon Errata and Data Sheet Clarification (DS80349C, 2010) — табл. 1 — ревизии B1, B4, B5, B7 и значение EREVID; табл. 2 — какие ошибки касаются каких ревизий; пп. 1–19 — описания и обходы

Нашли ошибку?