Làm cách nào tôi có thể sửa lỗi không đồng bộ AVRdude khi lập trình Arduino qua cáp nối tiếp USB?


9

Tôi đang cố gắng xây dựng ánh sáng xung quanh này cho PC. Điều này hoạt động hoàn hảo trên Arduino Uno của tôi. Bước tiếp theo của tôi là làm cho nó sử dụng "Arduino trên bánh mì" . Vì vậy, tôi đã mua một con chip ATmega328 trống và đốt bộ tải khởi động Arduino (cho bo mạch "Arduino Duemilanove w / ATmega328") trên nó bằng Arduino IDE và USBasp; và tôi biết điều này đã được tải đúng cách vì chip ATmega này hoạt động tốt trên Uno.

Sau đó, tôi đã thực hiện bộ chuyển đổi USB nối tiếp bằng FT232RL ; nhưng trình điều khiển của nó không cài đặt trên PC của tôi (Windows 7 x64). Tôi nghi ngờ tôi đã quá nóng chip FTDI gắn trên bề mặt và giết chết nó trong khi hàn bằng tay.

Vì vậy, tôi đã để nó sang một bên và có cây cầu chuyển đổi nối tiếp USB này : (Xin lỗi vì những bức ảnh nhảm nhí) Tôi đã sử dụng một ST 232CN bổ sung trên bảng mạch của mình, để chuyển đổi các mức điện áp từ RS232 sang TTL, như thể hiện trong phần này trang . Và điều này hoạt động tốt, như tôi đã xác minh từ một bài kiểm tra loopback. Và tôi đã kết nối chân 9 của ST 232 với chân 2 của ATmega và chân 10 đến chân 3.

Khi tôi cố tải lên một ví dụ nhấp nháy từ Arduino IDE, tôi gặp lỗi này:

Binary sketch size: 1026 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00

Khi tôi thực hiện tải lên dài dòng (Shift + Tải lên), tôi gặp lỗi / thông báo này:

avrdude: usbdev_open(): did not find any USB device "usb"

Ngoài ra, tôi đã thử thêm các điện trở kéo lên 1k ở chân 2 và 3 của ATmega, nhưng không được. Vì vậy, tôi đoán vấn đề bây giờ là trong giao tiếp nối tiếp từ ST 232 đến ATmega? Và có bất kỳ kết nối đặc biệt nào với pin Reset của ATmega không? Tôi đã kéo nó lên đến 5V với điện trở 10k.


Một sơ đồ và hoặc hình ảnh của thiết lập Breadboard của bạn sẽ giúp.
sptrks

3
Bạn đã thiết lập lại chip ngay trước đó, cùng lúc với, hoặc ngay sau khi ra lệnh tải lên? Bất cứ khi nào tôi gặp phải lỗi 'không đồng bộ', nó đều liên quan đến thời gian tương đối đó. Đối với Breadboard của tôi và Eclipse / AVRDude, việc bỏ ghim pin đặt lại ngay trước hoặc ngay khi tôi nhấp vào lệnh tải lên là thời điểm thích hợp. Nhưng cũng kiểm tra xem PC của bạn có thực sự nhìn thấy bộ chuyển đổi khi bạn cắm nó không.
JRobert

1
@potato_in_my_ear - Định dạng phù hợp để đăng giải pháp không phải là chỉnh sửa mà là câu trả lời. Nhìn bên dưới, và bạn sẽ thấy một hộp có tiêu đề "Câu trả lời của bạn" để nhập vào đó. Sau khi nhập, mọi người sẽ bỏ phiếu cho câu trả lời của bạn và bạn có thể 'chấp nhận' bằng cách nhấn dấu kiểm bên trái câu trả lời.
Kevin Vermeer

1
@potato_in_my_ear: Tôi rất vui vì đã giúp. Bạn là một quý ông và một học giả - Tôi sẽ đưa ra nhận xét của mình.
JRobert

2
Giải pháp là mọi người ngừng cung cấp câu trả lời trong các bình luận!
Kevin Vermeer

Câu trả lời:


6

Bất cứ khi nào tôi gặp phải lỗi 'không đồng bộ hóa', điều đó có liên quan đến việc tôi chỉ thiếu thời gian đặt lại (hoặc quên hoàn toàn thiết lập lại!). Đối với Breadboard của tôi và Eclipse / AVRDude, việc không nối đất pin đặt lại ngay trước hoặc cùng lúc khi tôi nhấp vào nút tải lên là thời điểm thích hợp. Nhưng cũng kiểm tra xem PC của bạn có thực sự nhìn thấy bộ chuyển đổi khi bạn cắm nó vào không.

Các bảng arduino sau này được xây dựng để thiết lập lại bất cứ khi nào một kết nối nối tiếp được thực hiện và được lập trình bởi bộ tải khởi động. Bài viết blog này mô tả cách thức hoạt động của nó, và thậm chí thú vị hơn, làm thế nào để hack nó vào các bảng trước đó. Không nên quá khó để đặt nó lên một chiếc bánh mì nếu bạn muốn. Tất nhiên, con chip cần phải có bộ tải khởi động tương thích (mà bạn đã đặt vào trong đó). Đối với bánh mì, tôi chỉ thực hiện điệu nhảy nút reset / click chuột.


Tôi đã tìm thấy một số người nói rằng bạn có thể lấy chuỗi công cụ avr để tự thiết lập lại bằng cách chỉnh sửa avrdude.conf ; ở đây (trong ý kiến). Nhưng tôi không chắc làm thế nào để làm điều đó. Bạn có thể giúp. Tôi ghét nhấn thiết lập lại mọi lúc ..
Anubis

Điều này sẽ yêu cầu hỗ trợ phần cứng trên bo mạch Arduino hoặc bảng mạch mà sau này Aduino đã tích hợp sẵn; mã một mình không thể làm điều đó. Nó dựa trên một tụ điện từ DTR nối tiếp đến thiết lập lại và kéo lên thiết lập lại. Nếu bạn có một cái cũ hơn hoặc một chiếc bánh mì, bạn sẽ cần thêm nó. Câu hỏi EE StackEx này và bài viết blog tôi trích dẫn sẽ chỉ cho bạn đi đúng hướng.
JRobert

2

Như @JRobert đã nói trong các bình luận, thời điểm nối đất và tháo gỡ chốt thiết lập lại trên ATmega đã đúng. Tiếp tục căn cứ pin thiết lập lại của ATmega khi bạn nhấp vào "Tải lên" và giống như khi nó hiển thị "Đang tải lên", hãy bỏ qua nó.


Chỉ cần có một arduino mini và tôi biết rằng tôi cần nhấn nút đặt lại để tải lên mã, nhưng tôi không thể tìm ra khi nào !!! Điều này làm việc cho tôi. Cảm ơn.
Bọt biển Bob

0

Tôi đã có cùng một lỗi tôi đã thấy được đăng trên một số trang web RE: Thông báo Arduino "avrdude: stk500_getsync (): không đồng bộ hóa: resp = 0x00" hoặc tương tự.

Tôi thấy rằng nếu tôi loại bỏ bất cứ thứ gì được vá vào D0 ([D0] chân SỐ KHÔNG, cách xa các giắc cắm USB và Power, cũng đọc "RX").

Tôi đã thử hai máy tính khác nhau và gặp lỗi giống nhau và phát hiện ra rằng: 1- Tôi gỡ dây ra hoặc mở mạch tới [D0] 2- Tải lên Arduino 3- vá lại dây đã tháo hoặc đóng mạch mở vào [ D0]

Tôi chỉ gặp phải lỗi đó khi tải lên và đây là giải pháp của tôi. bây giờ

Hy vọng nó giúp.

Cảm thấy tốt khi cuối cùng cung cấp một số thông tin hữu ích cho cộng đồng!


1
Phản hồi có chút không rõ ràng: Câu bắt đầu "Tôi thấy rằng nếu tôi ..." không đầy đủ, không chắc bạn đang cố nói gì ở đó. Xin hãy chỉnh sửa, cảm ơn.
Anindo Ghosh

Câu trả lời này đề cập đến việc có mạch xung đột được kết nối với các chân nối tiếp phần cứng atmega.
Chris Stratton

0

Điều này đã khắc phục sự cố của tôi, đi đến Trình điều khiển và Cài đặt, thay thế Boards.txt trong arduino IDE ...

Tôi có arduino MEGA 2560 R3 và tôi gặp vấn đề tương tự

avrdude: stk500_getsync (): không đồng bộ hóa: resp = 0x00

http://arduino.cc/en/Main/ArduinoBoardADK


-1

Để sửa lỗi "avrdude: stk500_getsync (): không đồng bộ hóa: resp = 0x00". Chỉ cần cài đặt FTDI Driver phiên bản 2.8.24.0. Có một số vấn đề với trình điều khiển mới v2.8.28.0.


-1

Trong khi mã hóa mã từ Arduino IDE trên máy tính của bạn, vui lòng rút pin RX của thẻ Arduino 0. Bạn sẽ nhận được mã tải lên thành công. Cắm pin RX và thử. Hoặc, bạn có thể đặt (có thể) RX của bluetooth cho RX của Arduino để TX được kết nối với nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.