ESP32: Difference between revisions

From Braindump
Jump to navigation Jump to search
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
MICROCONTROLLERS
SWD / JTAG
https://github.com/walmis/blackmagic-espidf
[[QSPI]]
[[QSPI]]


Line 17: Line 22:
|-
|-
|ESP8266
|ESP8266
|LX6 single core
|Cadence Xtensa LX6 single core
|
|
|
|
|-
|-
|ESP32
|ESP32
|LX6 single/dual core
|Cadence Xtensa LX6 single/dual core
|
|
|
|
|-
|-
|S2, S3
|S2, S3
|LX7
|Cadence Xtensa LX7
|
|
|
|
Line 59: Line 64:


https://docs.platformio.org/en/latest/boards/espressif32/esp32doit-devkit-v1.html
https://docs.platformio.org/en/latest/boards/espressif32/esp32doit-devkit-v1.html
=== LINKS ===
[http://benlo.com/esp8266/esp8266QuickStart.html quick start guide]
[http://tech.scargill.net/ Scargill's Tech Blog]
https://nurdspace.nl/ESP8266
http://www.esp8266.com
https://www.esp8266.com/wiki/doku.php
https://github.com/esp8266/esp8266-wiki/wiki/Pin-definition
https://randomnerdtutorials.com/projects-esp32/


=== RTOS ===
=== RTOS ===
Line 162: Line 186:


Bootrom –> SPL –> BL31 –> BL33(u-boot) –> Linux kernel
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 RTL8196E, Lexra RLX4181 MIPS-I
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

Latest revision as of 08:49, 1 September 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

LINKS

quick start guide

Scargill's Tech Blog

https://nurdspace.nl/ESP8266

http://www.esp8266.com

https://www.esp8266.com/wiki/doku.php

https://github.com/esp8266/esp8266-wiki/wiki/Pin-definition


https://randomnerdtutorials.com/projects-esp32/


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 RTL8196E, Lexra RLX4181 MIPS-I


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