ESP32

No Comments

為了嘗試一張 8-bit 2.8″ TFT LCD Shield,首次使用 ESP32。
ESP32 的 Arduino IDE 的開發板庫連結如下。
https://dl.espressif.com/dl/package_esp32_index.json, https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json

於編譯過程遇到錯誤,No module named serial。pip install pyserial 來解決。

GPIO 腳位配置如下。
資料陸續追加。

2.8″ TFT LCD Shield

  • 參考出處:https://www.pangodream.es/ili9341-esp32-parallel
  • 此板使用所謂 parallel mode。serial/parallel 各有優缺點。
  • 此板規格:driver,ILI9341,8-bit,240×320,touch screen。UNO module。
  • GPIO 用上了 13 pins。故就 raw esp8266 GPIOs 而言是不夠用的。
  • power 必須用上 5V。此板沒有 backlight 的獨立開關或供電腳位。
  • 使用 TFT_eSPI 第三方函式庫。
  • 須於 User_Setup.h 中追加以下定義。或於 sketch 中,include 後,追加。
  • 腳位對應如圖。
  • 使用範例 UTFT_demo,主程式的 setup() 中,修改 myGLCD.setRotation(1) 成 7,以解鏡像結果。
// See SetupX_Template.h for all options available
#define ESP32_PARALLEL
#define ILI9341_DRIVER
// ESP32 pins used for the parallel interface TFT
#define TFT_CS   27  // Chip select control pin
#define TFT_DC   14  // Data Command control pin - must use a pin in the range 0-31
#define TFT_RST  26  // Reset pin
#define TFT_WR   12  // Write strobe control pin - must use a pin in the range 0-31
#define TFT_RD   13
#define TFT_D0   16  // Must use pins in the range 0-31 for the data bus
#define TFT_D1   4  // so a single register write sets/clears all bits
#define TFT_D2   23
#define TFT_D3   22
#define TFT_D4   21
#define TFT_D5   19
#define TFT_D6   18
#define TFT_D7   17
#define LOAD_GLCD   // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2  // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4  // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6  // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7  // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.
#define LOAD_FONT8  // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
#define LOAD_GFXFF  // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT

20221214 補充

  • 截至目前為止,ESP32 已陸續面市了數種版本,於此將其列出以比較其之間的差異與便於選用。
  • ESP32/ESP32-S2/ESP32-S3/ESP32-C2/ESP32-C3/ESP32-C6
  • 以下直接從官方文件複製貼上,故為簡體中文。
The 2-core ESP32 with 4MB ext-flash that at all needs 23 components
The 2-core ESP32 with 4MB ext-flash that at all needs 23 components

ESP32

ESP32 是集成 2.4 GHz Wi-Fi 和蓝牙双模的单芯片方案,采用台积电 (TSMC) 低功耗 40 纳米工艺
只需要 20 个左右的电阻电容电感、1 个无源晶振及 1 个 SPI flash 组成

ESP32 搭载低功耗 Xtensa® LX6 32-bit 单/双核处理器,具有以下特性:
• 7 级流水线架构,支持高达 240 MHz 的时钟频率(除 ESP32-S0WD (NRND) 为 160 MHz)
• 16-bit/24-bit 指令集提供高代码密度
• 支持浮点单元 (FPU)
• 支持 DSP 指令,例如 32-bit 乘法器、32-bit 除法器和 40-bit 累加乘法器 (MAC)
• 支持来自约 70 个中断源的 32 个中断向量
单/双核处理器接口包括:
• Xtensa RAM/ROM 指令和数据接口
• 用于快速访问外部寄存器的 Xtensa 本地存储接口
• 具有内外中断源的中断接口
• 用于调试的 JTAG 接口

Xtensa® 32-bit LX6 单/双核处理器
• CoreMark® 得分:
– 单核,主频 240 MHz:504.85 CoreMark;2.10 CoreMark/MHz
– 双核,主频 240 MHz:994.26 CoreMark;4.14 CoreMark/MHz

Storage/Protection
• 448 KB ROM
• 520 KB SRAM
• 16 KB RTC SRAM
• QSPI 支持多个 flash/SRAM

• 448 KB 的 ROM,用于程序启动和内核功能调用
• 用于数据和指令存储的 520 KB 片上 SRAM
• RTC 快速存储器,为 8 KB 的 SRAM,可以在 Deep-sleep 模式下 RTC 启动时用于数据存储以及被主 CPU 访问
• RTC 慢速存储器,为 8 KB 的 SRAM,可以在 Deep-sleep 模式下被协处理器访问
• 1 Kbit 的 eFuse,其中 256 bit 为系统专用(MAC 地址和芯片设置); 其余 768 bit 保留给用户程序, 这些程序包括 flash 加密和芯片 ID
• 嵌入式 flash 或 PSRAM
ESP32 可通过高速缓存访问外部 QSPI flash 和 SRAM:
• 外部 flash 可以同时映射到 CPU 指令和只读数据空间。
• 外部 SRAM 可映射到 CPU 数据空间。
ESP32 还支持基于 AES 的硬件加解密功能,从而保护开发者 flash 中的程序和数据。

安全启动
• flash 加密与动态解密
• 1024-bit OTP,用户可用的高达 768 bit
• 加密硬件加速器:
– AES
– Hash (SHA-2)
– RSA
– ECC
– 随机数生成器 (RNG)

Clock/Timer
内置 8 MHz 振荡器,支持自校准
• 内置 RC 振荡器,支持自校准
• 支持外置 2 MHz 至 60 MHz 的主晶振(如果使用 Wi-Fi/蓝牙功能,则目前仅支持 40 MHz 晶振)
• 支持外置 32 kHz 晶振,用于 RTC,支持自校准
• 2 个定时器群组,每组包括 2 个 64-bit 通用定时器和 1 个主系统看门狗,
具有 16-bit 分频器和 64-bit 可自动重载的向上/向下计时器
• 3 个看门狗定时器:2 个定时器模块中各有 1 个(称作主看门狗定时器,即 MWDT),RTC 模块中也有 1 个(称作 RTC 看门狗定时器,即 RWDT)。
• 1 个 RTC 定时器
• RTC 看门狗

超低功耗协处理器 (ULP Coprocessor) 是一种功耗极低的协处理器设备,可在主系统级芯片 (SoC) 系统进入 Deep-sleep 状态时保持上电,允许开发者通过存储在 RTC 中的专用程序,访问外围设备、内部传感器及 RTC 寄存器

WiFi 802.11 b/g/n
• 802.11 n (2.4 GHz) 速度高达 150 Mbps
• 4 × 虚拟 Wi-Fi 接口
• 同时支持基础结构型网络 (Infrastructure BSS) Station 模式/SoftAP 模式/混杂模式

蓝牙 v4.2 完整标准,包含传统蓝牙 (BR/EDR) 和低功耗蓝牙 (Bluetooth LE)
• 支持标准 Class-1、Class-2 和 Class-3,且无需外部功率放大器
• 提供 UART HCI 接口,速度高达 4 Mbps

IOs
• 34 个 GPIO 口
• 2 个 12-bit SAR ADC,多达 18 个通道
• 2 个 8-bit D/A 转换器 两个通道可以独立地工作
• 10 个触摸传感器
• 4 个 SPI
• 2 个 I2S
• 2 个 I2C
• 3 个 UART
• 1 个 Host SD/eMMC/SDIO
• 1 个 Slave SDIO/SPI
• 带有专用 DMA 的以太网 MAC 接口,支持 IEEE 1588
• TWAI® ,兼容 ISO 11898-1(CAN 规范 2.0)
• IR-RMT (TX/RX)
• 电机 PWM
• LED PWM,多达 16 个通道
• 霍尔传感器 是基于空穴 (N-carrier) 电阻设计的。当芯片置于电磁场中时,霍尔传感器会在电阻上横向产生一个小电压,这个小电压可由 ADC 直接测量。

ESP32-S2

ESP32-S2 芯片搭载 Xtensa® 32 位 LX7 configurable-7 级流水线架构单核处理器,工作频率高达 240 MHz
只需要 20 个左右的电阻电容电感、1 个无源晶振及 1 个 SPI flash 组成

包含独立的指令和数据 cache
16 位 / 24 位指令集提供高代码密度
支持 6 级 32 个中断
用于调试的 JTAG 接口

CoreMark 分数:
– 单核 240 MHz:472.73 CoreMark;1.97 CoreMark/MHz

Storage/Protection
128 KB ROM
320 KB SRAM
16 KB RTC SRAM
4 Kbit eFuse:其中 1792 位保留给用户使用,例如用于存储密钥和设备 ID

支持多个外部 SPI/QSPI/OSPI flash 和片外 RAM。该系列芯片还支持基于 XTS-AES 的硬件加解密功能,从而保护开发者 flash 和片外 RAM 中的程序和数据。
ESP32-S2 CPU 的指令空间、只读数据空间可以映射到外部 flash 和片外 RAM,CPU 的数据空间还可以映射到片外 RAM。对外部 flash 和 SRAM 各可以最大支持到 1 GB。
目前 ESP32-S2-WROVER 模组默认采用的是 4 MB 的 SPI flash 及 2 MB 的 PSRAM

具有多种特有的硬件安全机制。
4096 位 OTP,用户可用的高达 1792 位

硬件加密加速器支持 AES、SHA 和 RSA 算法。
– AES-128/192/256 (FIPS PUB 197)
– ECB/CBC/OFB/CFB/CTR (NIST SP 800-38A)
– GCM (NIST SP 800-38D)
– SHA (FIPS PUB 180-4)
– Hash (FIPS PUB 180-4)
其中 RSA 和大数模乘运算最大长度可达 4096 位,大数乘法的因子最大长度可达 2048 位。
– RNG、HMAC 和数字签名 (Digital Signature) 模块提供了更多安全性能。其他安全特性还包括 flash 加密和安全启动 (secure boot) 签名验证等。

Clock/Timer
ESP32-S2 外部可以有 2 个晶振提供时钟源,即外部晶振时钟源和 RTC 时钟源。
CPU 时钟有 4 种可能的时钟源:
• 外置 40 MHz 主晶振时钟
• 内置 8 MHz 振荡器时钟
• PLL 时钟
• 音频 PLL 时钟
ESP32-S2 必须有外置主晶振时钟才可运行。目前 ESP32-S2 固件仅支持 40 MHz 晶振。

Wi­Fi MAC
• 支持 IEEE 802.11 b/g/n 协议
• 4 × 虚拟 Wi-Fi 接口
• 在 2.4 GHz 频带支持 20 MHz 和 40 MHz 频宽
• 支持单频 1T1R 模式,数据速率高达 150 Mbps
• 提供的固件支持 TCP/IP 联网、ESP-MESH 联网或其他 Wi-Fi 联网协议,同时也支持 TLS 1.0, 1.1, 1.2。

IOs

– 43 × GPIO 口
– 4 × SPI
– 1 × I2S
– 2 × I2C
– 2 × UART 支持异步通信(RS232 和 RS485)和 IrDA,通信速率可达到 5 Mbps。
– 1 × IR-RMT (TX/RX)
– LED PWM 控制器,多达 8 个通道
– 4 × 脉冲计数器
– 1 × 全速 USB OTG,符合 USB 1.1 规范 芯片内部已集成全速 USB PHY。,符合 USB 2.0 规范(注意,该外设不支持 480 Mbit/s 的高速传输模式)
– 1 × DVP 8/16 camera 接口,最高时钟频率支持到 40 MHz,与 I2S 共用一套硬件资源
– 1 × LCD 接口(8 位串口 RGB/8080/6800),与 SPI2 共用一套硬件资源
– 1 × LCD 接口(8/16/24 位并口),与 I2S 共用一套硬件资源
– DMA 控制器,在外设与存储器之间以及存储器与存储器之间提供高速数据传输。
– 1 × TWAI® 控制器,兼容 ISO11898-1(CAN 规范 2.0)
– 2 × 13 位 SAR 模/数转换器,多达 20 个通道
– 2 × 8 位 DAC 数/模转换器 两个通道可以独立地工作。
– 14 × 电容式传感 GPIO
– 1 × 温度传感器 温度传感器的测量范围为–20 °C 到 110 °C。一般只适用于监测芯片内部温度的变化,一般来讲,芯片内部温度会高于工作环境温度。
– 1 × 64 位通用定时器
– 1 × 64 位系统定时器
– 3 × 看门狗定时器
– 1 × 超级看门狗定时器
– 1 × XTAL32K 看门狗定时器
– ULP-RISC-V 协处理器
– ULP-FSM 协处理器

ESP32-S3

ESP32-S3 芯片搭载 Xtensa ® 32 位 LX7 双核处理器,configurable-5 级流水线架构,主频高达 240 MHz
核心电路只需要 20 个左右的电阻电容电感、1 个无源晶振及 1 个 SPI flash。

高达 128 位的数据总线位宽及专用的 SIMD 指令提供优越的运算性能
16 位/24 位指令集提供高代码密度
单精度浮点运算单元 (FPU) 加速运算
支持 6 级 32 个中断
支持带 TRAX 压缩模块的 trace 功能,最大 16 KB 的记录存储器 (trace memory)
用于调试的 JTAG 接口

CoreMark ® 得分:
– 单核,主频 240 MHz: 613.86 CoreMark; 2.56 CoreMark/MHz
– 双核,主频 240 MHz:1181.60 CoreMark;4.92 CoreMark/MHz

Storage/Protection
• 384 KB ROM
• 512 KB SRAM
• 16 KB RTC SRAM
• 支持以 SPI、Dual SPI、Quad SPI、Octal SPI、QPI、OPI 等接口外接多个 flash 和片外 RAM
• 引入 cache 机制的 flash 控制器,cache 机制采用共享指令 cache 和共享数据 cache 结构,指令 cache 和数据 cache 均采用多存储体 (bank) 结构
• 外部 flash 和片外 RAM 可以映射到 CPU 的指令空间、只读数据空间,片外 RAM 还可以映射到 CPU 的数据空间。外部 flash 和片外 RAM 各可以最大支持 1 GB。
• 加密硬件加速器:
– AES-128/256 (FIPS PUB 197)
– Hash (FIPS PUB 180-4)
– RSA
– 随机数生成器 (RNG)
– HMAC
– 数字签名
• 支持片上及片外存储器的访问权限管理
• 支持片外存储器加解密功能,基于 XTS-AES 的硬件加解密功能,从而保护开发者 flash 和片外 RAM 中的程序和数据
• 硬件加密加速器支持 AES-128/256、Hash、RSA、HMAC、数字签名和安全启动
• 集成真随机数发生器
• 4 Kbit eFuse:其中 1792 位保留给用户使用,例如用于存储密钥和设备 ID

Clock/Timer/Interrupt
ESP32-S3 外部可以有两个时钟源:
• 外置主晶振时钟源
• RTC 时钟源
• 目前 ESP32-S3 系列芯片固件仅支持 40 MHz 晶振。
• ESP32-S3 支持外置 32.768 kHz 的无源晶振作为 RTC 睡眠时钟

ESP32-S3 中断矩阵将任一外部中断源单独分配到双核 CPU 的任一外部中断上,以便在外设中断信号产生后,及时通知 CPU0 或 CPU1 进行处理。中断矩阵支持以下特性:
• 接收 99 个外部中断源作为输入
• 生成 26 个 CPU0 的外部中断和 26 个 CPU1 的外部中断作为输出。
注意,CPU0 剩余的 6 个中断和 CPU1 剩余的 6 个中断均为内部中断
• 支持屏蔽 CPU 的 NMI 类型中断
• 支持查询外部中断源当前的中断状态

ESP32-S3 集成了两个协处理器,分别基于 RISC-V 指令集 (ULP-RISC-V) 和有限状态机 FSM 架构 (ULP-FSM)。
协处理器的时钟为内置快速 RC 振荡器时钟

处理器指令拓展 (PIE)
为了提高特定 AI 和 DSP (Digital Signal Processing) 算法的运算效率,在 ESP32-S3 中新增了一组扩展指令。处理器指令拓展 (PIE) 支持以下特性:
• 新增 128-bit 位宽通用寄存器
• 128-bit 位宽的向量数据操作,包括:乘法、加法、减法、累加、移位、比较等
• 合并数据处理指令与加载/存储运算指令
• 非对齐 128-bit 带宽的向量数据
• 取饱和操作

2.4 GHz Wi-Fi
• 支持 IEEE 802.11 b/g/n (2.4 GHz Wi-Fi)
• 在 2.4 GHz 频带支持 20 MHz 和 40 MHz 频宽
• 支持 1T1R 模式,数据速率高达 150 Mbps
• 4 × 虚拟 Wi-Fi 接口

低功耗蓝牙 SoC
• 低功耗蓝牙 Bluetooth ® 5 (LE) 和 Bluetooth mesh

IOs
– 45 × GPIO 口
– 4 × SPI
– 1 × LCD 接口(8 位 ~16 位并行 RGB, I8080, MOTO6800), 支 持 RGB565, YUV422, YUV420, YUV411 之间互相转换
– 1 × DVP 8 位 ~16 位摄像头接口
– 3 × UART
– 2 × I2C
– 2 × I2S
– 1 × IR-RMT (TX/RX)
– 1 × 脉冲计数器
– LED PWM 控制器,多达 8 个通道
– 1 × 全速 USB OTG,符合 USB 2.0 规范
– 1 × USB Serial/JTAG 控制器,作为兼容 USB 2.0 全速模式的设备。
– 2 × MCPWM
– 1 × SDIO 主机接口,具有 2 个卡槽
– 通用 DMA 控制器 (简称 GDMA), 5 个接收通道和 5 个发送通道
– 1 × TWAI ® 控制器,兼容 ISO 11898-1 (CAN规范 2.0)
– 2 × 12 位 SAR ADC,多达 20 个通道
– 1 × 温度传感器 温度传感器的测量范围为–20 °C 到 110 °C。温度传感器适用于监测芯片内部温度的变化。一般来讲,芯片内部温度会高于外部温度。
– 14 × 电容式传感 GPIO
– 4 × 54 位通用定时器
– 1 × 52 位系统定时器
– 3 × 看门狗定时器
– ULP-RISC-V 协处理器
– ULP-FSM 协处理器

ESP32-C2

型號:ESP8684(單指 QFN24-4x4)

搭载 RISC-­V 32 位单核处理器的极低功耗 SoC
支持 IEEE 802.11b/g/n (2.4 GHz Wi­Fi) 和 Bluetooth ® 5 (LE)
24 pins 在 4×4 mm 的 QFN 封装中叠封 1 MB、2 MB 或 4 MB flash

四级流水线架构,主频高达 120 MHz

• 内置 272 KB SRAM(其中 16 KB 专用于 cache)、576 KB ROM 存储空间
• 安全机制

• CoreMark ® 分数:
– 单核 120 MHz:305.42 CoreMark;2.55 CoreMark/MHz

• 在 2.4 GHz 频带支持 20 MHz 频宽
• 支持 1T1R 模式,数据速率高达 72.2 Mbps
• 3 × 虚拟 Wi-Fi 接口

• 14 × GPIO 口

ESP32-C3

型號:ESP8685(單指 QFN28-4x4)

搭载 RISC-V 32 位单核处理器的极低功耗 SoC
支持 IEEE 802.11b/g/n (2.4 GHz Wi-Fi) 和 Bluetooth ® 5 (LE),Bluetooth mesh
28 pins 在 4×4 mm 的 QFN 封装中叠封 2 MB 或 4 MB flash

四级流水线架构,主频高达 160 MHz

• 内置 400 KB SRAM(其中 16 KB 专用于 cache)、384 KB ROM 存储空间,并支持多个外部 SPI、Dual SPI、Quad SPI、QPI flash
• 8 KB RTC SRAM
• 完善的安全机制

• 在 2.4 GHz 频带支持 20 MHz 和 40 MHz 频宽
• 支持 1T1R 模式,数据速率高达 150 Mbps

• CoreMark ® 分数:
– 单核 160 MHz:407.22 CoreMark;2.55 CoreMark/MHz

QFN32
– 22 或 16 个 GPIO 口
– 全速 USB 串口/JTAG 控制器
– 1 × TWAI ® 控制器,兼容 ISO11898-1(CAN 规范 2.0)

ESP32-C6

ESP32-C6 是乐鑫首款支持 Wi-Fi 6 的 SoC,集成 2.4 GHz Wi-Fi 6、Bluetooth 5 (LE) 和 802.15.4 协议,能够为物联网产品提供行业领先的射频性能、完善的安全机制和丰富的内存资源。它搭载一个时钟频率最高 160 MHz 的高性能 RISC-V 32 位处理器,和一个时钟频率最高 20 MHz 的低功耗 RISC-V 32 位处理器,内置 512 KB SRAM,320 KB ROM,并支持外接 flash。ESP32-C6 拥有 30 个 (QFN40) 或 22 个 (QFN32) 可编程 GPIO 管脚,支持 SPI、UART、I2C、I2S、RMT、TWAI、PWM、电机控制 PWM 和 SDIO。它还集成了一个 12 位 ADC 和一个温度传感器。

目前還未上市。
Risc-V 雙核,160MHz/20MHz,supports WiFi6,BT5LE,Zigbee。

Categories: Arduino

Tags:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

PHP Code Snippets Powered By : XYZScripts.com