ESP32: Difference between revisions

From Braindump
Jump to navigation Jump to search
Line 170: Line 170:


=== Chips ===
=== Chips ===
Nordic RF5 Nordic Semiconductor
Micro Processor / Controller (sliding scale)
TI Texas Instruments
 
Silicon Labs
Design chips, include IP, Fab
Microchip
 
Intel/AMD X86-64 CISC


ISA
ARM Cortex A7, M0+, M4, M7
Intel/AMD X86-64
ARM       Cortex A / M
MIPS      RISC-V


mips_24kc ath79
MIPS/RISC, 24Kc, RISC-V
 
TI Texas Instruments CC26xx
 
Nordic Semiconductor, M4 nrf52840
 
Silicon Labs, Gecko
 
ST Micro, STM32 M4
 
Espressif, Xtensa L7 ESP32 S-C-H
 
Microchip, Atmel ATMEGA 328P
 
Microchip, ATSAMR21E18A ARM Cortex®-M0+
 
Renesas, NEC
 
Freescale, NXP, Motorola? NXP i.MX8M


Freescale:      : Intel > NXP
Broadcom
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
Atheros Qualcomm: mips_24kc ath79
KEdge uses an NXP i.MX8 Nano, which is an ARM A7 processor, built by Freescale, bought by NXP
 
ATSAMR21E18A
Realtek
 
 
HUE uses QCA9533, which is an ATH79 processor based on a MIPS 24kc, designed by Atheros, bought by Qualcomm
 
NXP i.MX8 Nano is an ARM A7 processor, designed by Freescale, bought by NXP
 
 
https://erik-engheim.medium.com/interesting-random-facts-about-arm-x86-risc-v-and-mips-7e670b249222
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.mips.com/products/architectures/mips32-2/
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
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 ===
=== IOT / LINUX / Thread Notes ===
Arduino
Arduino
Espressif SDK
Espressif SDK
Platform.IO
Platform.IO
Zephyr


=== Linux ===
=== Linux ===

Revision as of 08:33, 10 August 2024

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 Cadence Xtensa LX6 single core
ESP32 Cadence Xtensa LX6 single/dual core
S2, S3 Cadence Xtensa 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

Micro Processor / Controller (sliding scale)

Design chips, include IP, Fab

Intel/AMD X86-64 CISC

ARM Cortex A7, M0+, M4, M7

MIPS/RISC, 24Kc, RISC-V

TI Texas Instruments CC26xx

Nordic Semiconductor, M4 nrf52840

Silicon Labs, Gecko

ST Micro, STM32 M4

Espressif, Xtensa L7 ESP32 S-C-H

Microchip, Atmel ATMEGA 328P

Microchip, ATSAMR21E18A ARM Cortex®-M0+

Renesas, NEC

Freescale, NXP, Motorola? NXP i.MX8M

Broadcom

Atheros Qualcomm: mips_24kc ath79

Realtek


HUE uses QCA9533, which is an ATH79 processor based on a MIPS 24kc, designed by Atheros, bought by Qualcomm

NXP i.MX8 Nano is an ARM A7 processor, designed by Freescale, bought by NXP


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

IOT / LINUX / Thread Notes

Arduino

Espressif SDK

Platform.IO

Zephyr

Linux

DTD Tree

BSP BoardSupport Package

CPU Support

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