|
RCM — ESP32 Room Controller
WT32-ETH01 firmware
|
Драйвер и сетевой стек Ethernet для WT32-ETH01 (LAN8720A, RMII). More...
#include "ethernet.h"#include "driver/gpio.h"#include "esp_check.h"#include "esp_eth.h"#include "esp_event.h"#include "esp_log.h"#include "esp_netif.h"#include "freertos/FreeRTOS.h"#include "freertos/task.h"#include "mqtt_app.h"#include "web_server.h"Go to the source code of this file.
Macros | |
| #define | ETH_PHY_ADDR 1 |
| Адрес PHY на шине SMI (MDC/MDIO), для LAN8720 на этой плате — 1. | |
| #define | ETH_MDC_GPIO 23 |
| GPIO линии MDC (Management Data Clock) для SMI. | |
| #define | ETH_MDIO_GPIO 18 |
| GPIO линии MDIO (Management Data I/O) для SMI. | |
| #define | ETH_PHY_POWER_GPIO 16 |
| GPIO включения питания PHY (активный уровень — высокий) | |
| #define | ETH_RMII_CLK_GPIO 0 |
| GPIO внешнего тактового сигнала RMII (50 МГц от PHY на GPIO0) | |
Functions | |
| static void | eth_event_handler (void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) |
| Обработчик событий Ethernet (линк, отключение и т. | |
| static void | got_ip_event_handler (void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) |
| Обработчик получения IP-адреса по DHCP (или статической конфигурации). | |
| static esp_err_t | wt32_eth_driver_init (esp_eth_handle_t *eth_handle_out) |
| Инициализация драйвера Ethernet под конкретную плату WT32-ETH01. | |
| esp_err_t | ethernet_start (void) |
| Инициализирует и запускает Ethernet на плате WT32-ETH01. | |
Variables | |
| static const char * | TAG = "ethernet" |
| static esp_eth_handle_t | s_eth_handle |
| Дескриптор драйвера Ethernet (MAC + PHY) | |
| static esp_netif_t * | s_eth_netif |
| Сетевой интерфейс LwIP для Ethernet. | |
| static esp_eth_netif_glue_handle_t | s_eth_glue |
| Связка между esp_eth и esp_netif. | |
| static httpd_handle_t | s_http_server |
| Дескриптор HTTP-сервера; NULL, если сервер не запущен | |
Драйвер и сетевой стек Ethernet для WT32-ETH01 (LAN8720A, RMII).
Схема работы:
Definition in file ethernet.c.
| #define ETH_MDC_GPIO 23 |
GPIO линии MDC (Management Data Clock) для SMI.
Definition at line 34 of file ethernet.c.
Referenced by wt32_eth_driver_init().
| #define ETH_MDIO_GPIO 18 |
GPIO линии MDIO (Management Data I/O) для SMI.
Definition at line 37 of file ethernet.c.
Referenced by wt32_eth_driver_init().
| #define ETH_PHY_ADDR 1 |
Адрес PHY на шине SMI (MDC/MDIO), для LAN8720 на этой плате — 1.
Definition at line 31 of file ethernet.c.
Referenced by wt32_eth_driver_init().
| #define ETH_PHY_POWER_GPIO 16 |
GPIO включения питания PHY (активный уровень — высокий)
Definition at line 40 of file ethernet.c.
Referenced by wt32_eth_driver_init().
| #define ETH_RMII_CLK_GPIO 0 |
GPIO внешнего тактового сигнала RMII (50 МГц от PHY на GPIO0)
Definition at line 43 of file ethernet.c.
Referenced by wt32_eth_driver_init().
|
static |
Обработчик событий Ethernet (линк, отключение и т.
д.).
| arg | Не используется (передаётся NULL при регистрации). |
| event_base | База событий (ожидается ETH_EVENT). |
| event_id | ETHERNET_EVENT_CONNECTED или ETHERNET_EVENT_DISCONNECTED. |
| event_data | Данные события (для GOT_IP не используется здесь). |
Definition at line 65 of file ethernet.c.
References mqtt_app_stop(), s_eth_handle, s_http_server, TAG, and web_server_stop().
Referenced by ethernet_start().
| esp_err_t ethernet_start | ( | void | ) |
Инициализирует и запускает Ethernet на плате WT32-ETH01.
Выполняет:
Definition at line 174 of file ethernet.c.
References eth_event_handler(), got_ip_event_handler(), s_eth_glue, s_eth_handle, s_eth_netif, TAG, and wt32_eth_driver_init().
Referenced by app_main().
|
static |
Обработчик получения IP-адреса по DHCP (или статической конфигурации).
Вызывается при IP_EVENT_ETH_GOT_IP. После успешного назначения адреса один раз запускается HTTP-сервер и MQTT-клиент.
Definition at line 99 of file ethernet.c.
References mqtt_app_start(), s_http_server, TAG, and web_server_start().
Referenced by ethernet_start().
|
static |
Инициализация драйвера Ethernet под конкретную плату WT32-ETH01.
Последовательность:
| eth_handle_out | Выход: дескриптор установленного драйвера. |
Definition at line 127 of file ethernet.c.
References ETH_MDC_GPIO, ETH_MDIO_GPIO, ETH_PHY_ADDR, ETH_PHY_POWER_GPIO, ETH_RMII_CLK_GPIO, and TAG.
Referenced by ethernet_start().
|
static |
Связка между esp_eth и esp_netif.
Definition at line 52 of file ethernet.c.
Referenced by ethernet_start().
|
static |
Дескриптор драйвера Ethernet (MAC + PHY)
Definition at line 46 of file ethernet.c.
Referenced by eth_event_handler(), and ethernet_start().
|
static |
Сетевой интерфейс LwIP для Ethernet.
Definition at line 49 of file ethernet.c.
Referenced by ethernet_start().
|
static |
Дескриптор HTTP-сервера; NULL, если сервер не запущен
Definition at line 55 of file ethernet.c.
Referenced by eth_event_handler(), and got_ip_event_handler().
|
static |
Definition at line 26 of file ethernet.c.
Referenced by eth_event_handler(), ethernet_start(), got_ip_event_handler(), and wt32_eth_driver_init().