Sự khác biệt của bộ tải khởi động Arduino Nano ATmega328P


7

Có hai bộ tải khởi động ATmega328P, cũ và hiện tại. Sự khác biệt giữa các bộ tải khởi động là gì?

Tôi biết rằng Nanos được bán bởi Arduino sử dụng bộ tải khởi động mới nhưng tôi không thể tìm thấy bất kỳ ghi chú phát hành nào về bộ tải khởi động.


từ những gì tôi có thể thấy, bộ tải khởi động "cũ" ???/bootloaders/atmega/ATmegaBOOT_168_atmega328.hexvà cái mới ???/bootloaders/optiboot/optiboot_atmega328.hex- ???phụ thuộc vào hệ thống của bạn, nhưng phải dễ tìm - trực tuyến, xem github.com/Optiboot/optiboot
Jaromanda X

1
Tôi khởi động tất cả các bo mạch dựa trên chip 328P của mình là Arduino Uno 16 MHz, sau đó tôi không cần phải lo lắng về việc chọn đúng loại bo mạch.
CrossRoads

Câu trả lời:


14

Bộ tải khởi động hiện được phân phối trên bo mạch Arduino Nano chính thức và được chọn thông qua Công cụ> Bộ xử lý> Bộ xử lý> ATmega328P của Arduino IDE sau khi chọn Công cụ> Bảng> Arduino Nano là phiên bản optiboot tương tự được sử dụng bởi Arduino / Genuino Uno: https://github.com /arduino/ArduinoCore-avr/blob/master/boards.txt#L152

nano.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex

https://github.com/arduino/ArduinoCore-avr/blob/master/boards.txt#L72

uno.bootloader.file=optiboot/optiboot_atmega328.hex

Bộ tải khởi động được chọn thông qua Công cụ> Bộ xử lý> ATmega328P ( Bộ tải khởi động cũ) là bộ tải khởi động "ATmegaBOOT" .

Như được sử dụng bởi định nghĩa phần cứng Nano, có hai sự khác biệt đáng kể giữa hai bộ tải khởi động:

  1. Optiboot sẽ không đi vào vòng lặp thiết lập lại vô tận sau khi thiết lập lại watchdog. ATmegaBOOT sẽ .
  2. Optiboot dự kiến ​​giao tiếp tải lên ở mức 115200 baud . ATmegaBOOT, 57600 . Đây là lý do tại sao các bảng cũ không hoạt động với lựa chọn Công cụ> Bộ xử lý> ATmega328P và ngược lại.

Có một sự khác biệt rất đáng kể giữa hai bộ tải khởi động, đáng buồn thay, bạn sẽ không được hưởng lợi từ định nghĩa phần cứng / bo mạch Arduino Nano mới: Optiboot sẽ phù hợp với phần khởi động 0,5 kB, trong khi ATmegaBOOT yêu cầu phần khởi động 2 kB. Thật không may, Arduino đã quên thay đổi cầu chì BOOTSZ cho phù hợp và vì vậy cơ hội giải phóng 1,5 kB bộ nhớ flash quý giá cho người dùng Nano đã bị mất. Việc Arduino sẵn sàng phát hành phần cứng thiếu sót đã có tiền lệ lịch sử .

Tôi chưa thể tìm thấy bất kỳ ghi chú phát hành nào về bộ tải khởi động.

Ghi chú phát hành của Arduino vẫn chưa thích ứng với thực tế là các gói phần cứng có thể được phát hành độc lập với các bản phát hành IDE kể từ Arduino IDE 1.6.2. Có một lưu ý về thay đổi bộ nạp khởi động trong ghi chú phát hành IDE cho bản phát hành IDE tiếp theo:

https://github.com/arduino/Arduino/commit/ec179e5af67b7f1eeb5e46d22034798f8b24b7cb

Ngoài ra, bạn có thể tham khảo lịch sử cam kết:

https://github.com/arduino/ArduinoCore-avr/commit/1b14cc07331268e95eddcce2cc67e29ed667e62f


Nano có thể được flash với bộ tải khởi động hay có sự khác biệt về phần cứng mà booloader phụ thuộc vào không?
Claus

3
Không có sự khác biệt về phần cứng. Nếu bạn đang flash bộ tải khởi động, lời khuyên của tôi là hãy làm như vậy với Công cụ> Bảng> Arduino / Genuino Uno được chọn vì sau đó bạn nhận được tất cả các lợi ích của optiboot, bao gồm bộ nhớ flash thêm 1,5 kB. Chỉ cần nhớ rằng bạn cần phải có bảng Uno khi bạn sử dụng Nano của mình sau đó.
per1234

1
* Đã chọn bảng Uno
per1234
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.