Пост

Полное руководство по подключению модуля Ethernet ENC28J60 к Raspberry Pi

Подключение внешнего Ethernet-модуля ENC28J60 через SPI-интерфейс — отличный способ добавить проводную сеть к одноплатным компьютерам Raspberry Pi Zero, Model A или другим моделям без встроенного LAN-порта. Это руководство предоставляет пошаговую инструкцию по аппаратному подключению и программной настройке с использованием актуальных версий Raspberry Pi OS.

Полное руководство по подключению модуля Ethernet ENC28J60 к Raspberry Pi через SPI

Подключение ENC28J60 к Raspberry Pi: подробное руководство на русском языке Подключение внешнего Ethernet-модуля ENC28J60 через SPI-интерфейс — отличный способ добавить проводную сеть к одноплатным компьютерам Raspberry Pi Zero, Model A или другим моделям без встроенного LAN-порта. Это руководство предоставляет пошаговую инструкцию по аппаратному подключению и программной настройке с использованием актуальных версий Raspberry Pi OS.

Описание и введение

Данная статья содержит исчерпывающую инструкцию по интеграции недорогого сетевого контроллера ENC28J60 с Raspberry Pi. Мы рассмотрим корректную схему подключения контактов, активацию необходимых интерфейсов в операционной системе и устранение типичных проблем. Весь процесс проверен на последних версиях Raspberry Pi OS (включая дистрибутивы на основе Debian Bookworm, где изменились пути к конфигурационным файлам).

Аппаратное подключение (Схема распиновки)

Перед началом работы убедитесь, что у вас есть модуль ENC28J60, Raspberry Pi и семь соединительных проводов (например, «папа-мама»). Критически важно правильно подключить питание и сигнальные линии во избежание повреждения оборудования. Подключите контакты согласно следующей проверенной схеме. Использование проводов разного цвета значительно упростит процесс и последующую диагностику.

Контакт Raspberry Pi (GPIO) Контакт модуля ENC28J60 Назначение
+3.3V (например, Pин 1 или 17) VCC Питание модуля (только 3.3V!)
GND (например, Pин 6, 9, 20) GND Земля (общий провод)
GPIO 10 (MOSI) SI (MOSI) Данные от Raspberry Pi к модулю
GPIO 9 (MISO) SO (MISO) Данные от модуля к Raspberry Pi
GPIO 11 (SCLK) SCK Тактовый сигнал интерфейса SPI
GPIO 8 (CE0) CS Выбор микросхемы (Chip Select 0)
GPIO 25 INT Линия прерывания (опционально)

Внимание: Подача напряжения 5V на контакт VCC модуля ENC28J60 с высокой вероятностью выведет его из строя. Всегда проверяйте распиновку вашего конкретного модуля. После сборки схемы тщательно перепроверьте все соединения, особенно цепи питания, перед первым включением.

Программная настройка в Raspberry Pi OS

После физического подключения включите Raspberry Pi и войдите в систему. Далее необходимо активировать SPI-интерфейс и загрузить драйвер для модуля.

Активация SPI через интерфейс raspi-config

Откройте терминал. Самый простой способ включить SPI — использовать утилиту конфигурации. Выполните команду: sudo raspi-config В меню утилиты последовательно выберите: Interface Options -> SPI -> Yes для ответа на вопрос «Would you like the SPI interface to be enabled?». Подтвердите выбор, нажмите ОК и завершите работу утилиты, выбрав Finish. Система предложит перезагрузку — согласитесь.

ENC28J60

Добавление драйвера ENC28J60

В современных версиях ОС драйвер для ENC28J60 встроен в ядро и активируется через файл конфигурации. Его необходимо отредактировать, выполнив команду: sudo nano /boot/firmware/config.txt Прокрутите файл вниз и добавьте в конец следующую строку: dtoverlay=enc28j60 Сохраните изменения (Ctrl+O, затем Enter) и закройте редактор (Ctrl+X). Для применения изменений перезагрузите Raspberry Pi командой: sudo reboot

ENC28J60

Проверка работоспособности

После перезагрузки откройте терминал и выполните несколько команд для проверки. Убедитесь, что новый сетевой интерфейс появился в системе. На Raspberry Pi Zero он, скорее всего, получит имя eth0. На моделях с встроенным Ethernet (например, Raspberry Pi 4) внешний модуль будет зарегистрирован как eth1. Выполните: ip a В длинном списке интерфейсов найдите запись, начинающуюся с eth (обычно eth0 или eth1). Это подтвердит, что система распознала устройство. Далее проверьте, что драйвер модуля был успешно загружен ядром: lsmod | grep enc28j60 В ответ вы должны увидеть строку с названием модуля enc28j60. Если команда не вывела ничего, значит, драйвер не загрузился — вернитесь к предыдущим шагам настройки. Для диагностики полезно просмотреть логи ядра. Следующая команда отфильтрует сообщения, относящиеся к сетевому интерфейсу: sudo dmesg | grep -i eth

ENC28J60

Типичные проблемы и решения

В процессе настройки вы можете столкнуться со следующими трудностями.

Проблема: Сетевой интерфейс не отображается в выводе команды ip a. Решение: Тщательно проверьте все соединения на плате. Убедитесь, что SPI активирован через raspi-config. Проверьте, что строка dtoverlay=enc28j60 корректно добавлена в файл /boot/firmware/config.txt и не содержит опечаток. Для углублённой диагностики выполните sudo dmesg | grep -i enc28 и изучите вывод.

Проблема: Светодиоды на модуле ENC28J60 и сетевом коммутаторе не горят, статус подключения «link down». Решение: ENC28J60 — устаревший чип, который работает только в режиме 10 Мбит/с (Half-Duplex). Многие современные маршрутизаторы и гигабитные коммутаторы могут не поддерживать этот режим по умолчанию. Попробуйте подключить модуль к старому роутеру, к порту 100 Мбит/с или напрямую к сетевой карте другого компьютера с помощью патч-корда. Также проверьте качество обжима разъёма RJ-45 на модуле.

Проблема: При каждой перезагрузке модуль получает новый случайный MAC-адрес. Решение: Поскольку у модуля нет вшитого MAC-адреса, система генерирует его случайным образом. Для присвоения фиксированного адреса отредактируйте файл конфигурации DHCP-клиента: sudo nano /etc/dhcpcd.conf Добавьте в конец файла следующие строки (замените AA:BB:CC:DD:EE:FF на желаемый MAC-адрес, а eth0 на имя вашего интерфейса, если это необходимо): interface eth0 duid clientid iaid aa:bb:cc:dd:ee:ff Сохраните файл и перезагрузитесь.

Проблема: Необходимо назначить модулю статический IP-адрес. Решение: Для этого также используется файл /etc/dhcpcd.conf. Добавьте в его конец блок (подставьте актуальные значения для вашей сети): interface eth0 static ip_address=192.168.1.100/24 static routers=192.168.1.1 static domain_name_servers=8.8.8.8 1.1.1.1 После сохранения изменений примените новую конфигурацию командой sudo systemctl restart dhcpcd.

Следуя этому руководству, вы сможете добавить проводное Ethernet-соединение к вашей Raspberry Pi, используя доступный и простой в подключении модуль ENC28J60. Несмотря на ограничение скорости в 10 Мбит/с, это решение идеально подходит для задач, не требующих высокой пропускной способности: удалённое управление, сбор данных с датчиков или создание простых сетевых сервисов. Главное — внимательно проверить схему подключения и убедиться, что для питания модуля используется стабильное напряжение 3.3V.

Авторский пост защищен лицензией CC BY 4.0 .

© evdokimoff. Некоторые права защищены.

Использует тему Chirpy для Jekyll