Esp32 spec

来自个人维基
跳转至: 导航搜索

2x Xtensa LX6 CPU.
两个CPU 的名称分别是“PRO_CPU”和“APP_CPU”。PRO 代表“protocol(协议)”,APP 代表“application
(应用)”。在大多数情况下,两个CPU 的功能是相同的。

start end size usage on-chip usage
0x0000_0000 0x3F3F_FFFF no use
0x3F40_0000 0x3F7F_FFFF 4M data ext Flash
0x3F80_0000 0x3FCBF_FFFF 4M data ext SRAM
0x3FC0_0000 0x3FEF_FFFF 3M no use
0x3FF0_0000 0x3FF7_FFFF 512K data I/O
0x3FF8_0000 0x3FF8_1FFF 8K data internal RTC Fast Memory (PRO_CPU only)
0x3FF8_2000 0x3FF8_FFFF 56K no use
0x3FF9_0000 0x3FF9_FFFF 64K data Internal ROM 1
0x3FFA_0000 0x3FFA_DFFF 56K no use
0x3FFA_E000 0x3FFD_FFFF 200K data Internal SRAM 2 (DMA)
0x3FFE_0000 0x3FFF_FFFF 128K data Internal SRAM 1 (DMA)
0x4000_0000 0x4005_FFFF 384K code Internal ROM 0
0x4006_0000 0x4006_FFFF 64K no use
0x4007_0000 0x400A_FFFF 192K code internal SRAM 0 (64KB cache)
0x400A_0000 0x400A_FFFF 128K code internal SRAM 1
0x400C_0000 0x400C_1FFF 8K code internal RTC fast Memory (PRO_CPU only)
0x400C_2000 0x40BF_FFFF 11512K code ext flash
0x40C0_0000 0x4FFF_FFFF 244M no use
0x5000_0000 0x5000_1FFF 8K code/data internal RTC Slow Memory
0x5000_2000 0xFFFF_FFFF no use

DMA:

UART0,1,2
SPI1,2,3
I2S0,1
SDIO slave, SDMMC
EMAC
BT
WIFI

Peripharels: 41 device

control registers 0x3FF0_0000~ 0x3FF7_FFFF, each device use 4KB space.
系统中有两个PID Controller 分别服务于PRO_CPU 和APP_CPU。
CPU 不能访问对方的PID Controller

Interrupt:

71 external sources: 71 个外部中断源中有67 个可以分配给两个CPU。其余的4 个外部中断源只能分配给特定的CPU,每个CPU 2 个。
26 interrupt source for each core.
each CPU has 32x interrupt, include 26x external interrupt.
  internal interrupt: (6/7/11/15/16/29)
     timer0/1/2, software, 

Reset:

COU reset: 只复位CPU 的所有寄存器。(CPU)
Core reset: 除了RTC,会把整个digital 的寄存器全部复位,包括CPU、所有外设和数字GPIO。 (CPU+WIFI+BT+PERI+Digital GPIO)
system rest: 会复位整个芯片所有的寄存器,包括RTC (PMG+Sensor+ULP+RTC GPIO)。

Clock sources:

• 快速时钟
 – PLL_CLK,320 MHz 内部PLL 时钟
 – XTL_CLK,2 ~ 40 MHz 外部晶振时钟
• 低功耗慢速时钟
 – XTL32K_CLK,32 KHz 外部晶振时钟
 – RTC8M_CLK,8 MHz 内部时钟,频率可调
 – RTC8M_D256_CLK 由RTC8M_CLK 256 分频所得,频率为(RTC8M_CLK 256)。当RTC8M_CLK 的初始频率为8 MHz 时,该时钟以31.250 KHz 的频率运行。
 – RTC_CLK,150 KHz 内部低功耗时钟,频率可调
• 音频时钟
 – APLL_CLK,16 ~ 128 MHz 内部Audio PLL 时钟

Esp32 clk.png

CPU_CLK 由RTC_CNTL_SOC_CLK_SEL 来选择时钟源,160MHz~8MHz
EMAC: APB_CLK