ATTiny85 không hoạt động sau khi ghi bootloader


8

Tôi đang gặp vấn đề với ATTiny85 của mình. Tôi nên đề cập đến việc tôi sử dụng Arduino như một ISP để lập trình nó.

ATTiny của tôi hoạt động tốt cho đến khi tôi quyết định rằng tôi cần tăng tốc độ xung nhịp từ 1 MHz lên 20 MHz, vì vậy tôi đã chọn ATTiny85 ở 20 MHz từ menu Boards và sau đó nhấp vào Công cụ> Burn Bootloader. Nhưng điều đó thật ngu ngốc, vì bây giờ ATTiny của tôi hoàn toàn không hoạt động. Tôi không thể tải lên bản phác thảo trên đó và nếu tôi thử tôi nhận được thông báo này:

avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.

Vì vậy, câu hỏi của tôi cho bạn sẽ là, có cách nào để thiết lập lại những gì tôi đã làm? Hoặc thậm chí tốt hơn, để làm cho nó hoạt động ở 20 MHz?


2
Bạn có nhớ các giá trị cầu chì bạn đặt không? Nó có thể vẫn còn trên màn hình nếu bạn cuộn lên một chút. Bạn không thể đặt ATtiny85 thành 20 MHz với bộ dao động bên trong, bạn đã kết nối nguồn đồng hồ chưa?
jippie

Không, tôi không kết nối một nguồn đồng hồ. Tôi vừa đốt bộ tải khởi động với attiny 20 mhz được chọn làm bảng (và tất nhiên, với attiny được kết nối với arduino).
Calin

Tôi có một arduino khác, có cách nào để thiết lập lại cầu chì sử dụng nó không?
Calin

Tại sao bạn cần một Arduino khác? Theo hiểu biết, bạn gạch ATtiny của bạn, không phải Arduino của bạn. Lỗi messege trong câu hỏi của bạn chỉ theo cùng một hướng: Arduino là OK. Nếu bạn nghi ngờ về Arduino của mình, hãy ngắt kết nối mọi thứ trừ USB, sau đó lập trình Blinkví dụ. Nếu nó hoạt động tốt, bạn có thể quay lại ArduinoISP của mình (tôi tin rằng đó là tên của phần mềm lập trình bạn đang sử dụng).
jippie

2
Không biết các cài đặt cầu chì chính xác mà bạn đã sử dụng, chúng tôi không thể chắc chắn về những gì bạn thực sự đã làm. Trên thực tế, nếu bạn đã đặt đồng hồ ở mức 20 MHz, tất cả những gì bạn cần làm là kết nối nguồn đồng hồ bên ngoài, có thể là tinh thể, bộ cộng hưởng hoặc xung từ một mạch khác, miễn là nguồn đồng hồ bên ngoài là 20 MHz.
Kurt E. Clothier

Câu trả lời:


10

Tôi nghi ngờ bạn đã thiết lập các cầu chì của bộ điều khiển để sử dụng nguồn đồng hồ bên ngoài vì không thể có bộ dao động bên trong để chạy ở 20 MHz. Bạn có thể thổi sức sống mới vào bộ điều khiển của mình bằng cách kết nối tín hiệu đồng hồ với pin 2 CLKIvà thử đặt lại đồng hồ thành đồng hồ RC 8 MHz bên trong.

Thực tế, có một phiên bản 'cố định' của ArduinoISP có đầu ra đồng hồ trên pin kỹ thuật số 9. Tôi đã không tự kiểm tra đầu ra đồng hồ này, nhưng rất đáng để thử. Vì vậy, ngoài các kết nối bạn đã có giữa Arduino và ATtiny, hãy kết nối pin kỹ thuật số 9 của Arduino với pin 2 ATtiny85 (CLKI). Sau đó thử lập trình đồng hồ RC nội bộ 8 MHz.

Nếu bạn kiểm tra biểu dữ liệu chương 6.2 'Nguồn đồng hồ' để biết chi tiết.

Một phương pháp khác là sử dụng một lập trình viên điện áp cao, có thể dễ dàng ứng biến bằng Arduino .

BTW: Điều tương tự sẽ xảy ra khi bạn chọn nguồn đồng hồ RC <1 MHz , đồng hồ điều khiển của bạn trong trường hợp đó sẽ chạy quá chậm đối với phần mềm ArduinoISP tiêu chuẩn.


Cảm ơn! Vì vậy, tôi cần một nguồn năng lượng 12 v để làm điều này (mà hiện tại tôi không có). Tôi sẽ xem những gì tôi có thể làm để ứng biến. Có bất kỳ vấn đề nếu nguồn là một chút trên 12 v?
Calin

@Calin Bạn đang nói về "trên 12 V" như thế nào? Bạn có thể làm hỏng chip khá dễ dàng ... Một vài điện trở có thể được sử dụng để hạ điện áp xuống mức 12 V. Xem cái này: Electronics.stackexchange.com/questions/25038/ từ
Kurt E. Clothier

Được rồi cảm ơn! Tôi sẽ thử vào ngày mai vì bây giờ đã gần nửa đêm. Tôi sẽ cập nhật cho bạn!
Calin

Hãy thử các tùy chọn nguồn đồng hồ bên ngoài từ câu trả lời của tôi trước khi vô tình chiên bộ điều khiển với điện áp quá cao. Điện áp cao phải nằm trong khoảng từ 11,5 đến 12,5V (chương 20.7.1 trong biểu dữ liệu).
jippie

1
Cảm ơn bạn! Phiên bản "cố định" của ArduinoISP đã giúp tôi giải quyết vấn đề của mình! Tôi đã tải lên phiên bản cố định trên Arduino, ngắt kết nối Arduino và kết nối ATTiny như bình thường nhưng với chân 9 từ Arduino được kết nối với pin 2 của ATTiny (như bạn đề xuất). Sau đó, tôi đã mở Arduino IDE và chọn ATTiny85 (với xung nhịp 8 MHz bên trong) làm bảng của tôi và ArduinoISP làm Lập trình viên. Tôi đã bấm vào Công cụ> Burn Bootloader và mọi thứ đều ổn. Sau đó, tôi đã tải lên lại bản phác thảo ArduinoISP ban đầu từ thư mục Ví dụ và tôi có thể lập trình lại ATTiny bằng cách sử dụng Arduino làm Lập trình viên.
Calin

5

Như @jippie đã nói, đây đơn giản chỉ là vấn đề áp dụng nguồn đồng hồ bên ngoài (thực ra không có vấn đề gì cho dù nguồn xung nhịp là 20 MHz hay không, nó chỉ cần đạt 1 MHz hoặc hơn để quản lý tốc độ lập trình SPI của ArduinoISP).

Thay thế cho phiên bản ArduinoISP đã đề cập ở trên, bạn có thể dùng thử ScratchMonkey , ngoài việc tạo đồng hồ còn có phần mềm SPI để xử lý một số vấn đề về xung nhịp khác. Trừ khi bạn quản lý để vô hiệu hóa pin thiết lập lại của mình, không nên có lý do để sử dụng chương trình điện áp cao.

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.