Arduino Nano không nạp được code: lỗi stk500_getsync, Old Bootloader, driver CH340 Windows 11

Arduino Nano không nạp được code: đọc thông báo lỗi avrdude stk500_getsync, Access is denied, sửa driver CH340, chọn Old Bootloader, nạp bằng reset tay và kiểm tra mạch hỏng.

Arduino Nano dùng chip CH340 rất rẻ và phổ biến, nhưng lần đầu nạp chương trình hay gặp lỗi: không thấy cổng COM, Arduino IDE báo stk500_getsync(): not in sync, programmer is not responding hoặc Access is denied. Bài này giải thích chương trình đi từ máy tính vào Nano như thế nào, đọc thông báo lỗi để biết lỗi ở đâu, rồi sửa theo từng bước: driver CH340 trên Windows 10, 11, lựa chọn Old Bootloader, dây vướng chân D0, D1, nạp bằng reset tay và cách kiểm tra mạch còn tốt hay đã hỏng.

1. Chương trình đi từ máy tính vào Nano như thế nào

Sơ đồ đường nạp code Arduino Nano: máy tính, cáp USB, chip CH340, ATmega328P có bootloader, đường DTR qua tụ 100 nF kéo chân RESET, bốn chỗ hay lỗi được đánh số
Đường đi của chương trình khi nạp và bốn chỗ hay lỗi (hình minh họa).

Khi bấm Upload, Arduino IDE biên dịch chương trình rồi gọi phần mềm avrdude gửi file qua cổng COM. Chip CH340 trên Nano biến cổng USB thành cổng COM, đồng thời dùng chân DTR qua một tụ 100 nF kéo chân RESET xuống để chip ATmega328P khởi động lại. Ngay sau khi khởi động lại, chương trình nhỏ có sẵn trong chip là bootloader chờ khoảng một giây; nếu có dữ liệu nạp tới, bootloader nhận và ghi vào bộ nhớ flash. Lỗi xảy ra ở chỗ nào trên đường đi này thì thông báo lỗi sẽ khác nhau.

2. Đọc thông báo lỗi để biết lỗi ở đâu

Thông báo trong cửa sổ OutputÝ nghĩaXem mục
Tools > Port không có cổng nào, hoặc Board at COM5 is not availableMáy tính không thấy Nano: cáp chỉ sạc, thiếu driver CH3403
can't open device "\\.\COM5": The system cannot find the file specifiedChọn cổng COM không còn tồn tại (đã rút ra cắm lại, số cổng đổi)3
can't open device "\\.\COM5": Access is deniedCổng COM đang bị phần mềm khác giữ: Serial Monitor ở cửa sổ khác, phần mềm terminal, Cura, Processing4
stk500_recv(): programmer is not responding và stk500_getsync() attempt 1 of 10: not in sync: resp=0x00Có cổng COM nhưng không nói chuyện được với bootloader: sai Processor, có dây ở D0, D1, mạch không tự reset5
verification error, first mismatch at byteGhi xong nhưng đọc lại sai: cáp kém, nguồn yếu, có tải lớn nối vào Nano5
Device signature = 0x1e9516 kèm Expected signature for ATmega328P is 1E 95 0FChip trên mạch là ATmega328PB, không phải ATmega328P7
Sketch too bigChương trình vượt 30.720 byte bộ nhớ dành cho chương trìnhRút gọn chương trình, dùng ESP32

3. Máy tính không thấy cổng COM

Ba trạng thái trong Device Manager khi cắm Arduino Nano: nhận đúng USB-SERIAL CH340 (COM5), chưa có driver hiện USB2.0-Serial có dấu chấm than, không thấy thiết bị mới do cáp chỉ sạc
Ba trạng thái hay gặp trong Device Manager (hình vẽ minh họa).
  • Không thấy gì mới khi cắm, rút: phần lớn do cáp chỉ có hai sợi nguồn để sạc, không có dây dữ liệu. Đổi sang dây USB nạp code hoặc dây đã từng truyền dữ liệu được với điện thoại, thử cổng USB khác trên máy. Cách phân biệt dây sạc và dây dữ liệu có trong bài ESP32 không nhận cổng COM, áp dụng y hệt cho Nano.
  • Hiện "USB2.0-Serial" có dấu chấm than: Windows chưa có driver CH340. Windows 10, 11 thường tự tải driver qua Windows Update sau vài phút; nếu không, cài driver CH340 của nhà sản xuất chip (WCH), rồi rút cáp cắm lại. Cách cài từng bước có trong bài bắt đầu với Arduino Nano CH340.
  • Đã hiện "USB-SERIAL CH340 (COM5)": chọn đúng cổng đó trong Tools > Port. Mỗi lần cắm sang cổng USB khác, số COM có thể đổi.

4. Lỗi Access is denied

Một cổng COM chỉ một phần mềm được mở tại một thời điểm. Đóng Serial Monitor, Serial Plotter đang mở ở cửa sổ Arduino IDE khác, các phần mềm terminal, phần mềm in 3D hay phần mềm nào khác có thể đang kết nối với cổng đó, rồi bấm Upload lại. Vẫn không được thì rút cáp, chờ vài giây rồi cắm lại.

5. Lỗi not in sync, programmer is not responding

Có cổng COM nhưng avrdude không nói chuyện được với bootloader. Thử lần lượt:

  1. Đổi lựa chọn Processor. Trong Tools > Processor có hai lựa chọn: ATmega328P và ATmega328P (Old Bootloader). Hai loại bootloader nhận dữ liệu ở hai tốc độ khác nhau (115200 và 57600 baud). Mạch Nano CH340 thường dùng loại Old Bootloader; nạp không được thì đổi sang lựa chọn còn lại. Chọn sai chỉ làm việc nạp thất bại, không làm hỏng mạch.
  2. Rút dây ở chân D0 (RX0), D1 (TX1). Hai chân này nối với chip CH340 để nạp; module Bluetooth, module RS-485, module GPS hay bất cứ dây nào cắm vào đây đều chen vào đường nạp. Rút ra khi nạp, hoặc chuyển module sang chân khác dùng SoftwareSerial.
  3. Tháo shield, tải lớn. Shield mở rộng, servo, relay lấy nguồn từ chân 5V có thể làm sụt áp lúc nạp. Tháo Nano ra khỏi đế, nạp riêng rồi cắm lại.
  4. Nạp bằng reset tay nếu mạch không tự khởi động lại (xem hình dưới).
Cách nạp Arduino Nano bằng reset tay: giữ nút RESET, bấm Upload, thấy dòng Uploading thì nhả nút ngay
Giữ RESET khi đang biên dịch, nhả ngay khi bắt đầu nạp (hình minh họa).

Cách làm: bấm và giữ nút RESET trên Nano, bấm Upload, nhìn cửa sổ Output; khi biên dịch xong và hiện dòng Uploading thì nhả nút ngay. Bootloader chỉ chờ khoảng một giây sau khi nhả, nên có thể phải thử vài lần để canh đúng lúc. Nạp tay được mà nạp bình thường không được thì đường tự reset (tụ 100 nF ở chân DTR) có vấn đề; mạch vẫn dùng được, chỉ bất tiện khi nạp.

6. Kiểm tra vòng lặp RX0–TX1: mạch còn tốt hay đã hỏng

Kiểm tra vòng lặp trên Arduino Nano: dây nối RST với GND, dây nối RX0 với TX1, Serial Monitor hiện lại đúng chữ vừa gõ
Nối RST với GND và RX0 với TX1 để kiểm tra riêng chip CH340 (hình minh họa).

Khi đã thử hết các bước trên mà vẫn báo not in sync, phép thử này cho biết lỗi nằm ở phần USB hay ở chip ATmega328P:

  1. Rút hết dây khác ra khỏi Nano. Nối chân RST với chân GND ngay cạnh để giữ ATmega328P đứng yên, nối chân RX0 với TX1.
  2. Mở Serial Monitor, gõ vài chữ rồi Enter.
  3. Chữ hiện lại đúng: cáp, driver, chip CH340 đều tốt, lỗi nằm ở ATmega328P hoặc bootloader. Không hiện gì: lỗi ở cáp, driver hoặc chip CH340.

Nếu CH340 tốt mà vẫn không nạp được với cả hai lựa chọn Processor, bootloader có thể đã mất. Có thể nạp lại bootloader bằng một mạch Arduino khác chạy chương trình ArduinoISP, nối qua 6 chân ICSP; hoặc liên hệ PYWORLD để được kiểm tra mạch.

7. Chip ATmega328PB

Một số lô mạch Nano dùng chip ATmega328PB thay cho ATmega328P. Phần lớn vẫn nạp được với lựa chọn Arduino Nano thông thường. Nếu thông báo lỗi ghi Device signature = 0x1e9516, chip đúng là ATmega328PB: cài gói bo mạch MiniCore trong Boards Manager và chọn ATmega328PB, hoặc liên hệ PYWORLD để được hướng dẫn theo đúng lô mạch.

