ESP32: Difference between revisions
(→Thread) |
(→Linux) |
||
Line 214: | Line 214: | ||
=== Linux === | === Linux === | ||
DTD Tree | DTD Tree | ||
BSP BoardSupport Package | BSP BoardSupport Package | ||
CPU Support | CPU Support | ||
Linux needs depends on Memory Mapper | Linux needs depends on Memory Mapper | ||
STM32 MCUBoot | STM32 MCUBoot | ||
NRF91 SBSU Boot | NRF91 SBSU Boot | ||
=== RTOS === | === RTOS === | ||
FreeRTOS | FreeRTOS | ||
Mynewt | Mynewt | ||
Zephyr | Zephyr | ||
Revision as of 08:34, 21 June 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 | 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
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
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