ESP32

From DaqWiki
Jump to navigation Jump to search

= General information and links

Adafruit HUZZA32

    • USB power connector
    • connection for external 3.7 V battery, charged from USB
    • serial IO 3.3V RX+TX
    • 1x SPI (where is the rest?)
    • 1x I2C (where is the rest?)
    • 7 GPIO top, shared with 2 DACs and 6 ADCs
    • 7 GPIO bottom, shared with 7 ADCs and other functions
    • everything is 3.3V, *NOT* 5V safe
    • there is ADC1 and ADC2, not clear what it means, ADC voltage range not clear
    • ADC1 or ADC2 cannot be used with Wifi (this is unclear)
    • ESP32 SD card interface not connected
    • ESP32 serial IO connected to USB via USB-serial-bridge chip (the best I can tell)
    • power is USB with battery backup, one header pin provides regulated 3.3 V power to user (available current not clear, maybe 250 mA), battery voltage is on A13

ESP-WROOM-32 module

Information from the data sheets:

ESP32-D0WDQ6 chip

  • dual Xtensa® 32-bit LX6 microprocessors. The internal memory includes:
  • 448 KB of ROM for booting and core functions.
  • 520 KB of on-chip SRAM for data and instructions.
  • 8 KB of SRAM in RTC, which is called RTC FAST Memory and can be used for data storage; it is accessed by the main CPU during RTC Boot from the Deep-sleep mode.
  • 8 KB of SRAM in RTC, which is called RTC SLOW Memory and can be accessed by the co-processor during the Deep-sleep mode.
  • 1 Kbit of eFuse: 256 bits are used for the system (MAC address and chip configuration) and the remaining 768 bits are reserved for customer applications, including flash-encryption and chip-ID.
  • 8 MB or 4 MB QSPI SRAM or Flash (this is the 4 Mbyte flash on the WROOM module?)
  • 18 channels of 12-bit SAR ADC, sampling: RTC 200 ksps, DIG 2 Msps, range 0..2450 mV, 6% variation between chips, see data sheet about calibration
    • ADC1 ch0..7, ADC2 ch0..9
  • Hall sensor (just one? which ADC channel?)
  • 2 channels of 8-bit DAC (GPIO25, 26)
  • 10 touch-sensor inputs T0..T9
  • ULP processor, RTC memory
  • 10/100 ethernet MAC
  • SD/SDIO/MMC controller 80 MHz, 1, 4 and 8 bits
  • SPI/SDIO slave interface
  • 3 channels of UART (U0 full modem control, U1, U2 RTS/CTS only)
  • 2 channels I2C master or slave
  • 2 channels I2S master or slave (I2S0, I2S1)
  • 8 channels infra red receive or transmit (RMT_SIG_IN0..7 and _OUT0..7)
  • 8 channels pulse counter
  • 3 channels PWM controller
  • 3 channels of SPI (SPI, HSPI, VSPI) master or slave
  • JTAG (4 pins)
  • 16 channels LED PWM
  • 228 signals, Table 25
  • 48 pins, IO_MUX table
  • conflict between ADC2 and Wifi (and Bluetooth?)

WROOM module

Information from adafruit: https://www.adafruit.com/product/3405 and https://learn.adafruit.com/adafruit-huzzah32-esp32-feather

  - 240 MHz CPU, 520 kbytes SRAM, Wifi, Bluetooth, 4 Mbyte flash, interface for SD card.
  - 3x UART
  - 3x SPI
  - 2x I2C
  - 12 ADC inputs
  - 2 DAC
  - more goodies
  - everything is 3.3V, *NOT* 5V safe

Baseboard pinout

Rev 2020mar31

ESP32 - WROOM32 - HUZZA32 - header - baseboard - function

"bottom row"

GPIO21 - IO21 - 21      - JP1-1  - A1  - CPU SPI CS (SPI)
U0TXD  - TXD0 - TX/17   - JP1-2  - A2  - FTHR CPU TX - N/C
U0RXD  - RXD0 - RX/16   - JP1-3  - A3  - FTHR CPU RX - N/C
GPIO19 - IO19 - MISO/19 - JP1-4  - A4  - CPU MISO (SPI)
GPIO18 - IO18 - MOSI/18 - JP1-5  - A5  - CPU MOSI (SPI)
GPIO5  - IO5  - SCK/5   - JP1-6  - A6  - CPU SCK (SPI)
GPIO4  - IO4/A2_0 - ADC2/A5/4    - JP1-7  - A7  - CPU DRV STAT4
SENSOR_VP C16/270pF - IO36/SEN_VP/A1_0 - ADC1/A4/36   - JP1-8  - A8  - CPU DRV STAT3
SENSOR_VN C17/270pF - IO39/SEN_VN/A1_3 - "input only" ADC1/A3/39   - JP1-9  - A9  - CPU DRV STAT2
VDET_1 - I34/A1_6 - "input only" ADC1/A2/34   - JP1-10 - A10 - CPU DRV STAT1
GPIO25 - IO25/DAC1/A2_8 - ADC2/A1/DAC1/25 - JP1-11 - A11 - N/C
GPIO26 - IO26/DAC2/A2_9 - ADC2/A0/DAC2/26 - JP1-12 - A12 - CPU BUZZ
none - none - GND     - JP1-13 - A13 - GND
none - none - NC      - JP1-14 - A14 - N/C
none - none - "3V"    - JP1-15 - A15 - "+3V_CPU2"
none - none -  RST    - JP1-16 - A16 - CPU RESET - N/C

"top row"

none - none - BAT    - JP3-1  - B1  - N/C
none - none - EN     - JP3-2  - B2  - N/C
none - none - USB    - JP3-3  - B3  - "+5V_USB"
MTCK - IO13/A2_4 - "red LED" ADC2/13/A12 - JP3-4  - B4  - CPU_LED1
MTDI - IO12/A2_5 - "internal pulldown, output only" ADC2/12/A11 - JP3-5  - B5  - CPU_LED2
GPIO27 - IO27/A2_7 - ADC2/27/A10 - JP3-6  - B6  - CPU DRV CH1
32K_XN - IO33/A1_5/X32N - ADC1/33/A9  - JP3-7  - B7  - CPU DRV CH2
MTDO   - IO15/A2_3 - ADC2/15/A8  - JP3-8  - B8  - CPU DRV CH3
32K_XP - IO32/A1_4/X32P - ADC1/32/A7  - JP3-9  - B9  - CPU DRV VH4
MTMS   - IO14/A2_6 - ADC2/14/A6  - JP3-10 - B10 - CPU DRV RSTn (output board reset)
GPIO22 - IO22 - SCL/22 - JP3-11 - B11 - CPU SCL (I2C)
GPIO23 - IO23 - SDA/23 - JP3-12 - B12 - CPU SDA (I2C)

not on header, internally connected on HUZZA32:

VDET_2 - I35/A1_7 - ADC1/35/A13 - N/C - VBAT voltmeter (through divider)

not clear what function:

GPIO0   - IO0/A2_1 - GPIO0 - serial RTS 
GPIO2   - IO2/A2_2 - GPIO2 - serial DTR (looks like mistake on schematic)
GPIO16  - IO16 - IO16 - not connected?
GPIO17  - IO17 - IO17 - not connected?
CHIP_PU - EN - RESET - push button

WROOM32 flash memory connection ("U3"):

SD_DATA_2 - SD2 - n/c
SD_DATA_3 - SD3 - n/c
SD_CMD - CMD - n/c
SD_CLK - CLK - n/c
SD_DATA_0 - SD0 - n/c
SD_DATA_1 - SD1 - n/c