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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM