# 嵌入式 嵌入式的知识 规格 元件 具体的代码在rust的esp库中. ## PCB PCB电路板上的元器件的介绍 - GND: 地线 - PWN: 脉冲宽度调制 用数字信号近似连续信号 - 模拟信号: 连续信号 - 数字信号: 01的离散信号 - GPIO: 通用输入输出 - SPI: 串行外设接口 - I2C: 集成电路内置总线 - I2S: 集成电路内置音频总线 - ADC: 模数转换器 把连续的模拟电压量化为离散信号 - UART: 通用异步收发传输器 最经典的**串口通讯** - LEDC: ESP的LED控制器 也是PWM发生器 - RMT: ESP的红外遥控收发器 - DAC: 数模转换器 把离散的数字信号转换为连续的模拟电压 ## WS 世界半导体 - WS2812: 内置控制IC的智能控制LED光源 ## ESP32 ESP32包含多种常见变体 - ESP32 - ESP32-S系列 - ESP32-C系列 - ESP32-H系列 - ESP32-P系列 其中 ESP32-C6,ESP32-H2,ESP32-P4都是**专用于**新的无线电标准的 | 特征 | ESP32 | S2 | S3 | C3 | C6 | H2 | P4 | ESP8266 | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | 发射 | 2016 | 2019 | 2020 | 2020 | 2021 | 2021 | 2024 | 2014 | | 核心类型 | LX6 | LX7 | LX7 | RISC-V | RISC-V | RISC-V | RISC-V | L106 | | 核心 | 2 | 1 | 2 | 1 | 1 | 1 | 2 | 1 | | 频率 | 240 | 240 | 240 | 160 | 160 | 96 | 400 | 160 | | 电压 | 2.3-3.6 | 3.0-3.6 | 3.0-3.6 | 3.0-3.6 | 3.0-3.6 | 3.3-3.6 | 3.0-3.6 | 2.5-3.6 | | GPIO | 34 | 43 | 45 | 22 | 30 | 19 | 50+ | 17 | | SRAM KB | 520 | 320 | 512 | 400 | 320 | 256 | 768 | 160 | | RTC/LP SRAM KB | 16 | 16 | 16 | 8 | 16 | 4 | 16 | 1 | | 闪存 MB | 0/2/4 | 0/2/4 | 0/8 | 0/4 | 0/4 | 2/4 | 0/4/8 | 4 | | 缓存 KB | 64 | 8/16 | 16 | 16 | 16 | 16 | 32 | 32 | | ROM KB | 448 | 128 | 384 | 384 | 320 | 128 | 384 | 0 | | USB JTAG | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | | USB OTG | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | | ADC | 2x12位 18通道 | 2x13位 20通道 | 2x12位 20通道 | 1x12位 6通道 | 1x12位 7通道 | 1x12位 5通道 | 2x12位 20通道 | 1x10位 1通道 | | DAC | 2x8位 | 2x8位 | ❌ | ❌ | ❌ | ❌ | 2x8位 | ❌ | | 数字视频接口 | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | 定时器 | 4x64位 | 4x64位 | 4x64位 | 2x54位 | 2x54位 | 2x54位 | 4x64位 | 2x23位 | | 监督机构 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 1 | | I2C | 2 | 2 | 2 | 1 | 2 | 2 | 4 | 1 | | I2S | 2 | 1 | 2 | 1 | 1 | 1 | 2 | 1 | | SPI | 4 | 4 | 4 | 3 | 2 | 3 | 4 | 2 | | 以太网 | 1 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | LCD接口 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | | MCU温度 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | | 触碰 | 10 | 14 | 14 | ❌ | ❌ | ❌ | 14 | ❌ | | UART | 3 | 2 | 3 | 2 | 3 | 2 | 4 | 2 | | 红外/RMT | 8 | 4 | 8 | 4 | 4 | 4 | 8 | 1 | | 霍尔传感器 | 1 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | LED PWM | 16 | 8 | 8 | 6 | 6 | 6 | 16 | 5 | | 电机脉宽调制 | 6 | ❌ | 2 | ❌ | ❌ | 1 | 6 | ❌ | | 无线上网 | 4/6 | 4 | 4 | 4 | 4/6 | ❌ | 4/5 | 4 | | 无线网络速度 | 150 | 150 | 150 | 150 | 150 | ❌ | 150@2GHz, 433@5GHz | 72.2 | | WiFi 5GHz | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | | 蓝牙经典版 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | 蓝牙低功耗 (BLE) | BLE4.2 | ❌ | BLE5.0 | BLE5.0 | BLE5.3 | BLE5.3 | BLE5.2 | ❌ | | 线程 1.3 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | | Zigbee 3.0 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | | 事情 (Matter) | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | | HomeKit、MQTT 等 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | | 相机接口 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | TWAI(CAN 2.0) | ✅ | ✅ | ✅ | ✅ | ✅(2) | ✅ | ✅ | ❌ | | SD主机 | ✅ | ❌ | ✅(2) | ❌ | ❌ | ❌ | ✅ | ❌ | | SD 从设备 | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | | JTAG | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | | 飞行时间 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | AI加速支持 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | | 深度睡眠 | 10µA | 20µA | 7µA | 5µA | 7µA | 8µA | 10µA | 20µA | | 尺寸(毫米) | 5x5/6x6 | 7x7 | 7x7 | 5x5 | 5x5 | 4x4 | 7x7 | 5x5 | ## orangepi zero2w 首先 修改内核启动参数 `/boot/orangepiEnv.txt` 开启USB的**从机模式** ``` verbosity=1 bootlogo=false console=both disp_mode=1920x1080p60 overlay_prefix=sun50i-h616 rootdev=UUID=90e39537-8dde-46da-8588-e030a2e198a3 rootfstype=ext4 overlays=usb-gadget extraargs=modules-load=dwc2,g_serial console=ttyS0,115200 console=ttyGS0,115200 ``` 然后在Getty开启GS0的监听 ``` ln -sf lib/systemd/system/serial-getty@.service \ etc/systemd/system/getty.target.wants/serial-getty@ttyGS0.service ```