8. Xem thêm

Cần hỗ trợ khi Nano vẫn không nạp được, liên hệ PYWORLD qua số 0915703319.


Tin tức liên quan

Hiệu chuẩn transmitter áp suất 4–20 mA: sơ đồ vòng, sai số theo khoảng đo, lúc nhận và sau chỉnh
Hiệu chuẩn transmitter áp suất 4–20 mA: sơ đồ vòng, sai số theo khoảng đo, lúc nhận và sau chỉnh

Hiệu chuẩn transmitter áp suất 4–20 mA: sơ đồ vòng dòng điện, công thức dòng và sai số theo phần trăm khoảng đo, trình tự lúc nhận và sau chỉnh, ví dụ 0–16 bar, lưu ý về HART và điểm 0.

Vali đựng máy ảnh, ống kính chống sốc: chọn cỡ theo bộ máy và cách xếp xốp
Vali đựng máy ảnh, ống kính chống sốc: chọn cỡ theo bộ máy và cách xếp xốp

Chọn vali đựng máy ảnh, ống kính: liệt kê những gì bộ máy cần chỗ, xếp xốp, đặt ống kính đứng hay nằm, gợi ý cỡ vali chống nước theo bộ máy, chống ẩm và mang lên xe, máy bay.

Sơ đồ chân ESP32 DevKit V1 30 chân và 38 chân: chân nào dùng được, chân nào nên tránh
Sơ đồ chân ESP32 DevKit V1 30 chân và 38 chân: chân nào dùng được, chân nào nên tránh

Sơ đồ chân ESP32 DevKit V1 30 chân và 38 chân: số GPIO, ADC1, ADC2, cảm ứng, I2C, SPI, UART, chân khởi động, chân chỉ vào, chân nối flash và cách chọn chân đúng cho từng việc.

Lập trình rèn cho trẻ cách giải quyết vấn đề có hệ thống: hiểu đề, chia nhỏ, lập kế hoạch, gỡ lỗi
Lập trình rèn cho trẻ cách giải quyết vấn đề có hệ thống: hiểu đề, chia nhỏ, lập kế hoạch, gỡ lỗi

Vì sao học lập trình rèn cho trẻ cách giải quyết vấn đề có hệ thống: bốn bước của Pólya, chia nhỏ, lập kế hoạch, gỡ lỗi từng bước, nghiên cứu liên quan và hoạt động tại nhà.

Lực kế chuẩn theo ISO 376: trình tự hiệu chuẩn, chỉ tiêu tái lập, lặp lại, nội suy và phân cấp
Lực kế chuẩn theo ISO 376: trình tự hiệu chuẩn, chỉ tiêu tái lập, lặp lại, nội suy và phân cấp

Hiệu chuẩn lực kế chuẩn theo ISO 376: chuẩn bị, trình tự sáu loạt đo xoay 0°, 120°, 240°, công thức b, b', fc, v, bảng tiêu chí cấp 00, 0,5, 1, 2 và ví dụ lực kế 100 kN.

Đèn giao thông ngã tư với ESP32: dự án STEM chủ đề giao thông cho học sinh
Đèn giao thông ngã tư với ESP32: dự án STEM chủ đề giao thông cho học sinh

Làm đèn giao thông ngã tư thu nhỏ với ESP32: 6 đèn LED cho hai hướng, bảng 6 pha, millis không dùng delay dài, dây cảm ứng làm nút xin qua đường và mô hình bìa cứng.

CAN bus (phần 1): tín hiệu, khung tin, phân xử ưu tiên và gửi nhận bằng ESP32
CAN bus (phần 1): tín hiệu, khung tin, phân xử ưu tiên và gửi nhận bằng ESP32

Giải thích CAN bus: hai dây CAN_H, CAN_L, mức trội và mức lặn, khung tin có ID 11 bit, phân xử ưu tiên, CRC và ACK. Kèm hai chương trình ESP32 dùng bộ điều khiển TWAI: tự kiểm tra và hai nút gửi nhận.

Jack USB Type-C: phân biệt loại 2, 4, 5, 6 dây và các kiểu lắp
Jack USB Type-C: phân biệt loại 2, 4, 5, 6 dây và các kiểu lắp

Jack USB Type-C loại 2, 4, 5, 6 dây khác nhau ở tín hiệu đưa ra: nguồn, dữ liệu D+ D−, chân CC. Bài giải thích từng loại, màu dây, các kiểu lắp tròn, oval, dẹt có tai và cách chọn cho mạch.


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