Init
This commit is contained in:
131
docs/Hardware integration guide.md
Normal file
131
docs/Hardware integration guide.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# Руководство по аппаратной интеграции: ESP32-C6
|
||||
**Версия документа:** 1.0
|
||||
**Статус:** Одобрено (Release)
|
||||
**Область применения:** Аппаратная разработка, интеграция модулей ESP32-C6 (на примере ESP32-C6-WROOM-1), подключение UART и использование Zigbee 3.0.
|
||||
|
||||
---
|
||||
|
||||
## 1. Введение
|
||||
Данный документ описывает требования и рекомендации по аппаратной интеграции системы-на-кристалле (SoC) **ESP32-C6**. Особенностью ESP32-C6 является встроенная поддержка Wi-Fi 6 (802.11ax), Bluetooth 5.3 (LE) и 802.15.4 (Zigbee 3.0 / Thread).
|
||||
|
||||
В руководстве рассмотрены базовая распиновка, схемы подключения интерфейса UART и варианты использования ESP32-C6 в качестве Zigbee-координатора или радиосопроцессора (RCP - Radio Co-Processor).
|
||||
|
||||
---
|
||||
|
||||
## 2. Распиновка ESP32-C6 (Pinout)
|
||||
|
||||
В таблице ниже приведена базовая распиновка на примере стандартного модуля **ESP32-C6-WROOM-1**. ESP32-C6 имеет гибкую матрицу GPIO, поэтому большинство периферийных устройств может быть переназначено на другие пины, однако существуют пины с фиксированными или специальными функциями (Strapping pins).
|
||||
|
||||
### 2.1. Основные выводы (Power & System)
|
||||
| Название пина | Тип | Описание |
|
||||
| :--- | :---: | :--- |
|
||||
| **3V3** | Power | Питание модуля, строго **3.0V - 3.6V**. |
|
||||
| **GND** | Power | Общая земля. |
|
||||
| **EN (CHIP_PU)** | Input | Включение чипа (High = ON, Low = OFF). Требуется подтяжка к 3V3 через резистор 10kΩ и конденсатор 1µF на GND (RC-цепь задержки). |
|
||||
|
||||
### 2.2. Конфигурационные выводы (Strapping Pins)
|
||||
Состояние этих пинов считывается во время сброса (Boot) для определения режима работы.
|
||||
|
||||
| Пин | Функция при загрузке | Нормальное состояние | Режим прошивки (UART Download) |
|
||||
| :--- | :--- | :---: | :---: |
|
||||
| **GPIO9** | Boot Mode | **HIGH** (Pull-up) | **LOW** (Pull-down) |
|
||||
| **GPIO8** | ROM Messages | Н/Д | HIGH / LOW (управляет выводом логов ROM) |
|
||||
| **GPIO15** | JTAG Signal | HIGH (Pull-up) | Влияет на тайминги VDD_SDIO |
|
||||
|
||||
> ⚠️ **Внимание:** Не подключайте к GPIO9 внешнюю периферию, которая может притянуть пин к земле в момент подачи питания, иначе ESP32-C6 не загрузится в рабочий режим (останется в режиме прошивки).
|
||||
|
||||
### 2.3. Интерфейсы по умолчанию
|
||||
| Пин | Функция | Описание |
|
||||
| :--- | :--- | :--- |
|
||||
| **GPIO16** | U0TXD | UART0 TX (Лог системы и прошивка) |
|
||||
| **GPIO17** | U0RXD | UART0 RX (Лог системы и прошивка) |
|
||||
| **GPIO12** | USB_D- | USB Serial/JTAG (Поддержка встроенного USB) |
|
||||
| **GPIO13** | USB_D+ | USB Serial/JTAG (Поддержка встроенного USB) |
|
||||
|
||||
---
|
||||
|
||||
## 3. Подключение UART (UART Wiring)
|
||||
|
||||
ESP32-C6 использует логические уровни **3.3V**. Подключение к устройствам с 5V-логикой (например, к старым платам Arduino) требует использования конвертера логических уровней (Logic Level Shifter).
|
||||
|
||||
### 3.1. Базовое подключение (Прошивка и отладка)
|
||||
Для программирования и чтения логов используется **UART0**.
|
||||
|
||||
* **Host TX** ➔ **ESP32 GPIO17** (U0RXD)
|
||||
* **Host RX** ➔ **ESP32 GPIO16** (U0TXD)
|
||||
* **Host GND** ➔ **ESP32 GND** (Обязательное соединение!)
|
||||
|
||||
### 3.2. Подключение аппаратного контроля потока (Hardware Flow Control)
|
||||
При передаче больших объемов данных (что критично для работы Zigbee RCP на высоких скоростях, например 115200 или 460800 бод), строго рекомендуется использовать аппаратный контроль потока.
|
||||
|
||||
Любые свободные GPIO могут быть назначены как RTS/CTS через матрицу GPIO. Пример конфигурации для **UART1**:
|
||||
* **UART1 TX:** GPIO4
|
||||
* **UART1 RX:** GPIO5
|
||||
* **UART1 CTS:** GPIO6 *(подключается к RTS хоста)*
|
||||
* **UART1 RTS:** GPIO7 *(подключается к CTS хоста)*
|
||||
|
||||
#### Диаграмма подключения UART RCP (Host ↔ ESP32-C6)
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph Host [Host CPU / Raspberry Pi]
|
||||
HTX[TXD]
|
||||
HRX[RXD]
|
||||
HRTS[RTS]
|
||||
HCTS[CTS]
|
||||
HGND[GND]
|
||||
end
|
||||
|
||||
subgraph ESP [ESP32-C6 Zigbee RCP]
|
||||
ERX[RXD - GPIO5]
|
||||
ETX[TXD - GPIO4]
|
||||
ECTS[CTS - GPIO6]
|
||||
ERTS[RTS - GPIO7]
|
||||
EGND[GND]
|
||||
end
|
||||
|
||||
HTX -->|3.3V| ERX
|
||||
ETX -->|3.3V| HRX
|
||||
HRTS -->|3.3V| ECTS
|
||||
ERTS -->|3.3V| HCTS
|
||||
HGND --- EGND
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Подключение и интеграция Zigbee (Zigbee Module Connections)
|
||||
|
||||
ESP32-C6 содержит встроенный радиомодуль IEEE 802.15.4, что означает, что он **сам является Zigbee-модулем**. Внешний Zigbee-трансивер не требуется.
|
||||
|
||||
Архитектурно ESP32-C6 может использоваться в двух режимах интеграции:
|
||||
|
||||
### Вариант А: Режим "Radio Co-Processor" (RCP)
|
||||
В этом режиме стек протоколов Zigbee (например, Z2M / Zigbee2MQTT / ZHA) работает на основном хосте (Linux, Raspberry Pi), а ESP32-C6 выступает только как радио-модем.
|
||||
|
||||
1. **Интерфейс связи:** UART1 или USB (через пины GPIO12/13).
|
||||
2. **Прошивка:** ESP-Zigbee-RCP (компилируется через ESP-IDF).
|
||||
3. **Требования к железу:**
|
||||
* Обязательное подключение пинов CTS/RTS (см. раздел 3.2).
|
||||
* Качественное питание 3.3V, способное обеспечить пиковые токи до **350 мА** во время передачи (TX) в режиме 802.15.4.
|
||||
|
||||
### Вариант Б: Режим "Standalone SoC" (Координатор / Роутер / Конечное устройство)
|
||||
В этом режиме весь стек Zigbee-координатора (ZC), роутера (ZR) или конечного устройства (ZED) крутится на самом процессоре RISC-V внутри ESP32-C6.
|
||||
|
||||
1. **Подключение датчиков:** Напрямую к пинам ESP32-C6 по I2C (обычно GPIO8/GPIO9), SPI или ADC.
|
||||
2. **Питание (Для ZED):** Если устройство работает от батарейки (Sleepy End Device), необходимо минимизировать энергопотребление.
|
||||
* Использовать внешние подтягивающие резисторы большого номинала (от 100kΩ).
|
||||
* Во время Deep Sleep ток потребления ESP32-C6 составляет **около 7 мкА**.
|
||||
3. **Интеграция антенны:**
|
||||
* При использовании версии с PCB-антенной (ESP32-C6-WROOM-1): Запрещается размещать медь на печатной плате под антенной. Необходимо обеспечить "Keepout Zone" минимум 15 мм вокруг антенны.
|
||||
* При использовании версии с U.FL (IPEX) коннектором (ESP32-C6-WROOM-1U): Убедиться, что ВЧ-кабель имеет импеданс строго 50 Ом.
|
||||
|
||||
---
|
||||
|
||||
## 5. Чек-лист проектирования печатной платы (PCB Layout)
|
||||
|
||||
- [ ] **Питание (LDO):** Стабилизатор 3.3V должен выдавать не менее 500 мА для обеспечения пиковых нагрузок Wi-Fi + Zigbee (Coexistence).
|
||||
- [ ] **Конденсаторы (Bypass):** Возле пина 3V3 модуля ESP32-C6 должны быть размещены конденсаторы на 10µF и 0.1µF.
|
||||
- [ ] **Кнопки BOOT/EN:** Для ручной прошивки добавьте тактовые кнопки:
|
||||
- Кнопка `RST` замыкает `EN` на `GND`.
|
||||
- Кнопка `BOOT` замыкает `GPIO9` на `GND`.
|
||||
- [ ] **Изоляция радиочастот:** Если на плате присутствуют другие высокочастотные компоненты (USB 3.0, импульсные преобразователи), они должны быть экранированы для предотвращения деградации сигнала Zigbee 2.4 GHz.
|
||||
- [ ] **Auto-Programmer Circuit:** При подключении к USB-UART мосту (CP2102, CH340), использовать стандартную схему с двумя NPN транзисторами (DTR/RTS) для автоматического перевода ESP32-C6 в режим загрузки.
|
||||
Reference in New Issue
Block a user