Lỗi nạp code avrdude stk500_getsync attempt 10 of 10

When I first started with a bare minimum code. The compiler compiles the code, but when I try to upload, this is the error message I get:

 AVRDUDE: STK500_GETSYNC<> ATTEMPT 10 OF 10 NOT IN SYNC :RESP=0X20 

How do I fix this?

RSM

1,4571 gold badge11 silver badges26 bronze badges

asked Jul 16, 2015 at 18:37

2

There are multiple reasons why you are getting this error.

  1. Bootloader is either missing or corrupted. This is fairly unlikely.
  2. Wire connected to pin 0 (RX)
  3. Wrong COM port is chosen within the arduino IDE.
  4. Drivers are not installed. You can update it within the Device Manager if you are using Windows.

Here is a link to an article explaining the causes and how to fix them, http://www.instructables.com/id/A-solution-to-avrdude-stk500getsync-not-in-syn/

Trong bài viết này, mình sẽ giới thiệu cho các bạn các rắc rối thường gặp khi làm việc với Arduino. Mặc dù tôi đã nghiên cứu Arduino được khá lâu nhưng thỉnh thoảng tôi cũng hay gặp phải chúng. Bài viết có thể sẽ được cập nhật dần để bao quát hết được các xu hướng mắc lỗi thường gặp cũng như những lỗi hay hiện tượng "từ trên trời rơi xuống" của người mới nghiên cứu Arduino.

2. Biên dịch gặp lỗi

Lập trình:

void setup() {   char str[9] = "123456789"; start(); a = 6; } void loop() { }

Lỗi mắc phải:

Lỗi nạp code avrdude stk500_getsync attempt 10 of 10

sketch_jun24b:2: error: initializer-string for array of chars is too long

sketch_jun23a:3: error: 'start' was not declared in this scope

sketch_jun23a:4: error: 'a' was not declared in this scope

Ý nghĩa:

Cửa sổ soạn thảo sketch_jun23a, dòng 2, độ dài của chuối vượt quá độ dài khai báo

Cửa sổ soạn thảo sketch_jun23a, dòng 3, không tìm thấy đối tượng "start"

Cửa sổ soạn thảo sketch_jun23a, dòng 4, không tìm thấy đối tượng "a"

Khắc phục:

Khai báo kiểu dữ liệu cho biến "a" và định nghĩa hàm start(), chỉnh lại kích thước chuỗi str cho đúng.

int a; char str10] = "123456789"; //xem phần "Chú ý" của [string void setup() { start(); a = 6; } void loop() { } void start() {

Serial.begin(9600);
Serial.println("Hello Arduino");
}

3. Upload chương trình gặp lỗi

3.1 Lỗi Serial port "COM11" not found

Thông báo lỗi

Lỗi nạp code avrdude stk500_getsync attempt 10 of 10

Ý nghĩa:

Không tìm thấy mạch Arduino nào ở cổng Serial COM11.

Khắc phục:

Vào menu Tool -> Serial Port để chọn đúng cổng Serial. Cổng Serial đang dùng luôn được hiển thị ở góc dưới cùng bên phải như trên hình (COM11).

Nếu bạn đã vào menu Tool -> Serial Port rồi nhưng lại gặp cảnh như thế này ...

Lỗi nạp code avrdude stk500_getsync attempt 10 of 10

... thì có thể có bạn đã quên kết nối Arduino với máy tính hoặc dây cáp kết nối bị lỏng.

Một số trường hợp đang làm việc bình thường thì bỗng dưng bị lỗi mất kết nối như trên thì bạn hãy thử rút dâu USB ra, đợi vài giây rồi cắm lại. Nếu không được thì rút dây và tắt hết các cửa sổ lập trình Arduino đi sau đó bật lại như bình thường.

Nếu cách trên không hiệu quả, hãy kết nối Arduino sang cổng USB khác hoặc khởi động lại máy.

Lưu ý rằng Arduino IDE chạy trên nền tảng Java, do đó hãy đảm bảo rằng máy tính của bạn đang có phiên bản Java Runtime Environment (JRE) mới nhất. Download bản JRE 32 bit tại đây hoặc JRE 64 bit tại đây.

3.2 Lỗi avrdude: stk500_getsync(): not in sync: resp=0x00

Thông báo lỗi

Lỗi nạp code avrdude stk500_getsync attempt 10 of 10

Ý nghĩa

