Проводной доступ ESP32 к методу Ethernet
Проводной доступ ESP32 к методу Ethernet

Информации о том, как реализовать самостоятельный доступ к Ethernet в стране и за рубежом, не так много. Главное — медленно исследовать самостоятельно. Конкретный принцип заключается в добавлении чипа PHY в ESP32 и подключении его к порту GPIO. Соответствующие модули доступны на Xbao, но цены на модули высоки, и мне никогда не нравятся летающие провода, поэтому мне приходится самому разрабатывать печатную плату, чтобы чувствовать себя комфортно.

1. Выбор PHY-чипа

https://esphome.io/components/ethernet.html На веб-странице ESPHOME Ethernet написано, что ESP32 поддерживает два чипа PHY: LAN8720 и TLK110. Цена первого чипа составляет около 2 юаней, второго — около 50 юаней, а чип 110 имеет слишком много контактов и занимает слишком много места, поэтому я определенно выберу первый.

LAN8720 — это микросхема физического уровня Ethernet 10/100M с низким энергопотреблением. Напряжение на выводах ввода-вывода соответствует стандарту IEEE802.3-2005. Он поддерживает связь с уровнем Ethernet MAC через интерфейс RMII и имеет встроенный 10-BASE. -T/100BASE-TX Модуль полнодуплексной передачи, поддерживающий скорость 10 Мбит/с и 100 Мбит/с.

LAN8720A может автоматически выбирать лучший метод подключения (скорость и дуплексный режим) с хостом назначения. Он поддерживает функцию автоматического переворота HP Auto-MDIX, и соединение можно изменить на прямое или перекрестное соединение без замены сетевого кабеля. Основные характеристики LAN8720A следующие: Высокопроизводительный модуль передачи Ethernet 10/100M Поддерживает интерфейс RMII для уменьшения количества контактов. Поддерживает полнодуплексный и полудуплексный режимы. Два выхода светодиодных индикаторов состояния Кварцевый генератор 25M можно использовать для снижения затрат. Поддержка режима автосогласования Поддерживает функцию автоматического переворота HP Auto-MDIX. Поддерживает последовательный интерфейс управления SMI. Поддержка MAC-интерфейса

Из-за популярности Gigabit цена на этот чип упала более чем до 1 юаня. Но не говоря уже о 100 Мбит/с, пропускной способности в 10 Мбит/с достаточно, чтобы обеспечить передачу трафика управления умным домом. .

Купите его!

2. Схема микросхемы

Соединение порта GPIO является ключевым моментом. Если у вас нет никакой информации, просто медленно откройте таблицу данных. Здесь я помогу вам разобраться с подводными камнями: некоторые пины должны быть подключены к GPIO и должны быть подключены таким образом, некоторые пины можно определить в ESP32 самостоятельно, и вы можете выбрать все, что захотите;

Начну с связанной картинки:

Способ подключения:

GPIO23-MDC

GPIO18-MDIO

GPIO17 CLK_IN

GPIO21-TX_EN

GPIO19-TX0

GPIO22 TX1

GPIO25-RX0

GPIO26-RX1

GPIO27-CRS_DRV

Среди них вывод MDC MDIO CLK_IN можно подключить к любому GPIO, а остальные необходимо подключить согласно методу подключения, который я написал.

Один чип PHY занимает так много портов GPIO, поэтому, возможно, 8266 не поддерживает Ethernet.

Схема практического применения:

RJ45 — это сетевой порт RJ45 100M с сетевым трансформатором. Я использую модель HR911105A.

Обратите внимание, что способы подключения и параметры периферийных компонентов должны соответствовать приведенным мной значениям. Данная схема тщательно мной проверена. Пожалуйста, не экономьте на материалах, иначе сеть может быть заблокирована и работать нестабильно.

На рисунке некоторые компоненты отмечены NC, что означает, что подключение не требуется. Об этом будет сказано позже.

3. Как настроить в ESPHOME

После подключения по вышеуказанному методу метод настройки следующий:

Язык кода:javascript
копировать
esphome:
  name: supersonic
  platform: ESP32
  board: esp-wrover-kit

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk_mode: GPIO17_OUT
  phy_addr: 0

