Mục lục:

ESP8266 Sử dụng các chân GPIO0 / GPIO2 / GPIO15: 4 bước
ESP8266 Sử dụng các chân GPIO0 / GPIO2 / GPIO15: 4 bước

Video: ESP8266 Sử dụng các chân GPIO0 / GPIO2 / GPIO15: 4 bước

Video: ESP8266 Sử dụng các chân GPIO0 / GPIO2 / GPIO15: 4 bước
Video: ESP8266 #1 Chi tiết sơ đồ chân NodeMCU, tránh sai lầm khi code (update 08-04-2020) 2024, Tháng mười một
Anonim
ESP8266 Sử dụng các chân GPIO0 / GPIO2 / GPIO15
ESP8266 Sử dụng các chân GPIO0 / GPIO2 / GPIO15

Cập nhật ngày 1 tháng 7 năm 2018 - Đã thêm ghi chú về lập trình lại khi GPIO0 là đầu ra

Đây là một ghi chú rất ngắn về cách sử dụng các chân GPIO0 / GPIO2 và GPIO15 trên mô-đun ESP8266.

Cập nhật: Cũng xem Cách sử dụng các chân ESP8266-01

Giới thiệu

ESP8266 là một chip kích hoạt wifi giá rẻ. Nó có nhiều loại mô-đun khác nhau và có thể được lập trình theo nhiều cách khác nhau. Tất cả các mô-đun làm cho GPIO0 và GPIO2 có thể truy cập được. Hầu hết các mô-đun, ngoài ESP8266-01, cũng làm cho GPIO15 có thể truy cập được. Các GPIO này kiểm soát cách mô-đun khởi động và như vậy yêu cầu xử lý đặc biệt nếu chúng được sử dụng. GPIO6-GPIO11 cũng yêu cầu điều trị đặc biệt như mô tả bên dưới.

Bước 1: Flash các chân GPIO - GPIO6 đến GPIO11

Hầu hết các bo mạch ESP8266 có một chip flash được kết nối với một số hoặc tất cả GPIO6-GPIO11. Hầu hết các chương trình sử dụng bộ nhớ flash, cũng như RAM, vì vậy trừ khi bạn đảm bảo đặc biệt rằng mã của mình chỉ chạy từ RAM, bạn không thể sử dụng các chân này cho các mục đích khác.

Số chân chính xác được sử dụng trong phạm vi GPIO6 đến GPIO11 tùy thuộc vào loại phần cứng flash được sử dụng trên mô-đun của bạn. Quad IO sử dụng 4 dòng cho dữ liệu (tổng cộng 6 chân) cho tốc độ gấp 4 lần tiêu chuẩn. IO kép sử dụng 2 đường cho dữ liệu (tổng 4 chân) Tiêu chuẩn sử dụng một đường duy nhất cho dữ liệu (tổng 3 chân).

Trừ khi bạn biết chính xác những gì hội đồng quản trị của bạn yêu cầu, bạn tốt nhất chỉ nên bỏ qua GPIO6 đến GPIO11 và không tham chiếu đến chúng từ mã của bạn.

Bước 2: Các chân GPIO0, GPIO2 và GPIO15

Các chân GPIO0, GPIO2 và GPIO15
Các chân GPIO0, GPIO2 và GPIO15

Các chân này xác định chế độ khởi động của chip.

Để thực hiện chương trình bình thường, GPIO0 và GPIO2 cần được kéo lên Vcc (3.3V) và GPIO15 cần được kéo lên GND, mỗi loại có một điện trở trong khoảng điện trở 2K đến 10K. Điện trở 2K cho khả năng chống nhiễu tốt hơn. OLIMEX sử dụng điện trở 2K SparkFun sử dụng điện trở 10K. Tôi sử dụng điện trở 3K3.

Cài đặt của các đầu vào này chỉ được kiểm tra trong quá trình khởi động (hoặc đặt lại) chip. Sau đó, các chân có sẵn để sử dụng chung, nhưng như đã thảo luận bên dưới, việc sử dụng chúng bị hạn chế bởi các điện trở kéo lên / xuống bên ngoài này.

Bước 3: Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu ra

Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu ra
Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu ra

Như đã lưu ý ở trên, các chân này sẽ có một điện trở được kết nối với VCC (GPIO0 và GPIO2) hoặc GND cho GPIO15. Điều này xác định cách bất kỳ thiết bị bên ngoài nào, như rơ le hoặc đèn led + điện trở, phải được kết nối. Đối với GPIO0 và GPIO2, một rơ le bên ngoài phải được kết nối giữa VCC và chân cắm để nó không cản trở hoạt động của điện trở kéo lên. Ngược lại, một rơ le bên ngoài được kết nối với GPIO15 phải được kết nối giữa GND và chân cắm để không cản trở hoạt động của điện trở kéo xuống.

Để kích hoạt thiết bị bên ngoài, GPIO0 hoặc GPIO2 phải được điều khiển THẤP (Active LOW) trong khi GPIO15 phải được điều khiển CAO (Active HIGH).

Sơ đồ trên cho thấy cách sử dụng GPIO0 và GPIO2 và GPIO15 làm đầu ra. Mạch này cũng bao gồm các điện trở kéo lên / kéo xuống cần thiết. Lưu ý rằng mô-đun rơle 5V được điều khiển bởi GPIO0 được cách ly quang học và có kết nối chung riêng cho đầu vào. Điều quan trọng là điện áp 5V VCCA không được cấp cho chân ESP8266.

Cách lập trình lại khi sử dụng GPIO0 làm đầu ra

Lưu ý: GPIO0 cần được nối đất để vào chế độ lập trình. Nếu bạn phác thảo đang đẩy nó lên cao, việc nối đất nó có thể làm hỏng chip ESP8266 của bạn. Cách an toàn để lập trình lại ESP8266 khi mã của bạn điều khiển đầu ra GPIO0 là: - a) Tắt nguồn bo mạch b) tắt GPIO0 để gnd c) bật nguồn bo mạch chuyển sang chế độ chương trình do GPIO0 bị chập mạch d) gỡ bỏ đoạn ngắn từ GPIO0 để bạn không bị hụt đầu ra khi chương trình chạy e) lập trình lại bảng f) chu kỳ nguồn cho bảng nếu cần.

Bước 4: Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu vào

Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu vào
Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu vào

Sử dụng các chân này làm đầu vào là một chút khó khăn. Như đã lưu ý ở trên khi bật nguồn và trong khi đặt lại, các chân này phải được kéo lên hoặc xuống theo yêu cầu để mô-đun ESP8266 khởi động ở chế độ chạy bình thường. Điều này có nghĩa là, nói chung, bạn không thể chỉ gắn một công tắc bên ngoài vào các chân này vì khi bật nguồn, bạn thường không thể đảm bảo công tắc sẽ không kéo đầu vào xuống đất và do đó ngăn mô-đun khởi động chính xác.

Mẹo là không kết nối công tắc bên ngoài trực tiếp từ GPIO0 hoặc GPIO2 với GND mà thay vào đó kết nối nó với một chân GPIO khác được điều khiển xuống đất (như một đầu ra) chỉ sau khi ESP8266 khởi động. Hãy nhớ rằng, khi được sử dụng làm đầu ra, các chân GPIO cung cấp kết nối điện trở rất thấp tới VCC hoặc GND tùy thuộc vào việc chúng được điều khiển CAO hay THẤP.

Ở đây chỉ GPIO0 và GPIO2 sẽ được xem xét. Sử dụng phương pháp này, bạn có thể nhận được một (1) đầu vào bổ sung bằng cách sử dụng hai (2) GPIO này.

Một phương pháp tương tự có thể được sử dụng cho GPIO15 bằng cách sử dụng một chân GPIO khác để kết nối công tắc của nó với + VCC, nhưng điều này không thu được thêm đầu vào, bạn cũng có thể chỉ sử dụng trực tiếp chân GPIO khác làm đầu vào.

Mạch trên sử dụng mô-đun ESP8266-01 làm ví dụ. Nếu không sử dụng thủ thuật này, ESP8266-01 không có bất kỳ chân miễn phí nào để sử dụng làm đầu vào nếu bạn đang sử dụng chân RX / TX cho kết nối UART.

Vì phương thức setup () của sketch chỉ được chạy sau khi mô-đun ESP8266 khởi động, nên có thể an toàn khi đặt đầu ra GPIO0 THẤP và do đó cung cấp nền tảng cho S1 được kết nối với GPIO2. Sau đó, bạn có thể sử dụng digitalRead (2) ở nơi khác trong bản phác thảo của mình để đọc cài đặt chuyển đổi.

Phần kết luận

Ghi chú ngắn này cho thấy cách sử dụng GPIO0, GPIO2 và GPIO15 làm đầu ra và cách sử dụng để có thêm đầu vào bằng cách sử dụng GPIO0 và GPIO2 cùng nhau.

Đề xuất: