Hướng dẫn nạp Code cho ESP8266 sử dụng USB-TTL và Arduino IDE

Bài viết này sẽ hướng dẫn các bạn nạp code cho các phiên bản MCU thuộc ESP8266 series sử dụng Arduino IDE và Serial-USB Conventer (USB TTL). Ở đây sử dụng MCU ESP12E làm ví dụ, đây là MCU phổ biến của dòng ESP8266 được tích hợp trên kit NodeMCU v1.0.

Phần 1: Cấu hình Arduino IDE
Lưu ý, sử dụng Arduino IDE phiên bản 1.6.5 trở lên.
Đầu tiên, cài đặt thư viện vào IDE.
Vào File → Preferences, vào textbox Additional Board Manager URLs thêm đường link sau vào
http://arduino.esp8266.com/stable/package_esp8266com_index.json 
Sau đó nhấn OK để chấp nhận.

Tiếp theo vào Tool → Board → Boards Manager
Ta nhập vào ô tìm kiếm ESP8266 và chọn ESP8266 by ESP8266 Community, nhấp vào Install. Chờ phần mềm tự động download và cài đặt.

Phần 2: Cấu hình phần cứng và nạp code
Khi thiết kế mạch sử dụng board ESP8266, cần chú ý đảm bảo board sẽ hoạt động tốt ở cả hai chế độ là Run mode (load code từ bộ nhớ flash khi reset hoặc cấp nguồn) và Flash mode (nạp code mới), cụ thể như yêu cầu từ nhà sản xuất:


Trước khi nạp code cần cấu hình mức logic các chân của ESP8266 như sau:
GPIO0   ——– LOW
GPIO2   ——– HIGH
GPIO15 ——– LOW

Bên cạnh đó, các bạn cần đảm bảo các điều kiện VCC, GND và mức logic HIGH tại các chân RST, EN để ESP8266 hoạt động. Các bạn có thể tham khảo sơ đồ nguyên lý tối thiểu sau: 

(Khi nạp code, các bạn nối Jumper để GPIO0 có mức logic LOW)

Sau khi thiết kế xong phần cứng như trên, các bạn nối ESP8266 với moudle USBTTL theo sơ đồ sau và tiến hành nạp code (sau khi đã cấu hình Arduino IDE ở Phần 1):

ESP8266 ——- USB-TTL
VCC       ——- 3V3
GND      ——- GND
TX         ——– RX
RX         ——–TX

Đến đây các bạn cắm USB-TTL đã được kết nối với ESP8266 vào máy tính
Chọn Tool → Board → NodeMCU 1.0
Chọn cổng COM tương ứng tại Tool → Port và sau đó nạp code bình thường.

(Lưu ý: ESP8266 sử dụng điệp áp 3v3 cho nên không được kết nối nhầm VCC với chân 5v trên USB-TTL sẽ làm hỏng vi điều khiển)

Sau khi nạp code xong, để thoát khỏi chế độ flash mode chuyển về chế độ run mode ta cần giữ các chân của ESP8266 ở các mức điện áp theo yêu cầu của nhà sản xuất như sau:
GPIO0   —– HIGH
GPIO2   —– HIGH
GPIO15 —– LOW
Theo sơ đồ nguyên lý gợi ý trên thì các bạn tháo jumper – Chân GPIO0 sẽ về mức HIGH.
Xem thêm:  Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32

Chúc các bạn thành công!
Ngô Văn Trung