Có rất nhiều tình huống làm phát sinh lỗi này, sau đây là những lí do thường hay gặp:

1. Chọn sai board Arduino khi upload chương trình.
  1. Chân RESET trên board Arduino bị nối xuống GND hay đang ở mức LOW.

Khắc phục

1. Vào menu Tools -> Board để chọn lại đúng mạch Arduino đang sử dụng.
Lỗi nạp code avrdude stk500_getsync attempt 10 of 10
  1. Đặt lại chân RESET ở mức HIGH hoặc đơn giản là tháo các dây đang nối với chân này ra. Theo thiết kế mạch mặc định của Arduino thì chân RESET luôn được nối với Vcc (đặt ở mức HIGH).

3.3 Lỗi avrdude: stk500_getsync(): not in sync: resp=0x30

Lỗi nạp code avrdude stk500_getsync attempt 10 of 10

Ý nghĩa

Có rất nhiều tình huống làm phát sinh lỗi này, sau đây là những lí do thường hay gặp:

1. Cổng Serial trên Arduino đang được sử dụng, không thể upload chương trình.
  1. Chưa cài đặt bootloader.
  2. Chưa cài đặt driver cho Arduino.

Khắc phục

1. Tháo bất cứ dây nào đang cắm vào chân Digital 0 (chân RX) trên mạch Arduino của bạn.
  1. Cài đặt bootloader cho Arduino.
  2. Cài đặt driver cho Arduino.

4. Lỗi phần cứng

4.1 Đèn đóm trên Arduino tắt đột ngột

Lí do đầu tiên bạn nên nghĩ đến đó là lỏng cáp USB hay nguồn điện, việc này khá đơn giản.

Nếu đã kiểm tra hệ thống điện rồi mà mọi thứ vẫn như cũ thì chỉ có một khả năng là bạn đã làm chập mạch (short circuit) - để 2 cực âm/dương của nguồn điện chạm nhau.

Với Arduino UNO R3 Dòng board mạch này vốn dĩ được trang bị cầu chì tự phục hồi (PTC Resettable Fuses). Nếu cường độ dòng điện vượt quá 500mA, cầu chì sẽ tự ngắt. Sau một khoảng thời gian nào đó, cầu chì tự đóng và Arduino UNO R3 lại hoạt động bình thường. Tôi đã từng bị như vậy nhiều lần và mạch Arduino UNO R3 tới nay vẫn hoạt động tốt, do đó bạn không cần phải quá bận tâm.
Với Arduino Nano

Khác với Arduino UNO R3, dòng mạch này không được trang bị cầu chì tự phục hồi, do đó nó sẽ không thể tự cứu bản thân mình được. Tuy nhiên không phải là không thể cứu.

ở trường hợp này, Arduino UNO R3 đã bị cháy 1 con diode loại schotky là MBR0520LT1 0.5A 20V tại vị trí như hình vẽ ...

Lỗi nạp code avrdude stk500_getsync attempt 10 of 10

Công việc của bạn là dùng mỏ hàn tháo con diode này ra và và thay con khác vào là xong. Nếu không có linh kiện thay thế, bạn có thể hàn tắt 2 đầu mạch lại với nhau như hình dưới ...

Lỗi nạp code avrdude stk500_getsync attempt 10 of 10

Vâng, chỉ đơn giản thế thôi, hãy cắm điện trở lại và thưởng thức. Nhưng nếu bạn làm chập mạch nữa thì tôi không biết đâu đấy nhé ! Đây là một điểm yếu trog thiết kế của Arduino Nano khiến khá nhiều người than vãn.

4.2 Vi điều khiển trên board Arduino phát nhiệt mạnh

Rõ ràng đây là một điều không tốt tí nào vì hầu hết các trường hợp, con chip này hầu như sinh ra một lượng nhiệt thấp đến mức bạn khó lòng phát hiện ra bằng tay được. Thực sự thì rất khó biết được nguyên nhân gây ra hiện tượng này. Lời khuyên của mình là Lập tức ngắt nguồn điện và hỏi những người có kinh nghiệm về Arduino ngay khi có thể !

Mình đã từng bị hỏng 1 con ATmega328P-PU trên Arduino UNO R3 mà không biết tại sao, vì đang hoạt động bình thường thì bỗng nhiên nó phát nhiệt mạnh và hư luôn (không upload được chương trình lên nữa).