Vấn đề lập trình Mini Pro qua Arduino là ISP


9

Tôi vừa chọn một cặp bo mạch nhân bản Arduino Mini Pro 5v (Nội địa, được bán tại Microcenter, hiện có giá $ 4 USD) và tôi muốn sử dụng Uno của mình như một ISP như tôi đã làm với chip ATmega328 và ATtiny85 trước đây. Tôi đã lập trình Uno với các hướng dẫn tại trang hướng dẫn ArduinoISP và tôi đã kết nối Uno với Mini Pro bằng cách sử dụng các hướng dẫn tại trang này . Tôi không thể lấy Arduino IDE hoặc avrdude từ dòng lệnh để lập trình thành công các bảng này cho dù tôi có cố gắng gì. Ngoại trừ việc tôi có thể sử dụng Arduino IDE để ghi bộ tải khởi động mới vào Mini Pro.

Tôi cũng đã kết nối với đèn LED trạng thái (chân 7, 8 và 9) và tôi có thể thấy rằng lập trình viên có tình trạng lỗi (chân 8) khi tôi cố gắng lập trình bất cứ điều gì ngoài bộ tải khởi động.

Đây là dòng lệnh avrdude của tôi, nơi tôi đã cố gắng đặt cầu chì trên Mini Pro:

avrdude -P /dev/tty.usbmodema0121 -b 57600 -c avrisp -p atmega328p -U lfuse:w:0xff:m -U hfuse:w:0xdb:m -U efuse:w:0xfd:m

Tôi nhận được sau đây từ avrdude:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c

avrdude done.  Thank you.

Tôi không gặp vấn đề gì với việc sử dụng khá nhiều thiết lập chính xác này, nhưng với chip ATmega328 hoặc ATtiny85 trên bảng mạch với avrdude trong quá khứ, vì vậy tôi không biết chuyện gì đang xảy ra ở đây.

Tôi cũng đã xem mã ArduinoISP và tôi không thực sự chắc chắn resp = 0x1c là gì. Tôi không thấy giá trị 0x1c được xác định trong phần Định nghĩa STK của mã, vì vậy tôi không chắc điều gì có thể gây ra điều này.

Bất kỳ con trỏ ở đây sẽ được đánh giá cao. Và vâng, tôi biết rằng tôi có thể sử dụng bảng Uno với chip ATmega328 được kéo để sử dụng như một lập trình viên. Nhưng tôi muốn có thể ghi đè lên khu vực bootloader bằng mã của riêng tôi giống như tôi có thể với chip ATmega328 thông thường.

Cảm ơn!

Câu trả lời:


7

Sau khi chọc ngoáy thêm một chút, hóa ra vấn đề của tôi là tốc độ truyền. Tôi có thể làm cho nó hoạt động bằng cách đặt nó vào năm 19200, chỉ chậm hơn một chút. Ngoài ra, bạn có thể sửa đổi bản phác thảo ArduinoISP để cho phép tốc độ truyền cao hơn. Tôi đã sử dụng bài đăng này để kích hoạt 115200 baud và tôi đã có thể sử dụng thành công avrdude với tỷ lệ cao hơn.

Không chắc chắn làm thế nào tôi bỏ lỡ điều này trước đây, nhưng ít nhất nó cũng dễ giải quyết.

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.