关于 ESP32 基本知识介绍

ESP32是一款流行的支持WiFi和蓝牙的系统芯片(SoC)使用Espressif系统。

众多的ESP32板子

有许多学习板评估板含有ESP32芯片。MicroPython试图提供一组通用端口,它可以尽可能多的在些板子/模块上运行,但是可能存在一些限制。将Espressif公司开发的开发板作为示例板,学习后用户使用其他变种板子时能做到融汇贯通,举一反三的使用。总而言之吧,凡是使用以ESP32模块(或芯片)为核心的电路板上都可以使用microPython对其编程。

为了实现通用接口我们有如下协定:

*GPIO引脚编号是基于ESP32芯片编号。你拿到的板子上边的pin名称就是你使用MicroPython操作该引脚的目标名称。

  • MicroPython可以控制所有的引脚,但不是所有的引脚你都能使用,这是因为有的引脚可能已经使用了,不能再次使用,例如有SPI flash,你就不能再使用相关联的引脚了。不同的模块可能引出的引脚数量不同,在硬件适配的时候一定注意。

系能参数和SoC数据表

ESP32芯片的数据表和其他参考资料可从供应商网站获得: https://www.espressif.com/en/support/download/documents?keys=esp32 . 它们是芯片技术规格、性能、运行方式、内部功能的主要参考.

为了方便,下面提供了一些技术规格:

  • 内核: Xtensa Dual-Core 32-bit LX6
  • CPU 频率: up to 240MHz
  • 可用 RAM : 528KB (一部分预留给系统使用)
  • BootROM: 448KB
  • 内置 FlashROM: none
  • 外置 FlashROM: 代码数据, SPI Flash; 通常为 4MB
  • GPIO: 34 (GPIOs与其他函数进行多路复用,包括外接flash、UART等)
  • UART: 3 RX/TX UART (没有硬件握手,单纯rx tx), 1个只发TX UART
  • SPI: 4 SPI 接口 (1个被SPI FlashROM使用了)
  • I2C: 2 I2C (任何引脚上都能使用)
  • I2S: 2
  • ADC: 12-bit SAR ADC 可以用在18个引脚上
  • DAC: 2 8-bit DACs
  • 编程: 通过UART使用引导下载到使用 BootROM 也可以是外部flash中 ,不论如何都是引导到 BootROM bootloader永远可用,不至于ESP32变砖.

有关更多信息,请参见ESP32数据表: https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf

MicroPython是在ESP-IDF (Espressif的ESP32开发框架)之上实现的。这是一个基于FreeRTOS的系统. 参考 ESP-IDF 编程手册