Esp32系列资料

Esp32系列资料

esp32芯片型号

image-20220318230611609

1

2

[参考资料](esp32和stm32性能哪个好 - 云+社区 - 腾讯云 (tencent.com))


rom和flash

狭义的EEPROM:

这种rom的特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。这是最传统的一种EEPROM,掉电后数据不丢失,可以保存100年,可以擦写100w次。具有较高的可靠性,但是电路复杂/成本也高。因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的。

flash:

flash属于广义的EEPROM,因为它也是电擦除的rom。但是为了区别于一般的按字节为单位的擦写的EEPROM,我们都叫它flash。

flash做的改进就是擦除时不再以字节为单位,而是以块为单位,一次简化了电路,数据密度更高,降低了成本。上M的rom一般都是flash。

esp32模块外置了4Mflash芯片。


ch340和cp2102

  1. Ch340、cp2102都是将USB信号转TTL的芯片
  2. CP2102工业上用的比较多些。 CH340消费电子比较常用。 两者都差不多。 CH340芯片价格便宜,带USB转TTL、232串口电平,也可以实现TTL和232电平的转化,而CP2102不带232电平转化,相对而言就不如CH340好用了。
  3. 一般待cp2102芯片的单片机比CH340的单片机贵10~20元。

计算机和MCU通信的方法:

  1. 只有串口接口的台式机(很老)
    交叉串口线>>>MAX232芯片>>>MCU(单片机)
  2. 既有串口接口又有USB接口的电脑(台式机)
    (1)电脑串口接口>>>交叉串口线>>>MAX232芯片>>>MCU(单片机)
    (2)电脑USB接口>>>USB转串口线>>>MAX232芯片>>>MCU(单片机)
    (3)电脑USB接口>>>USB2.0数据线>>>PL2303或CH340>>>MCU(单片机)
  3. 只有USB接口的电脑(笔记本)
    (1)电脑USB接口>>>USB转串口线>>>MAX232芯片>>>MCU(单片机)
    (2)电脑USB接口>>>USB2.0数据线>>>PL2303或CH340>>>MCU(单片机)

计算机和MCU通信的原理:

(1)交叉串口线原理:信号线交叉,导线作用
(2)USB转串口线原理:USB接口>>>PL2303或CH340>>>MAX232>>>9针接口
(3)USB2.0数据线原理:信号线直连,导线作用

[参考资料]((132条消息) MAX232和PL2303、CH340的区别_hailongwang2412的博客-CSDN博客_pl2303和ch340的区别)


esp32的引脚参考和引脚接口功能介绍

引脚参考

ESP32外围设备

ESP32外围设备包括:[参考](ESP32引脚参考 - lnsane-G - 博客园 (cnblogs.com))

  • 18个模数转换器(ADC)通道

  • 3个SPI接口

  • 3个UART接口

  • 2个I2C接口

  • 16个脉冲宽度调制输出通道

  • 2个数模转换器(DAC)

  • 2个I2S接口

  • 10个电容传感GPIO

下表显示了哪些管脚最适合用作输入和输出,哪些管脚需要小心。绿色突出显示的管脚可以使用。黄色突出显示的可以使用,但您需要注意,因为它们可能在启动时有意外行为。不建议将红色突出显示的管脚用作输入或输出。

3

[参考网址](ESP32引脚参考 - lnsane-G - 博客园 (cnblogs.com))

接口总线的功能介绍:

ADC:(analog digital converter),AD转换,模数转换(也就是模拟转数字):

ESP32有18 x 12位ADC输入通道(而ESP8266只有1 x 10位ADC)。这些是可用作ADC和相应通道的GPIO:

ADC1_CH0 (GPIO 36)

ADC1_CH1 (GPIO 37)

ADC1_CH2 (GPIO 38)

ADC1_CH3 (GPIO 39)

ADC1_CH4 (GPIO 32)

ADC1_CH5 (GPIO 33)

ADC1_CH6 (GPIO 34)

ADC1_CH7 (GPIO 35)

ADC2_CH0 (GPIO 4)

ADC2_CH1 (GPIO 0)

ADC2_CH2 (GPIO 2)

ADC2_CH3 (GPIO 15)

ADC2_CH4 (GPIO 13)

ADC2_CH5 (GPIO 12)

ADC2_CH6 (GPIO 14)

ADC2_CH7 (GPIO 27)

ADC2_CH8 (GPIO 25)

ADC2_CH9 (GPIO 26)

注意:使用Wi-Fi时不能使用ADC2管脚。因此,如果您使用Wi-Fi,并且无法从ADC2 GPIO获取值,则可以考虑改用ADC1 GPIO,这应该可以解决您的问题。

ADC输入通道具有12位分辨率。这意味着您可以获得0到4095之间的模拟读数,其中0对应于0V,4095对应于3.3V。您还可以在代码上设置通道的分辨率以及ADC范围。

ESP32 ADC引脚没有线性行为。您可能无法区分0和0.1V,或3.2和3.3V。在使用ADC引脚时,您需要记住这一点。

数模转换器(DAC)

ESP32上有2 x 8位DAC通道,用于将数字信号转换为模拟电压信号输出。这些是DAC通道:

DAC1 (GPIO25)

DAC2 (GPIO26)

SPI接口是什么:[参考]((131条消息) SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)_douqingl的博客-CSDN博客_spi接口)

SPI ( Serial Peripheral Interface,串行外设接口)是一种同步、串行通讯接口规格,常用于短距离通讯,主要是在嵌入式系统中。

SPI接口是一种典型的全双工接口,通过同步时钟SCLK的脉冲将数据一位位地传送。所以在开始通讯前,master首先要配置接口时钟(确定其通讯频率是SLAVE可以支持的,通常为数兆赫兹)。