4. Несколько важных вопросов:

  1. Земля. Чип упакован в QFN-24. GND — это нижняя площадка чипа. Дополнительного контакта GND нет, поэтому сварщику сложнее выполнять сварку. Мой опыт состоит в том, чтобы сначала нанести тонкий слой олова паяльником, а затем продуть феном на 380° при скорости ветра 3,5. После того, как площадка выпрямлена, аккуратно подтолкните ее пинцетом. автоматически вернется в исходное положение, указывая, что нижняя площадка полностью расплавлена ​​и подключена; затем продуйте ее феном. Используйте паяльник, чтобы подправить контакты, и, наконец, используйте мультиметр, чтобы подтвердить соединение. владеют навыками, вероятность успеха составляет 100%.
  1. Силовая изоляция. Напряжение VCC LAN8720 составляет 3,3 В. Если вы используете линейный стабилизированный источник питания, вам не нужно рассматривать этот шаг. Если вы используете импульсный источник питания, такой как LM2596, вам необходимо рассмотреть возможность установки магнитного резистора перед источником питания для фильтрации высокочастотных помех 150 к Гц (существует слишком много поддельных LM2596, большинство из которых отполированы). диски 2576, а частота колебаний 2576 составляет 50 к Гц). Я использовал микросхему стабилизатора напряжения Shengbang Micro SGM6232YPS8G с частотой переключения 1,4 МГц, поэтому для изоляции питания не используются магнитные шарики. Когда позже у меня будет время, я планирую сделать отдельный пост, чтобы рассказать о схеме импульсного блока питания. Эту часть блока питания необходимо использовать при самостоятельной сборке, и делать это нужно хорошо.
  2. Настройка адреса чипа PHY. LAN8720 можно настроить через вывод PHYAD0, который мультиплексирован с выводом RXER. Чип имеет встроенный понижающий резистор. После завершения аппаратного сброса LAN8720A считывает уровень контакта как адрес SMI устройства. , а затем опустите резистор. При использовании резистора (его также можно оставить плавающим, поскольку микросхема имеет встроенный подтягивающий резистор) установите адрес SMI равным 0. При подключении внешнего подтягивающего резистора его можно установить на 1. Когда я его использую, вывод плавающий, то есть адрес LAN8720 установлен на 0.
  3. Конфигурация функций выводов nINT/REFCLKO. Вывод nINT/REFCLKO можно использовать как выход прерывания или как выход опорного тактового сигнала. Значение, установленное выводом LED2 (nINTSEL), считывается LAN8720 после сброса микросхемы. Когда вывод подключен к подтягивающему резистору (или плавающему встроенному подтягивающему резистору), затем, после нормальной работы, вывод nINT/ REFCLKO будет функционировать как вывод прерывания (выбран режим REF_CLKIN). Когда этот вывод подключен к понижающему резистору, после нормальной работы вывод nINT/REFCLKO будет использоваться в качестве выхода опорной тактовой частоты (выбран режим REF_CLK OUT). В режиме REF_CLK IN внешняя опорная тактовая частота 50 МГц должна быть подана на вывод XTAL1 (CLKIN) LAN8720. В режиме REF_CLK OUT LAN8720 можно подключить к внешнему кварцевому генератору с частотой 25 МГц, который внутренне умножается на 50 МГц, а затем выводит опорный тактовый сигнал 50 МГц на контроллер MAC через вывод REFCLKO. Таким образом, затраты на спецификацию могут быть снижены. Когда я его использую, я оставляю LED2 плавающим, то есть режим REF_CLKIN, а порт GPIO ESP32 выдает тактовый сигнал частотой 50 МГц. Поэтому на принципиальной схеме эти две схемы спроектированы одновременно. Вы можете выбрать одну из них. методы. Если поле NC оставлено пустым, опция «Внешний кварцевый генератор» бесплатна.
  4. Проблемы, связанные с сокетом сетевого порта RJ45. При выборе различных режимов для nINT/REFCLKO следует обратить внимание на метод подключения с помощью RJ45. Неправильное подключение приведет к изменению фазы светодиодного индикатора сетевого порта. Я выбрал разъем RJ45 HR911105A. Разместим картинку сюда еще раз, обязательно обратите внимание на R9 R10.

> Цитата: «Ханси за гранью»

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose