Информации о том, как реализовать самостоятельный доступ к 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
После подключения по вышеуказанному методу метод настройки следующий:
Земля. Чип упакован в QFN-24. GND — это нижняя площадка чипа. Дополнительного контакта GND нет, поэтому сварщику сложнее выполнять сварку. Мой опыт состоит в том, чтобы сначала нанести тонкий слой олова паяльником, а затем продуть феном на 380° при скорости ветра 3,5. После того, как площадка выпрямлена, аккуратно подтолкните ее пинцетом. автоматически вернется в исходное положение, указывая, что нижняя площадка полностью расплавлена и подключена; затем продуйте ее феном. Используйте паяльник, чтобы подправить контакты, и, наконец, используйте мультиметр, чтобы подтвердить соединение. владеют навыками, вероятность успеха составляет 100%.
Силовая изоляция. Напряжение VCC LAN8720 составляет 3,3 В. Если вы используете линейный стабилизированный источник питания, вам не нужно рассматривать этот шаг. Если вы используете импульсный источник питания, такой как LM2596, вам необходимо рассмотреть возможность установки магнитного резистора перед источником питания для фильтрации высокочастотных помех 150 к Гц (существует слишком много поддельных LM2596, большинство из которых отполированы). диски 2576, а частота колебаний 2576 составляет 50 к Гц). Я использовал микросхему стабилизатора напряжения Shengbang Micro SGM6232YPS8G с частотой переключения 1,4 МГц, поэтому для изоляции питания не используются магнитные шарики. Когда позже у меня будет время, я планирую сделать отдельный пост, чтобы рассказать о схеме импульсного блока питания. Эту часть блока питания необходимо использовать при самостоятельной сборке, и делать это нужно хорошо.
Настройка адреса чипа PHY. LAN8720 можно настроить через вывод PHYAD0, который мультиплексирован с выводом RXER. Чип имеет встроенный понижающий резистор. После завершения аппаратного сброса LAN8720A считывает уровень контакта как адрес SMI устройства. , а затем опустите резистор. При использовании резистора (его также можно оставить плавающим, поскольку микросхема имеет встроенный подтягивающий резистор) установите адрес SMI равным 0. При подключении внешнего подтягивающего резистора его можно установить на 1. Когда я его использую, вывод плавающий, то есть адрес LAN8720 установлен на 0.
Конфигурация функций выводов 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 оставлено пустым, опция «Внешний кварцевый генератор» бесплатна.
Проблемы, связанные с сокетом сетевого порта RJ45. При выборе различных режимов для nINT/REFCLKO следует обратить внимание на метод подключения с помощью RJ45. Неправильное подключение приведет к изменению фазы светодиодного индикатора сетевого порта. Я выбрал разъем RJ45 HR911105A. Разместим картинку сюда еще раз, обязательно обратите внимание на R9 R10.