ESP32
Jump to navigation
Jump to search
= General information and links
Adafruit HUZZA32
- https://en.wikipedia.org/wiki/Adafruit_Industries
- Adafruit HUZZAH32 – ESP32 Feather Board, https://www.adafruit.com/product/3405
- based on ESP-WROOM-32 module, uses ESP32-D0WDQ6 chip, https://en.wikipedia.org/wiki/ESP32
- board available from DigiKey quantity "hundreds" ~CAD$35
- 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
- suggested use with Ardiuno BSP (not mongoose OS)
- module schematic: (shows ESP3212 module instead of ESP-WROOM-32) https://cdn-learn.adafruit.com/assets/assets/000/041/630/original/feather_schem.png?1494449413
ESP-WROOM-32 module
- ESP32 chip is a very basic microcontroller, CPU is done by same people who did MIPS CPUs.
- ESP32 is supported by "Mongoose OS", familiar with it as we already use the mongoose web server from same people.
- general page: https://www.espressif.com/en/products/hardware/modules
- product page: https://www.espressif.com/zh-hans/esp-wroom-32/resources (in Chineese)
- data sheet: https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_cn.pdf (in Chineese)
- module data sheet: https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf (English)
- chip data sheet: https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
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
- Recommended OS is FreeRTOS with LwIP
- Wifi 802.11 b/g/n (802.11n up to 150 Mbps), at 2.4 GHz
- Bluetooth v4.2 BR/EDR and BLE specification
- power 3.3 V, 80 mA typical, up to 500 mA, 1100 mA max
- pins connected to internal SPI flash: SCK/CLK, SDO/SD0, SDI/SD1, SHD/SD2, SWP/SD3 and SCS/CMD
- pins MTDI, GPIO0, GPIO2, MTDO, GPIO5 are ”GPIO_STRAPPING" set the boot mode
- pins IO12, IO13, IO14, IO15 are JTAG (this is not clear)
- pinout map: https://i0.wp.com/randomnerdtutorials.com/wp-content/uploads/2018/08/esp32-pinout-chip-ESP-WROOM-32.png?ssl=1
- pinout map and additional information: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
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 - HUZZA32 - header - baseboard - function "bottom row" ? - 21 - JP1-1 - A1 - CPU SPI CS ? - TX/17 - JP1-2 - A2 - FTHR CPU TX - N/C ? - RX/16 - JP1-3 - A3 - FTHR CPU RX - N/C ? - MISO/19 - JP1-4 - A4 - CPU MISO ? - MOSI/18 - JP1-5 - A5 - CPU MOSI ? - SCK/5 - JP1-6 - A6 - CPU SCK ? - ADC2/A5/4 - JP1-7 - A7 - CPU DRV STAT4 ? - ADC1/A4/36 - JP1-8 - A8 - CPU DRV STAT3 ? - "input only" ADC1/A3/39 - JP1-9 - A9 - CPU DRV STAT2 ? - "input only" ADC1/A2/34 - JP1-10 - A10 - CPU DRV STAT1 ? - ADC2/A1/DAC1/25 - JP1-11 - A11 - N/C ? - ADC2/A0/DAC2/26 - JP1-12 - A12 - CPU BUZZ ? - GND - JP1-13 - A13 - GND ? - NC - JP1-14 - A14 - N/C ? - "3V" - JP1-15 - A15 - "+3V_CPU2" ? - RST - JP1-16 - A16 - CPU RESET - N/C "top row" ? - BAT - JP3-1 - B1 - N/C ? - EN - JP3-2 - B2 - N/C ? - USB - JP3-3 - B3 - "+5V_USB" ? - ADC2/13/A12 - JP3-4 - B4 - CPU_LED1 ? - "internal pulldown, output only" ADC2/12/A11 - JP3-5 - B5 - CPU_LED2 ? - ADC2/27/A10 - JP3-6 - B6 - CPU DRV CH1 ? - ADC1/33/A9 - JP3-7 - B7 - CPU DRV CH2 ? - ADC2/15/A8 - JP3-8 - B8 - CPU DRV CH3 ? - ADC1/32/A7 - JP3-9 - B9 - CPU DRV VH4 ? - ADC2/14/A6 - JP3-10 - B10 - CPU DRV RSTn ? - SCL/22 - JP3-11 - B11 - CPU SCL ? - SDA/23 - JP3-12 - B12 - CPU SDA ? - ADC???/35/A13 - N/C - VBAT voltmeter (through divider)