ESP32: Difference between revisions
(→Thread) |
(→ESP32) |
||
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
MICROCONTROLLERS | |||
SWD / JTAG | |||
https://github.com/walmis/blackmagic-espidf | |||
[[QSPI]] | [[QSPI]] | ||
Line 6: | Line 11: | ||
=== Espressif === | === Espressif === | ||
https://www.espressif.com/en/products/modules | |||
https://www.esp32.com/viewforum.php?f=23 | https://www.esp32.com/viewforum.php?f=23 | ||
{| class="wikitable" | |||
|+ | |||
! | |||
! | |||
! | |||
! | |||
|- | |||
|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 === | === ESP8266 === | ||
Line 25: | 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 32: | Line 90: | ||
https://github.com/FreeRTOS/FreeRTOS-Kernel | https://github.com/FreeRTOS/FreeRTOS-Kernel | ||
ZephyrOS | === ZephyrOS === | ||
=== Thread === | === Thread === | ||
Line 46: | Line 104: | ||
https://github.com/Ebiroll/qemu_esp32 | https://github.com/Ebiroll/qemu_esp32 | ||
ULP ESP32 Ultra Low Power Co-Processor | |||
=== QSPI === | === QSPI === | ||
Line 119: | Line 179: | ||
https://docs.platformio.org/en/latest/frameworks/zephyr.html#framework-zephyr | https://docs.platformio.org/en/latest/frameworks/zephyr.html#framework-zephyr | ||
=== Micro:bit === | |||
qemu-system-arm -M microbit -device loader,file=test.hex | |||
<nowiki>https://www.qemu.org/docs/master/system/arm/imx25-pdk.html</nowiki> | |||
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
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
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
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