ESP32 Pinout - Làm thế nào để sử dụng chân GPIO?

ESP32 Pinout - Làm thế nào để sử dụng chân GPIO?

Giới thiệu chip ESP32

  • ESP32-WROOM-32 · là một con chip rất phổ biến được sử dụng cho các ứng dụng internet vạn vật. Phần chính của mô-đun này là chip ESP32-D0WDQ6.

  • Nó có 48 chân nhưng tất cả các chân không có sẵn để sử dụng trong devkit. Bạn sẽ thấy thêm thông tin về nó trong phần sau của hướng dẫn này.

  • Nó bao gồm một chip trên chipMô-đun WiFi, Mô-đun Bluetooth năng lượng thấpvà mô-đun Bluetooth. Vì vậy, nếu bạn đang làm việc trên một dự án hệ thống nhúng, nơi bạn cần tất cả các mô-đun này, bạn có thể chỉ cần sử dụng bảng này thay vì sử dụng tất cả các thành phần có sẵn từng thành phần một. Do các tính năng này, nó có thể được sử dụng cho nhiều ứng dụng hệ thống nhúng.

  • Nó là một bảng chi phí rất thấp và có thể được mua với giá khoảng 10-15 đô la.

  • Bao gồm hai lõi và mỗi lõi có thể được điều khiển riêng biệt.

  • Nó có thể hoạt động ở dải tần số thay đổi từ 80 MHz đến 240 MHz.

  • Nó có một bộ đồng xử lý năng lượng cực thấp đặc biệt. Người dùng có thể tắt nguồn bộ xử lý và có thể sử dụng bộ đồng xử lý công suất thấp để theo dõi các thiết bị ngoại vi ở mức công suất thấp như chân GPIO.

  • Sơ đồ dưới đây cho thấy sơ đồ hoàn chỉnh của chip D0WDQ6.

Các tính năng chính của ESP32

Sau đây là các tính năng chính của ESP32 :

  • Nó có tích hợp 18 ADC chuyển đổi tương tự sang kỹ thuật số. Mỗi ADC dựa trên công nghệ SAR 12 bit.

  • 2 kỹ thuật số sang tương tự chuyển đổi DAC.

  • Nó tích hợp9 cảm biến cảm ứng.

  • Đối với giao tiếp, nó có 2 Kênh liên lạc UART, 2 Giao diện truyền thông I2C, hai kênh I2S và giao diện truyền thông one CAN

  • Nó cũng có một mô-đun tăng tốc phần cứng mật mã cho các thuật toán mật mã khác nhau như RSA, AES.

Sơ đồ chân ESP32

Ánh xạ sơ đồ chân ESP32

Hình ảnh dưới đây giải thích tất cả các chân của bảng này. Như tôi đã đề cập trước đó chip được sử dụng với bo mạch có 48 chân GPIO. Nhưng chúng tôi không thể sử dụng tất cả các chân thông qua các bảng phát triển này.

Chân GPIO của ESP32 DEVKIT

Ánh xạ chân ESP32 DEVKIT

Chi tiết cấu hình pin ESP32

Như đã đề cập trước đó, con chip được sử dụng với bo mạch này có 48 chân GPIO, nhưng tất cả các chân đều không thể truy cập được thông qua các bảng phát triển. ESP32 devkit có 36 chân và 18 chân ở mỗi bên của bảng như trong hình trên. Nó có 34 chân GPIO và mỗi chân có nhiều chức năng có thể được định cấu hình bằng các thanh ghi cụ thể. Có nhiều loại GPIO có sẵn như đầu vào kỹ thuật số, đầu ra kỹ thuật số, đầu vào tương tự và đầu ra tương tự, cảm ứng điện dung, giao tiếp UART và nhiều tính năng khác được đề cập ở trên.

Chân GPIO đầu vào kỹ thuật số

Nó có sáu chân GPIO chỉ có thể được sử dụng làm chân đầu vào kỹ thuật số. Chúng không thể được định cấu hình làm chân đầu ra kỹ thuật số. Do đó, Chúng không có điện trở kéo đẩy được kết nối bên trong. Chúng chỉ có thể được sử dụng làm chân đầu vào kỹ thuật số.

  • GPIO34 ·

  • GPIO35 ·

  • GPIO36 ·

  • GPIO37 ·

  • GPIO38 ·

  • GPIO39 ·

Lưu ý: Dòng điện hoạt động tối đa mà chân GPIO có thể chìm và nguồn là 40mA theo bảng dữ liệu của chip ESP32. Nhưng nên giữ nó dưới 20mA.

