Можно ли подключить ENC28J60 к Arduino на 5 В?
Обновлено Редакция GAW
ENC28J60 — микросхема на 3,3 В: питание от 3,1 до 3,6 В (Microchip, с. 1). При этом Microchip специально сделала её удобной для систем на 5 В: входы CS, SCK, SI и RESET выдерживают 5 В (разд. 2.5), так что линии от Arduino к модулю можно подключать напрямую. Проблема в обратном направлении — с выходами SO (MISO) и INT.
| Линия | Направление | Напрямую к Arduino 5 В |
|---|---|---|
| CS, SCK, SI (MOSI), RESET | Arduino → ENC28J60 | можно: входы выдерживают 5 В |
| SO (MISO) | ENC28J60 → Arduino | нужен преобразователь уровня |
| INT | ENC28J60 → Arduino | нужен преобразователь уровня |
| CLKOUT (если используется) | ENC28J60 → Arduino | нужен преобразователь уровня |
| VDD | питание | только 3,1–3,6 В |
Почему SO не годится напрямую
По табл. 16-1 даташита ENC28J60 выход SO в состоянии «1» даёт не меньше VDD − 0,7 В. Наш расчёт: при питании 3,3 В это 2,6 В. Вход ATmega328P при питании 5 В гарантированно считает единицей напряжение от 0,6 · VCC = 3,0 В (DS40002061B, табл. DC-характеристик). Между 2,6 и 3,0 В — зона, где поведение не гарантировано. Microchip прямо пишет, что микроконтроллер на 5 В в этом случае, скорее всего, окажется вне спецификации, и советует однонаправленный преобразователь уровня: 74HCT08, 74ACT125 или другую микросхему на 5 В со входами ТТЛ-уровня (разд. 2.5, рис. 2-5, 2-6).
Питание модуля
При передаче кадров ENC28J60 потребляет 160 мА типично и до 180 мА (табл. 16-1). Стабилизатор 3,3 В должен отдавать такой ток с запасом. У многих готовых модулей свой стабилизатор и вход 5 В — сверьтесь со схемой конкретного модуля, прежде чем подавать 5 В на его вывод питания.
Если плата и модуль одинаково работают от 3,3 В — например, Arduino на 3,3 В, ESP32 или STM32, — преобразователь не нужен. Что значит «вход выдерживает 5 В», объясняет термин «вывод FT (5 V tolerant)», устройство шины — статья «SPI». Сравнение с W5500 — в ответе «Что лучше для Arduino: W5500 или ENC28J60?», подробности о контроллере — в статье «Ethernet для микроконтроллера».
Похожие вопросы
Почему ENC28J60 с Arduino на 5 В иногда работает и без преобразователя уровня?
Наш расчёт: при питании 3,3 В выход SO даёт не меньше 2,6 В, а ATmega328P при 5 В гарантированно считает единицей только напряжение от 3,0 В. Реальный порог входа обычно ниже гарантированного, поэтому на столе схема может работать, но запаса нет — сбои появятся от экземпляра, температуры или длины проводов.
Можно ли питать ENC28J60 от вывода 3.3V платы Arduino?
Только если стабилизатор платы рассчитан на ток с запасом: при передаче ENC28J60 потребляет до 180 мА. Надёжнее отдельный стабилизатор 3,3 В на модуле или на плате; многие готовые модули ENC28J60 питаются от 5 В через свой стабилизатор — проверьте схему модуля.
Какой преобразователь уровня поставить на SO?
Microchip предлагает однонаправленный буфер с входами ТТЛ-уровня, питаемый от 5 В, — например, 74HCT08 или 74ACT125. Трёхстабильный 74ACT125 удобен, если на шине SPI есть другие устройства: его выход отключается, когда ENC28J60 не выбран.
Источники
- Microchip. ENC28J60 Stand-Alone Ethernet Controller with SPI Interface, DS39662E — с. 1 — питание 3,1–3,6 В, входы, выдерживающие 5 В; разд. 2.5 — CS, SCK, SI и RESET выдерживают 5 В, для микроконтроллера на 5 В выходы SO и INT нужно поднять однонаправленным преобразователем уровня, например 74HCT08 или 74ACT125, рис. 2-5 и 2-6; табл. 16-1 — VOH выходов INT и SO не меньше VDD − 0,7 В, ток при передаче 160 мА типично, 180 мА наибольший
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet, DS40002061B — разд. 29.2, табл. DC-характеристик — VIH не меньше 0,6·VCC при VCC 2,4–5,5 В для всех выводов, кроме XTAL1 и RESET
Нашли ошибку?
Смотрите также
- Ethernet для микроконтроллераW5500, ENC28J60, MAC + PHY по RMII, LAN8720, DP83848, трансформатор и разводка
- Что лучше для Arduino: W5500 или ENC28J60?W5500: стек TCP/IP в микросхеме и штатная библиотека Ethernet
- Вывод FT (5 V tolerant)Вход на 3,3 В, выдерживающий 5 В, и его условия
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR