ESP32

From Braindump
Jump to navigation Jump to search

MICROCONTROLLERS

SWD / JTAG https://github.com/walmis/blackmagic-espidf

QSPI

doit esp32 dev kit v1
921600
80Mhz

Espressif

https://www.espressif.com/en/products/modules

https://www.esp32.com/viewforum.php?f=23

ESP8266 LX6 single core
ESP32 LX6 single/dual core
S2, S3 LX7
H2 RISC-V
C2, C3, C6 RISC-V

ESP8266

https://github.com/SmartArduino/SZDOITWiKi/wiki/ESP8266---ESP32

ESP32

DOIT Esp32 DevKit v1
ESP-WROOM32
Xtensa LX6

Arduino

Platform.io

921600 80Mhz

https://docs.platformio.org/en/latest/boards/espressif32/esp32doit-devkit-v1.html

RTOS

FreeRTOS

https://github.com/FreeRTOS/FreeRTOS-Kernel

ZephyrOS

Thread

https://www.espressif.com/en/news/ESP32_H2

ESP32-H2
Risc V
Thread, Zigbee, Bluetooth LE

ESP32-S3

https://openthread.io/guides/border-router/espressif-esp32

https://github.com/espressif/qemu

https://github.com/Ebiroll/qemu_esp32

ULP ESP32 Ultra Low Power Co-Processor

QSPI

QSPI


Python39\Scripts\esptool.exe read_flash --spi-connection HSPI 0 0x400000 flash_dump.bin
esptool.py v3.0
Found 1 serial ports
Serial port COM3
Connecting....
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:28:24:22:2c
Uploading stub...
Running stub...
Stub running...
Configuring SPI flash mode...
4194304 (100 %)
4194304 (100 %)
Read 4194304 bytes at 0x0 in 379.9 seconds (88.3 kbit/s)...
Hard resetting via RTS pin...


https://github.com/espressif/esp-idf/tree/master/components/spi_flash

https://my-esp-idf.readthedocs.io/en/latest/api-reference/peripherals/spi_master.html https://github.com/espressif/arduino-esp32/blob/master/tools/sdk/include/esp32/rom/spi_flash.h ESP32 chip have 4 SPI slave/master SPI0, SPI1, HSPI and VSPI. SPI0 is used as an SPI master to access Flash and ext-SRAM SPI1 is connected to the same hardware lines as SPI0 HSPI and VSPI all have three chip select lines

use 40M clock SPI Flash can use 2 lines or 4 lines mode. If you use 2 lines mode, you can save two pad SPIHD and SPIWP for gpio. Common SPI command to configure Flash to QIO mode

miso - Also known as q, this is the input of the serial stream into the ESP32 mosi - Also known as d, this is the output of the serial stream from the ESP32 sclk - Clock signal. Each data bit is clocked out or in on the positive or negative edge of this signal quadwp - Write Protect signal. Only used for 4-bit (qio/qout) transactions. quadhd - Hold signal. Only used for 4-bit (qio/qout) transactions.

In master mode SPID = MOSI = data out SPIQ = MISO = data in

https://drive.google.com/file/d/11-IH-38VJOXbFJ1ybB1i2Cvcl9n3pSTU/view

SPI.begin SPI.setBitOrder SPI.setClockDivider SPI.setDataMode SPI.transfer

spi_bus_initialize

https://github.com/espressif/esptool/wiki/SPI-Flash-Modes

https://github.com/espressif/esptool#read-spi-flash-id

Particle Xenon

https://docs.particle.io/xenon/

\.platformio\packages\framework-espidf\components\esptool_py

https://docs.platformio.org/en/latest/frameworks/zephyr.html#framework-zephyr

Micro:bit

qemu-system-arm -M microbit -device loader,file=test.hex

https://www.qemu.org/docs/master/system/arm/imx25-pdk.html

Bootrom –> SPL –> BL31 –> BL33(u-boot) –> Linux kernel


Chips

Nordic RF5 Nordic Semiconductor TI Texas Instruments Silicon Labs Microchip

ISA Intel/AMD X86-64 ARM Cortex A / M MIPS RISC-V

mips_24kc ath79

Freescale:  : Intel > NXP Broadcom Atheros  : Qualcomm Atmel  : 328P : > Microchip Texas Instruments CC26xx

HUE uses QCA9533 ver 2 rev 0, which is an ATH79 processor, which is a MIPS 24kc build by Atheros, bought by Qualcomm KEdge uses an NXP i.MX8 Nano, which is an ARM A7 processor, built by Freescale, bought by NXP

ATSAMR21E18A

https://erik-engheim.medium.com/interesting-random-facts-about-arm-x86-risc-v-and-mips-7e670b249222 https://www.mips.com/products/architectures/mips32-2/ https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html

Micro Processor / Controller (sliding scale) ARM Cortex A7

NXP i.MX8

RISC-V

TI

ARM Cortex M4 STM32

Radio 2.4Ghz Espressif ESP32, S-C-H


IOT / LINUX / Thread Notes

Arduino Espressif SDK Platform.IO

Linux

DTD Tree BSP BoardSupport Package CPU Support Yocto

Linux needs depends on Memory Mapper

STM32 MCUBoot NRF91 SBSU Boot


RTOS

FreeRTOS Mynewt Zephyr


IEEE 802

https://ieeexplore.ieee.org/browse/standards/get-program/page/series?id=68

IEEE 802(R): Overview and Architecture IEEE 802.1: Bridging and Management IEEE 802.3: Ethernet IEEE 802.11: Wireless LANs IEEE 802.15: Wireless PANs IEEE 802.16: Broadband Wireless MANs IEEE 802.19: TV White Space Coexistence Methods IEEE 802.21: Media Independent Handover Services IEEE 802.22: Wireless Regional Area Networks

802.1X 802.1AR 802.3 Ethernet 802.11 WIFI 802.15.4


IEEE 802.15.4

ISM Band, Wifi overlapping channels, Bluetooth 80x1Mhz, BLE 40x2Mhz

Bluetooth Classic Bluetooth BLE Bluetooth Mesh Zigbee ZWave (not 2.4ghz)


Zigbee

https://zigbeealliance.org/wp-content/uploads/2019/11/docs-05-3474-21-0csg-zigbee-specification.pdf

Commisioning
LightTouch