Hướng dẫn nạp file .bin vào ESP32 bằng Flash Download Tool

Hướng dẫn lấy đúng file và offset theo từng ESP32, nạp bằng Flash Download Tool, xử lý lỗi boot và xóa flash an toàn.

Bài viết này hướng dẫn lấy bộ file firmware do Arduino IDE tạo ra và nạp vào ESP32 bằng Espressif Flash Download Tool. Phần quan trọng nhất là chọn đúng chip, đúng cấu hình flash và đúng offset của chính lần biên dịch; không nên sao chép cố định địa chỉ từ một dự án khác.

1. Chuẩn bị

  • Bo ESP32 và cáp USB truyền dữ liệu ổn định.
  • Driver USB-UART đúng với chip trên bo, ví dụ CP210x hoặc CH340.
  • Arduino IDE đã cài gói bo ESP32 và chọn đúng model bo, flash size, partition scheme.
  • Flash Download Tool chính thức của Espressif.

2. Xuất đúng bộ file firmware

  1. Mở sketch trong Arduino IDE và chọn đúng mục Tools > Board, flash size và partition scheme.
  2. Dùng Sketch > Export Compiled Binary, hoặc bật verbose upload để xem chính xác lệnh nạp và các offset.
  3. Mở thư mục chứa kết quả build. Tên file thay đổi theo phiên bản Arduino core và cấu hình dự án.
Thư mục build chứa các file firmware ESP32
Ví dụ thư mục build chứa các file firmware.

Một bộ firmware có thể gồm:

  • bootloader.bin: bộ nạp khởi động.
  • partitions.bin: bảng phân vùng đã chọn khi biên dịch.
  • boot_app0.bin: dữ liệu hỗ trợ khởi động ứng dụng, xuất hiện với một số cấu hình.
  • tên-sketch.bin: chương trình chính.
  • tên-sketch.merged.bin: file hợp nhất do một số phiên bản Arduino-ESP32 tạo ra; offset nạp phải lấy từ build log, thường là 0x0.
  • flash_args hoặc dòng lệnh upload: nguồn để xác định file, offset và tham số flash.

Không phải cấu hình nào cũng tạo cùng số lượng file. Hãy lấy danh sách và địa chỉ từ đầu ra build/upload của chính dự án. Nếu dùng file merged.bin, không chọn đồng thời các file thành phần trong cùng lượt nạp. Ví dụ dưới đây là bố cục thường gặp của ESP32 classic và chỉ để nhận biết định dạng; bootloader offset thay đổi theo dòng chip/bo:

0x1000   bootloader.bin
0x8000   partitions.bin
0xe000   boot_app0.bin
0x10000  ten-sketch.bin

3. Cấu hình Flash Download Tool

  1. Mở công cụ, chọn đúng ChipType, đặt WorkMode = DevelopLoadMode = UART. Chế độ Factory dành cho quy trình sản xuất hoặc nạp nhiều thiết bị, không dùng trong hướng dẫn nạp một bo này.
  2. Thêm từng file .bin và nhập offset tương ứng lấy từ upload log hoặc flash_args.
  3. Đánh dấu các dòng cần nạp. Không tự ép SPI SPEED hoặc SPI MODE khác cấu hình build; từ Flash Download Tool 3.9.10, các mục này mặc định bị khóa và công cụ dùng cấu hình trong firmware. Bật DoNotChgBin nếu cần giữ nguyên binary; khi tắt, công cụ có thể điều chỉnh thông tin header theo giao diện.
  4. Chọn đúng cổng COM. Có thể bắt đầu ở 115200 baud nếu đường truyền không ổn định rồi tăng tốc sau.
Cửa sổ Flash Download Tool chọn file và offset ESP32
Nhập file và offset tương ứng trong Flash Download Tool.
Thiết lập ChipType, WorkMode và LoadMode trong Flash Download Tool
Kiểm tra loại chip, chế độ làm việc và tham số flash.

4. Đưa ESP32 vào chế độ nạp và bắt đầu

  1. Với bo tự động vào bootloader, bấm START và chờ kết nối.
  2. Nếu công cụ không đồng bộ được, giữ nút BOOT (GPIO0 ở mức thấp), nhấn rồi thả EN/RESET, sau đó thả BOOT khi quá trình bắt đầu.
  3. Chờ trạng thái hoàn tất, khởi động lại bo và kiểm tra log UART của ứng dụng.
Quá trình nạp firmware ESP32 hoàn tất
Thông báo hoàn tất quá trình nạp firmware.

5. Lỗi thường gặp

Lỗi thường gặp khi nạp firmware ESP32
Hiện tượng Cách kiểm tra
Không kết nối được Kiểm tra cáp, driver, cổng COM, quyền truy cập cổng và thao tác BOOT/EN.
Nạp xong nhưng không boot Đối chiếu lại loại chip, flash mode/size, partition scheme và toàn bộ offset.
Boot loop hoặc lỗi partition Dùng đúng partitions.bin và app.bin từ cùng một lần build; đọc log UART để xác định nguyên nhân.
Thiết bị mất dữ liệu cấu hình Kiểm tra thao tác ERASE. Xóa toàn bộ flash có thể xóa NVS, dữ liệu hiệu chuẩn và nội dung filesystem.

Không chọn ERASE theo thói quen. Chỉ xóa flash khi có lý do rõ ràng và đã sao lưu dữ liệu cần giữ. Nếu firmware dùng Secure Boot, Flash Encryption hoặc bảng phân vùng riêng, cần theo đúng quy trình phát hành của dự án.

6. Tài liệu và bài liên quan

Đối chiếu thêm tài liệu Flashing FirmwareBoot Mode Selection của Espressif. Sau khi nạp, bạn có thể thử điều khiển relay bằng ESP32 hoặc đọc load cell bằng HX711.


Tin tức liên quan

Đo biến dạng bằng cảm biến strain gauge
Đo biến dạng bằng cảm biến strain gauge

1237 Lượt xem

Giải thích strain, hệ số gauge, cầu Wheatstone, cấu hình quarter/half/full bridge và các bước thiết lập phép đo biến dạng tin cậy.

Vali Nhựa Chuyên Dụng – Gia Công Mút Theo Biên Dạng Thiết Bị
Vali Nhựa Chuyên Dụng – Gia Công Mút Theo Biên Dạng Thiết Bị

538 Lượt xem

Dịch vụ chọn vali và gia công mút theo biên dạng thiết bị; vật liệu, kích thước và mức bảo vệ được xác nhận theo từng mẫu cụ thể.

Cảm biến gia tốc áp điện RION PV-90B (charge output)
Cảm biến gia tốc áp điện RION PV-90B (charge output)

492 Lượt xem

Trong lĩnh vực đo rung động và phân tích dao động, yêu cầu về độ chính xác, tốc độ phản hồi và độ bền cơ học ngày càng trở nên khắt khe hơn. Đặc biệt với các ứng dụng trong lĩnh vực nghiên cứu kết cấu, cơ học dao động, kiểm định máy móc và đo modal, một cảm biến nhỏ gọn nhưng có độ nhạy cao là yếu tố sống còn. Cảm biến RION PV-90B chính là một trong những đại diện xuất sắc của dòng cảm biến gia tốc piezoelectric hiện nay – đến từ thương hiệu danh tiếng RION – Nhật Bản.

HX711 với load cell và LCD 1602 bằng MicroPython
HX711 với load cell và LCD 1602 bằng MicroPython

1143 Lượt xem

Hướng dẫn ESP32 đọc load cell qua HX711 và hiển thị LCD 1602 bằng MicroPython, gồm đấu dây, hiệu chuẩn và xử lý lỗi.

Sản phẩm liên quan


Bình luận
Đã thêm vào giỏ hàng