当MASTER片选一个SLAVE时,每向SLAVE发送一个周期的SCLK信号,都会有1bit的数据从MOSI发送至slave,与此同时,slave每收到一个周期的SCLK信号,都会从MISO向master发送1bit的数据。这种全双工通讯,是由硬件保证的(MASTER与HOST中各有一个移位寄存器作为收发数据的缓存)。

image-20220319201204057

UART接口 :[参考]((131条消息) UART接口简介_ztnhnr的博客-CSDN博客_uart接口)

UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1(3.3V或以上)。

UART即通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),它是一种串行通信的物理接口形式。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。

  • VCC:供电pin,一般是3.3v,在我们的板子上没有过电保护,这个pin一般不接更安全
  • GND:接地pin,有的时候rx接受数据有问题,就要接上这个pin,一般也可不接
  • RX:接收数据pin
  • TX:发送数据pin

UART最好的一点是它只使用两根线就可以在设备之间传输数据。在UART通信中,两个UART直接相互通信。发送UART将来自CPU等控制设备的并行数据转换为串行形式,并将其串行发送到接收UART,接收UART然后将串行数据转换回接收设备的并行数据。在两个UART之间传输数据只需要两根线。数据从发送UART的Tx引脚流向接收UART的Rx引脚:

4

uart tx rx
0 GPIO1 GPIO17
2 GPIO3 GPIO16

I2C接口 [参考]((131条消息) I2C接口简介和时序_re_call的博客-CSDN博客_iic接口时序)

I2C,Inter-Integrated Circuit,是两根线,SDA(数据)和SCL(时钟),也是一种同步传输协议。主机在发送开始信号之后,先发送7个比特的地址位和1个比特的读写位,每个从机有自己的I2C地址,当发现该条指令是发给自己的时候,拉低SDA线(即回复ACK信号),然后主机发送或接收数据,完成传输。传输完成之后,主机发送停止位,完成该次传输。

ESP32有两个I2C通道,任何管脚都可以设置为SDA或SCL。将ESP32与Arduino IDE一起使用时,默认I2C引脚为:

GPIO 21(SDA)
GPIO 22(SCL)
如果要使用其他管脚,在使用导线库时,只需调用:
Wire.begin(SDA, SCL);

脉冲宽度调制(PWM)

ESP32 LED PWM控制器有16个独立通道,可以配置为生成具有不同特性的PWM信号。所有可以作为输出的管脚都可以用作PWM管脚(GPIOs 34到39不能产生PWM)。

要设置脉冲宽度调制信号,需要在代码中定义这些参数:

  • 信号频率:单位(Hz),led的频率和电机的频率相差很大

  • 占空比:输出时一个周期内低压所占比例(esp32是12位数字模拟0~2^12)

  • 脉宽调制通道: ESP32 的 LEDC 总共有16个路通道(0 ~ 15),分为高低速两组,高速通道(0 ~ 7)由80MHz时钟驱动,低速通道(8 ~ 15)由 1MHz 时钟驱动。

  • 要输出信号的GPIO:接口

I2S接口介绍 [参考]((131条消息) I2S接口介绍_weixin_33801856的博客-CSDN博客)

I2S协议作为音频数据传输协议,由Philips制定。该协议由三条数据线组成:
1、SCLK:串行时钟,频率= 2 * 采样频率 * 采样位数。
2、WS:字段(声道)选择,用来切换左右声道数据。WS = 采样频率(fs)。
a、1(左声道)
b、0(右声道)
3、SD:串行数据(二进制补码)(MSB--->LSB:数据由最高位到最低位依次传输)

电容式触摸接口

ESP32有10个内部电容式触摸传感器。它们能感应到任何带电物质的变化,比如人类皮肤。因此,他们可以检测到当用手指触摸gpio时引起的变化。这些引脚可以很容易地集成到电容垫,并取代机械按钮。电容式触针也可以用来唤醒ESP32的深度睡眠。

这些内部触摸传感器连接到这些GPIO:

T0 (GPIO 4)

T1 (GPIO 0)

T2 (GPIO 2)

T3 (GPIO 15)

T4 (GPIO 13)

T5 (GPIO 12)

T6 (GPIO 14)

T7 (GPIO 27)

T8 (GPIO 33)

T9 (GPIO 32)

使用esp32引脚时应注意:

Strapping pins

ESP32芯片具有以下Strapping pins:

GPIO 0

GPIO 2

GPIO 4

GPIO 5(启动期间必须为高)

GPIO 12(启动期间必须低)

GPIO 15(启动期间必须为高)

这些用于将ESP32置于引导加载程序或烧录模式。在大多数内置USB/Serial的开发板上,您不需要担心这些管脚的状态。电路板使引脚处于正确的烧录或启动模式。有关ESP32引导模式选择的更多信息,请参见此处。

但是,如果你有外设连接到这些引脚,你可能会有困难,试图上传新的代码,用新固件烧录ESP32或重置板。如果您有一些外设连接到Strapping pins,并且您在上载代码或烧录ESP32时遇到问题,可能是因为这些外设阻止ESP32进入正确的模式。请阅读引导模式选择文档以指导您朝正确的方向前进。复位、烧录或启动后,这些引脚按预期工作。

Pins HIGH at Boot

一些GPIO在启动或重置时将其状态更改为高或输出PWM信号。这意味着,如果输出连接到这些gpio,则在ESP32重置或引导时可能会得到意外的结果。

GPIO 1

GPIO 3

GPIO 5

GPIO 6 to GPIO 11 (connected to the ESP32 integrated SPI flash memory – not recommended to use).

GPIO 14

GPIO 15

posted @ 2022-03-19 21:36  吃猪肉的猪  阅读(2316)  评论(0编辑  收藏  举报