Tổng quan về sơ đồ chân ESP32 và ngoại vi

Mỗi chân của ESP32 bao gồm chức năng gì? Sơ đồ chân ESP32 được cấu tạo như thế nào?

Có rất nhiều câu hỏi về cách sử dụng các GPIO của ESP32. Bạn nên sử dụng các chân nào? Bạn nên tránh sử dụng các chân nào trong các dự án của mình? Bài này nhằm cho các bạn một số tham khảo đơn giản và dễ làm cho các GPIO của ESP32.

Bài này nằm trong Serie Học lập trình ESP32 Từ A tới Z

Trong phạm vi bài này, mình sẽ không chỉ rõ chân chip ESP32 (các bạn có thể tham khảo trong datasheet) mà sẽ chỉ có các chân của ESP32 WROOM và KIT ESP32

Sơ đồ chân ESP32

ESP32 WROOM là 1 dạng SoC (System on Chip) trên đó đã được thiết kế sẵn để cho chip ESP32 hoạt động.

Đây là thành phần cơ bản của một sản phẩm IOT sử dụng ESP32.

ESP32 DEVKIT V1 – DOIT hay nhiều biến thể khác nhau, đều có chung Pinout hoặc gần giống nhau. Đây cũng là KIT mà chúng ta sẽ sử dụng trong khuôn khổ các bài học này

Dưới đây là bảng tra cứu khả năng sử dụng của các chân.

Các chân được đánh dấu màu xanh lá cây là OK để sử dụng. Các chân được đánh dấu màu vàng thì có thể sử dụng, nhưng bạn cần chú ý vì chúng có thể có hoạt động không mong muốn chủ yếu khi khởi động. Các chân được đánh dấu màu đỏ không được khuyến khích sử dụng làm đầu vào hoặc đầu ra .

GPIO Pin Input Output Chức năng đặc biệt
0 pulled up OK outputs PWM signal at boot
1 TX pin OK debug output at boot
2 OK OK connected to on-board LED
3 OK RX pin HIGH at boot
4 OK OK
5 OK OK outputs PWM signal at boot
6 X X connected to the integrated SPI flash
7 X X connected to the integrated SPI flash
8 X X connected to the integrated SPI flash
9 X X connected to the integrated SPI flash
10 X X connected to the integrated SPI flash
11 X X connected to the integrated SPI flash
12 OK OK boot fail if pulled high
13 OK OK
14 OK OK outputs PWM signal at boot
15 OK OK outputs PWM signal at boot
16 OK OK
17 OK OK
18 OK OK
19 OK OK
21 OK OK
22 OK OK
23 OK OK
25 OK OK
26 OK OK
27 OK OK
32 OK OK
33 OK OK
34 OK input only
35 OK input only
36 OK input only
39 OK input only

Mô tả các chân ESP32

Chân Input Only

GPIO từ 34 đến 39 là GPI – chân chỉ đầu vào. Các chân này không có điện trở kéo lên hoặc kéo xuống bên trong. Chúng không thể được sử dụng làm đầu ra, vì vậy chỉ sử dụng các chân này làm đầu vào:

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

Chân tích hợp Flash trên ESP32

GPIO 6 đến GPIO 11 dùng để kết nối Flash SPI, không khuyến khích sử dụng trong các ứng dụng khác

  • GPIO 6 (SCK/CLK)
  • GPIO 7 (SDO/SD0)
  • GPIO 8 (SDI/SD1)
  • GPIO 9 (SHD/SD2)
  • GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

Chân cám biến điện dung

Các chân ESP32 này có chức năng như 1 nút nhấn cảm ứng, có thể phát hiện sự thay đổi về điện áp cảm ứng trên chân.

Các cảm biến cảm ứng bên trong đó được kết nối với các GPIO sau:

  • 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)

Analog to Digital Converter (ADC)

ESP32 có các kênh đầu vào ADC 18 x 12 bit (trong khi ESP8266 chỉ có ADC 1x 10 bit). Đây là các GPIO có thể được sử dụng làm ADC và các kênh tương ứng:

  • 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)

Các kênh đầu vào ADC có độ phân giải 12 bit. Điều này có nghĩa là bạn có thể nhận được các số đọc tương tự từ 0 đến 4095, trong đó 0 tương ứng với 0V và 4095 đến 3,3V. Bạn cũng có thể lập trình độ phân giải của các kênh của mình trên code.

Digital to Analog Converter (DAC)

Có các kênh DAC 2 x 8 bit trên ESP32 để chuyển đổi tín hiệu kỹ thuật số thành đầu ra tín hiệu điện áp tương tự. Các kênh này chỉ có độ phân giải 8 bit, nghĩa là có giá trị từ 0 – 255 tương ứng với 0 – 3.3V

Đây là các kênh DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

Các chân thời gian thực RTC

Các chân này có tác dụng đánh thức ESP32 khi trong chế độ Low Power Mode. Sử dụng như 1 chân ngắt ngoài.

Các chân RTC:

  • 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 PWM

ESP32 LED PWM có 16 kênh độc lập có thể được định cấu hình để tạo tín hiệu PWM với các thuộc tính khác nhau. Tất cả các chân có thể hoạt động như đầu ra đều có thể được sử dụng làm chân PWM (GPIO từ 34 đến 39 không thể tạo PWM).

Để xuất PWM, bạn cần xác định các thông số này trong code:

  • Frequency – tần số
  • Duty cycle
  • Kênh PWM
  • Chân GPIO nơi bạn muốn xuất tín hiệu

Chân I2C

ESP32 có hai kênh I2C và bất kỳ chân nào cũng có thể được đặt làm SDA hoặc SCL. Khi sử dụng ESP32 với Arduino IDE, các chân I2C mặc định là:

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

Nếu các bạn muốn sử dụng chân khác cho việc điều khiển I2C có thể sử dụng code:

Wire.begin(SDA, SCL);

Chân Ngắt Ngoài

Tất cả các chân ESP32 đều có thể sử dụng ngắt ngoài

Sơ đồ nguyên lý của ESP32 Dev KIT V1

Đây là sơ đồ nguyên lý của KIT, các bạn có thể tham khảo để tự vẽ cho mình 1 sơ đồ nguyên lý sử dụng ESP32

Kết

Trên đây là sơ đồ chân ESP32 ( ESP32 Pinout) các bạn lưu ý chọn các chân phù hợp với dự án của mình nhé. Đừng quên vào hội Anh Em Nghiện Lập Trình để kết nối với những người có cùng đam mê nhé.

 

4.8/5 - (5 bình chọn)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *