ESP32的接口不能随便用,如何快速从Arduino过渡到ESP32的新手指南-进阶篇

描述

进阶篇

接续如何快速从Arduino过渡到ESP32的新手指南-基础篇,继续了解ESP32的各种引脚接口吧!

ESP32

内容介绍

1. SPI引脚

2. I2C引脚

3. UART引脚

4. RTC引脚

5. Strapping引脚

6. EN引脚

SPI引脚

引脚名称 对应脚位
VSPI_MOSI 23
VSPI_MISO 19
VSPI_CLK 18
VSPI_CS 5
HSPI_MOSI 13
HSPI_MISO 12
HSPI_CLK 14
HSPI_CS 15
CS 2

ESP32

SPI是什么

SPI(串行外设接口)是一种用于设备之间连接的技术。通过SPI,ESP32可以与其他同样使用SPI连接的传感器相互传输数据。

SPI的传输采用同步的时间线,也称为共享时钟信号,这有助于确保传输的数据准确一致。

SPI主要应用于需要短距离、高速串行通信的场景,例如需要快速同步数据的显示屏、SD卡读取器、加速度传感器等。

可以将SPI想象成一种精密的对话方式,其中主设备(ESP32)和 从设备(传感器、显示屏等)在共同的时钟引导下,按照特定的规则交流信息。

在SPI通信中,通常有四个信号线:

1. MOSI(Master Out Slave In):主设备向从设备发送数据的线路。

2. MISO(Master In Slave Out):从设备向主设备发送数据的线路。

3. SCLK(Serial Clock):时钟信号,用于同步主设备和从设备之间的数据传输。

4. SS/CS(Slave Select/Chip Select):选择从设备的线路,用于告诉从设备何时准备好接收或发送数据。

   SPI使用注意

避免冲突

当我们涉及到使用引脚时,尤其是在处理不是SPI接口的设备时,建议尽量避免直接使用SPI接口。这主要是因为在引入库的过程中,通常会默认使用SPI接口的一些关键引脚,比如SCLK、MOSI、MISO,这些引脚通常会被预设为SPI功能,可能导致冲突。

可自定义SPI引脚

在ESP32中,你可以通过代码调整SPI接口的配置,包括更改SCLK、MOSI、MISO等引脚。这为你提供了更大的灵活性,以适应不同的硬件连接需求。

可共用引脚

如果你需要同时连接多个SPI接口的设备,可以共用SCLK、MOSI、MISO这些引脚,然后通过单独的CS引脚来区分不同的设备。

VSPI和HSPI的选择

在ESP32中,VSPI和HSPI是两个可用的SPI接口,它们的功能是相同的。一些库可能默认使用其中一个,多数是VSPI。

I2C引脚

  ESP32

I2C是什么

I2C(Inter-Integrated Circuit)与SPI类似,也用于跟各种设备进行沟通。

设备彼此沟通的规则,我们通常会称呼为串行通信协议

I2C使用注意

I2C引脚

I2C只需要两个引脚,不管连接几个I2C设备都是使用SDASCL。这使得它在连接多个设备时非常方便,因为它占用的引脚相对较少。

I2C 与 SPI 的 SDA 不一样

• SPI的SDA:在SPI通信中,SDA通常指的是MOSI(Master Out Slave In),全称是"Master Out Slave In",表示主设备输出数据给从设备。

• I2C的SDA:在I2C通信中,SDA表示Serial Data Line,全称是"Serial Data Line",表示是用于双向传输数据的串行数据线。

I2C 与 SPI 的 SCL 不一样

• SPI的SCL:在SPI通信中,时钟线通常称为SCLK(Serial Clock),全称是"Serial Clock"。SCLK用于同步数据的传输,主设备通过SCLK向从设备发送时钟脉冲,以确保数据的有效传输。

• I2C的SCL:在I2C通信中,SCL表示Serial Clock Line,全称是"Serial Clock Line"。I2C总线上的SCL同样用于同步数据传输,主设备通过SCL向从设备发送时钟信号。

如果一个设备使用I2C协议进行通信,那么它的SCL和SDA线就应该连接到I2C总线上。同样,如果一个设备使用SPI协议进行通信,那么它的SCLK、MISO、MOSI等线就应该连接到SPI总线上。这两者的线不能直接互连,否则通信将无法正常进行

UART引脚

ESP32

UART是什么

UART代表通用异步收发器(Universal Asynchronous Receiver/Transmitter)。与SPI、I2C一样,是一种串行通信协议。

然而,与它们不同的是,UART没有共享的时钟信号。在UART通信中,发送和接收设备之间通过起始位、数据位、校验位和停止位来协调数据的传输。

可以理解为,

• UART:通过相对的时间来同步信息

• SPI、I2C:通过绝对的时钟信号来确保通信的同步。

在UART中,设备之间通过约定好的位序列来解释和同步数据。这种异步的方式使得UART更加灵活,适用于一些不需要严格时钟同步的场景。

UART使用注意

简单来说,只用UART2,UART0不能用

UART0

与USB连接,通常用于烧录(flashing)和调试。

UART2

UART2可以连接到外部设备,如GPS、指纹传感器、距离传感器等,而不会影响烧录和调试功能。

RTC引脚

ESP32

RTC是什么

当我们使用 RTC(Real-Time Clock,实时时钟)时,它实际上是一个独立的时钟系统。无论主电源是否关闭,RTC 都能够持续供电,确保设备能够在断电状态下仍然维持准确的时间。

在ESP32,我们通过RTC来唤醒待机状态的设备来达到省电的功能。

在ESP32等设备上,利用RTC来唤醒待机状态是一种常见的省电策略。待机状态(或深度睡眠)是一种极低功耗的模式,其中主处理器被关闭,但RTC仍在运行,以确保设备能够在预定的时间唤醒。这对于周期性地执行任务、定时采集数据或在特定事件发生时唤醒设备都是非常有用的。

一些常见的应用场景包括:

• 定时唤醒:在预定的时间唤醒设备以执行特定的任务,例如数据采集、通信等。

• 事件触发唤醒:当某些特定事件发生时,通过RTC唤醒设备,以便立即响应该事件。

• 电池供电设备的省电模式:在电池供电的设备中,RTC的使用可以帮助最小化功耗,延长电池寿命。

Strapping 引脚

ESP32

在ESP32中,存在两种重要的模式,分别是BOOT模式FLASH模式BOOT模式用于运行ESP32上的程序,而FLASH模式用于上传程序到ESP32。Strapping pins(引脚配置开关)用于配置ESP32的工作模式。通常情况下,带有内置USB/Serial的开发板会自动将这些引脚配置到正确的状态,以支持烧录或启动。然而,如果其他设备使用这些引脚,可能会导致ESP32进入错误的模式。

具体而言,Strapping pins是一组用于配置启动模式的引脚。在带有内置USB/Serial的开发板上,系统会根据需要自动配置这些引脚。但是,当其他设备使用相同的引脚时,可能会影响ESP32的启动模式,因此在设计硬件连接时需要特别注意。

EN引脚

ESP32

对于ESP32,EN(Enable)引脚是用于控制芯片的启用和禁用的关键引脚。以下是关于EN引脚的一些基本信息:

• 默认状态:EN引脚默认是拉高的(pulled high),表示芯片处于启用状态。当EN引脚被拉高时,ESP32可以正常运行。

• 拉低禁用:当EN引脚被拉低时,芯片被禁用,即停止工作。拉低EN引脚通常会导致芯片断电或进入低功耗模式,具体取决于系统的设计。

• 复位功能:EN引脚还连接到一个按钮开关,通过按下按钮将EN引脚拉低,可以触发芯片的复位(reset)操作。这个按钮提供了一种手动重置芯片的方式。

拉高:给引脚高电位,拉低:给引脚低电位

总体而言,EN引脚提供了对ESP32芯片的启用和禁用控制,同时允许通过按钮触发复位。这是在开发和测试过程中非常有用的功能,因为它允许用户手动重置芯片,或者在需要时禁用芯片以减小功耗。

错误更正说明

ESP32 WROOM-32上传选择

当使用Arduino IDE上传程序到ESP32开发板时,对于常见的ESP32开发板,例如ESP32 WROOM-32,你可以在Arduino IDE中选择"ESP32 Dev Module"进行上传。这个开发板型通常是Arduino IDE默认支持的。

在先前的文章中使用的"ESP32 WROOM DA"选项是针对另一种ESP32模块的开发板。

ESP32虽然使用"ESP32 WROOM-32"开发板也能成功选择"ESP32 WROOM DA"上传,这可能是因为在Arduino IDE的"esp32"支持包中,"ESP32 WROOM-32"也有相应的支持。

因此,最终建议在使用ESP32 WROOM-32开发板时,选择"ESP32 Dev Module",以确保在Arduino IDE中有更全面的支持和兼容性。这样能够更方便地进行开发和调试,确保代码能够正确地烧录到ESP32开发板上。

ESP32

后续我会继续分享零基础入门ESP32的教学文章, 

也欢迎关注我的视频号与B站:伊娃老师来了。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分