ESP32-Hardware-Introduction

ESP32 is an amazing chip. in this blog post, I have tried to summarize some important hardware facts that we should keep in mind while designing an embedded product around it. For example, tips to reuse the strapping pins after boot. Hope it helps! 😀

Board info

The board that I am using is called the ESP32-DevKitC V4 board

ESP32-DevkitC v4 board

ESP32-WROOM-32 module

ESP32-D0WDQ6 chip

  • The ESP32-DevKitC V4 board has the ESP32-WROOM-32 module & CP2102 USB-UART chip.
  • The ESP32-WROOM-32 module has an ESP32-D0WDQ6 chip & an SPI flash

Schematic

Board Information

  • There are 2 CPU cores and can be individually controlled
  • The sleep current of the ESP32 chip is less than 5uA
  • Data rate up to 150Mbps & 20dBm output power
  • The operating current of the module is 80mA
  • The module has a 40MHz integrated crystal
  • The module has 4 MB integrated SPI flash
  • Operating temperature -40 to 85
  • 3.3V is the recommended operating voltage
  • 0.5A is the operating current
  • The ESP32-D0WDQ6 chip contains 2 low power xtensa 32-bit microprocessors
  • The board has MIFA - Meandered Inverted-F Antenna

Strapping PINs

ESP32 has 5 strapping PINs

  • MTDI
  • GPIO0
  • GPIO2
  • MTD0
  • GPIO5

Important Notes about Strapping Pins

  1. After getting reset esp32 itself internally samples the voltage levels of these pins as strapping bits of “0” or “1”. Afterwards These read values known as strapping bits decide the device’s boot mode, the operating voltage & other initial system settings
  2. The chip holds these strapping bits in the GPIO_STRAPPING register until the chip is powered down.
  3. You can connect an external circuit to these strapping pins and set different settings which the chip will follow at boot
  4. Each strapping pin also has default internal pull-up/ pull-down circuitry So if there is no external circuitry to set the strapping value then the internal pull-up/pull-down circuitry will determine the strapping value, which the chip will follow at boot
  5. After the Reset release, the strapping pins work as normal -function pins

The memory of the chip

  • 448 KB ROM > for booting and core functions
  • 520 KB on-chip SRAM > for Data & instructions
  • 8 KB SRAM RTC(fast)
  • 8 KB SRAM RTC(slow)
  • 1 Kbit eFuse
  • The ESP32 supports multiple external QSPI flash & SRAM
  • The ESP32-WROOM-32 integrates a 4MB SPI flash

Debug Port

  • On the board, The esp32 chip’s UART0 peripheral is connected to the CP2102 USB-UART chip
  • This peripheral is used as the default debug print by the bootloader and the printf() function used in the examples code
CP2102 usb-uart chip in the board



ESP-WROOM-32 module in the board

Some Hardware guidelines

  • GPIO6 to GPIO11 are connected to the integrated SPI flash so these pins can not be used as GPIO
  • To ensure the power supply to the ESP32 chip during power-up, it is advised to add an RC delay circuit at the EN pin
  • A discharge circuit can be applied in scenarios where ESP32 is powered on and off repeatedly by switching the power rails, and there is a large capacitor on the VDD33 rail.
  • ESP32 includes a balun which is A type of electrical transformer used to connect an unbalanced circuit to a balanced one
  • Do not leave CHIP_PU floating
  • If the supply voltage to the chip somehow becomes lower than 2.3V then the user should make CHIP_PU pin low so that the chip gets powered off

Reference:

0 comments:

Post a Comment

Categories

Pages

Firmware Engineer

My photo
Works on Firmware, Embedded Linux, Smart Metering, RTOS, IoT backend

Contact Form

Name

Email *

Message *

Copyrighted by Hassin. Powered by Blogger.