Tất cả các chân GPIO khi khởi động hoặc đặt lại ban đầu vẫn ở trạng thái thấp hoạt động ngoại trừ các chân sau. Các chân sau sẽ ở trạng thái hoạt động-cao theo mặc định trong quá trình khởi động hoặc đặt lại. Do đó, bạn nên khởi tạo các chân này về trạng thái hoạt động-thấp trong mã trong chức năng thiết lập mã.

  • GPIO1 ·

  • GPIO3 ·

  • GPIO5 ·

  • GPIO6 đến GPIO11

  • GPIO14 ·

  • GPIO15 ·

Ngắt chân

Tất cả các chân GPIO được đề cập ở trên có thể được định cấu hình ở chế độ ngắt.

Đóng đai các chân GPIO

Một số chân GPIO được sử dụng để định cấu hình bộ nạp khởi động hoặc chế độ nhấp nháy của ESP32 trong quá trình nhấp nháy ứng dụng hoặc khởi động.

  • GPIO0 ·

  • GPIO2 ·

  • GPIO4 ·

  • GPIO5 (phải CAO trong khi khởi động)

  • GPIO12 (phải ở mức THẤP trong khi khởi động)

  • GPIO15 (phải CAO trong khi khởi động)

Nhưng nếu bạn đang sử dụng Arduino IDE để lập trình bảng ESP32, bạn không cần phải đặt hoặc đặt lại trạng thái của các chân này. Bởi vì Arduino IDE đặt các chân này ở trạng thái cần thiết để flash mã. Nếu bạn muốn biết thêm về chế độ chọn khởi động ESP32, bạn có thể kiểm tra liên kết này.

Bộ chuyển đổi tương tự sang kỹ thuật số hoặc chân GPIO tương tự

Bảng phát triển này hỗ trợ 18 kênh ADC. Và mỗi kênh là của 12 bit. Vì vậy, nó có một độ phân giải tốt. Nó có thể được sử dụng để đo điện áp tương tự, dòng điện và bất kỳ cảm biến tương tự nào cung cấp đầu ra dưới dạng điện áp tương tự. Các ADC này cũng có thể được sử dụng ở chế độ ngủ để tiêu thụ điện năng thấp hơn. Mỗi kênh ADC có độ phân giải 12 bit bằng

3,3 / 4095 trong đó 3,3 volt là điện áp tham chiếu và 4095 là bước tối thiểu của ADC

Vì vậy, điện áp tối thiểu, chúng ta có thể đo bằng các kênh ADC này là khoảng 80 microvolt. Bất cứ điều gì ít hơn điều này sẽ là một lỗi. Tôi sẽ nói nhiều hơn về nó trong các hướng dẫn sắp tới. Hạn chế lớn nhất của ESP32 ADC là nó có hành vi phi tuyến. Bạn có thể kiểm tra sơ đồ dưới đây:

ESP32 adc đường cong phi tuyến tính

Ánh xạ các chân Analog bằng chân GPIO được hiển thị bên dưới:

  • ADC1_CH0 - GPIO36

  • ADC1_CH1 - GPIO37

  • ADC1_CH2 - GPIO38

  • ADC1_CH3 - GPIO39

  • ADC1_CH4 - GPIO32

  • ADC1_CH5-  GPIO33

  • ADC1_CH6 - GPIO34

  • ADC1_CH7 - GPIO35

  • ADC2_CH0 - GPIO4

  • ADC2_CH1 - GPIO0

  • ADC2_CH2 - GPIO2

  • ADC2_CH3 - GPIO15

  • ADC2_CH4 - GPIO13

  • ADC2_CH5 - GPIO12

  • ADC2_CH6 - GPIO14

  • ADC2_CH7 - GPIO27

  • ADC2_CH8 - GPIO25

  • ADC2_CH9 - GPIO26

Chân chuyển đổi kỹ thuật số sang Analog

Bảng phát triển này có hai tích hợp trên bo mạch Bộ xử lý DAC 8 bit. DAC được sử dụng để chuyển đổi tín hiệu kỹ thuật số thành tín hiệu tương tự. DAC có nhiều ứng dụng như điều khiển điện áp và điều khiển PWM.

  • DAC_1 - GPIO25

  • DAC_2 - GPIO26

Chân ESP32 UART

Theo bảng dữ liệu, ESP32 cung cấp ba cổng máy thu và máy phát không đồng bộ phổ quát (UART) như U0, U1 và U2. Theo mặc định, chỉ có thể sử dụng UART0 và UART2. Để sử dụng UART1, chúng ta phải xác định lại các chân. Bởi vì các chân mặc định của UART1 như GPIO9 và GPIO10 được kết nối bên trong với bộ nhớ flash SPI. Ngoài ra, trên một số bảng ESP32, chúng thậm chí còn bị lộ trên các tiêu đề sơ đồ chân. Do đó, chúng tôi không thể sử dụng UART2 trực tiếp mà không gán lại các chân trong Arduino IDE.

Cổng UART

Rx

Tx

Có thể sử dụng

UART0 ·

GPIO3 ·

GPIO1 ·

UART1 ·

GPIO9 ·

GPIO10 ·

Có nhưng yêu cầu gán lại ghim

UART2 ·

GPIO16 ·

GPIO17 ·

Chân cảm biến cảm ứng của Devkit

ESP-WROOM-32 cung cấp trên máy bay 10 cảm biến cảm ứng điện dung. Vì vậy, bạn không cần phải sử dụng các cảm biến cảm ứng riêng biệt trong dự án của mình khi bạn đang sử dụng bảng phát triển này. Các cảm biến cảm ứng điện dung này có thể được sử dụng để phát hiện bất kỳ sóng điện và từ nào xung quanh như phát hiện từ trường. Bạn có thể sử dụng một mảng nhỏ miếng đệm thay vì nhấn nút với các cảm biến cảm ứng này.

  • TOUCH0 – GPIO4

  • TOUCH1 – GPIO0

  • TOUCH2 – GPIO2

  • TOUCH3 – GPIO15

  • TOUCH4 – GPIO13

  • TOUCH5 – GPIO12

  • TOUCH6 – GPIO14

  • TOUCH7 – GPIO27

  • TOUCH8 – GPIO33

  • TOUCH9 – GPIO32

Chân giao diện thẻ nhớ

Nó cũng hỗ trợ giao tiếp thẻ nhớ thông qua các chân này.

  • HS2_CLK - MTMS

  • HS2_CMD - MTDO

  • HS2_DATA0 – GPIO2

  • HS2_DATA1 – GPIO4

  • HS2_DATA2 - MTDI

  • HS2_DATA3 - MTCK

Chân ngắt bên ngoài

Tất cả các chân đầu ra đầu vào đa năng có thể được sử dụng làm ngắt bên ngoài. Ngắt bên ngoài rất hữu ích. Khi bạn muốn theo dõi sự thay đổi trên bất kỳ chân nào, bạn có thể sử dụng chân này làm ngắt thay vì liên tục theo dõi trạng thái của chân này.

Chân GPIO PWM

Tất cả các chân đầu ra đầu vào có mục đích chung có thể được sử dụng để tạo PWM ngoại trừ các chân đầu vào kỹ thuật số từ Chân GPIO 34-39. Bởi vì các chân này không thể được sử dụng làm chân đầu ra kỹ thuật số. Tín hiệu PWM là tín hiệu đầu ra kỹ thuật số. Tần số tối đa của các chân PWM này là 80 MHz. bạn có thể định cấu hình bất kỳ chân nào khác làm chân PWM bằng cách làm theo các bước sau:

  • Chọn tần số để điều chế độ rộng xung.

  • Đặt chu kỳ nhiệm vụ hoặc độ rộng xung.

  • Chọn kênh PWM. ESP32 cung cấp 16 kênh PWM.

  • Gán mã pin kỹ thuật số để chọn kênh PWM.

Tính năng điều khiển động cơ PWM

Nó cũng hỗ trợ các tính năng điều khiển động cơ thông qua các thanh ghi bên trong của chip ESP32. ESP32 hỗ trợ hai thiết bị MCPWM. Các đơn vị MCPWM này có thể được sử dụng để điều khiển động cơ trực tiếp. Mỗi MCPWM có ba cặp đầu ra được đề cập bên dưới. bạn chỉ cần định cấu hình các thanh ghi này bằng bất kỳ chân GPIO nào. Bạn có thể tìm thêm thông tin về các thanh ghi này trong biểu dữ liệu. Tên sổ đăng ký được đưa ra dưới đây:

  • PWM1_OUT_IN0~2

  • PWM0_FLT_IN0~2

  • PWM1_FLT_IN0~2

  • PWM0_CAP_IN0~2

  • PWM1_CAP_IN0~2

  • PWM0_SYNC_IN0~2

  • PWM1_SYNC_IN0~2

Bạn có thể đính kèm các tín hiệu PWM vào các chân GPIO để nhận đầu ra.

Chân giao tiếp I2C

Nó có các chân chuyên dụng có sẵn cho giao tiếp I2C hai dây. Một chân được sử dụng để truyền dữ liệu và một chân khác được sử dụng để đồng bộ hóa đồng hồ.

  • GPIO21 · là chân SDA.

  • GPIO22 · là chân SCL.

Chân SPI

Theo mặc định, ESP32 có hai kênh giao tiếp SPI VSPI và HSPI và bảng sau cung cấp các chân SPI mặc định cho cả hai kênh. Nhưng nếu chúng ta cũng có thể ánh xạ các chân này với các chân GPIO khác cũng trong Arduino hoặc esp-idf.

Kênh SPI

MOSI ·

MISO

SCK / CLK

CS/SS

VSPI

GPIO23 ·

GPIO19 ·

GPIO18 ·

GPIO15 ·

HSPI

GPIO13 ·

GPIO12 ·

GPIO14 ·

GPIO15 ·

Chân RTC của bộ devkit ESP32

Bảng này cũng cung cấp Chân RTC có thể được sử dụng để kích hoạt ESP32 từ chế độ ngủ.

  • RTC_GPIO0 - GPIO36

  • RTC_GPIO3  -GPIO39

  • RTC_GPIO4 - GPIO34

  • RTC_GPIO5 - GPIO35

  • RTC_GPIO6 - GPIO25

  • RTC_GPIO7 -GPIO26

  • RTC_GPIO8 - GPIO33

  • RTC_GPIO9 - GPIO32

  • RTC_GPIO10 -GPIO4

  • RTC_GPIO11 - GPIO0

  • RTC_GPIO12 - GPIO2

  • RTC_GPIO13 - GPIO15

  • RTC_GPIO14 - GPIO13

  • RTC_GPIO15 - GPIO12

  • RTC_GPIO16 - GPIO14

  • RTC_GPIO17 - GPIO27

Chân cảm biến Hall

Nó cũng có một cảm biến hội trường được sử dụng để phát hiện từ trường. Bất cứ khi nào bạn muốn bảng phát triển này trong từ trường, ESP32 tạo ra một điện áp nhỏ có thể được đo bằng bất kỳ chân nào. Tôi sẽ đăng một hướng dẫn về nó các bài viết sắp tới. Các tính năng khác của bảng phát triển ESP32 và các chân được hiển thị trong hình trên.

I2S (Âm thanh liên IC)

ESP32 chứa hai thiết bị ngoại vi truyền thông nối tiếp I2S. I2S được sử dụng để truyền và nhận Âm thanh giữa hai thiết bị Audino. Mỗi bộ điều khiển I2S hoạt động ở chế độ giao tiếp nửa song công. Nhưng chúng ta có thể kết hợp hai bộ điều khiển có sẵn này để đạt được giao tiếp song công đầy đủ.

I2S -> GPIO25 và GPIO26 (I2S có thể được kết nối trực tiếp với các kênh đầu ra DAC (GPIO25 và GPIO26) để có được đầu ra Audio analog trực tiếp.

Mô-đun bộ đếm xung (PCNT)

ESP32 có 8 mô-đun bộ đếm xung (PCNT) được sử dụng để đếm số cạnh dương hoặc âm của tín hiệu được cung cấp cho các chân GPIO. Mỗi mô-đun bộ đếm xung bao gồm một thanh ghi bộ đếm 16 bit đếm từ 0 đến 65536 trên cạnh dương hoặc âm của tín hiệu đầu vào. Hơn nữa, nó cũng có thể được cấu hình để đếm ngược và đếm ngược dựa trên các cạnh của tín hiệu đầu vào. Quan trọng nhất, nó cung cấp một chân điều khiển để bật hoặc tắt số đếm từ tín hiệu đầu vào.

  • Tất cả các chân GPIO có thể được định cấu hình làm tín hiệu đầu vào cho bộ đếm xung.

Mô-đun điều khiển từ xa

Trình điều khiển mô-đun điều khiển từ xa có thể được sử dụng để truyền và nhận tín hiệu điều khiển từ xa IR và bất kỳ chân GPIO nào cũng có thể được định cấu hình để nhận và truyền tín hiệu IR.

Tự động đặt lại ESP32

Bo mạch này có bộ điều chỉnh 3.3V cho phép chân với điện trở kéo lên. Chân này được kết nối với nút nhấn trên bảng ESP32. Do đó, để tự động khởi động lại bảng, hãy kết nối chân này với mặt đất vĩnh viễn.

>>> 100+ Mã Sản Phẩm Dây Rút: https://mecsu.vn/san-pham/day-rut-nhua.5op

>>> 1000+ Mã Sản Phẩm Đầu Cosse: https://mecsu.vn/san-pham/dau-cosse.Q1j

Bài viết cùng chuyên mục

NHANH

NHANH

Vì Đổi mới liên tục nên Nhanh hơn

ĐÚNG

ĐÚNG

Coi trọng và ưu tiên việc làm Đúng

ĐỦ

ĐỦ

Tìm và mua Đủ Đơn hàng hơn

KỊP THỜI

KỊP THỜI

Hiệu suất tối ưu bởi Kịp Thời hơn