Mục lục:

Hướng dẫn ghi bộ nạp khởi động Atmega328P-PU (Optiboot): 12 bước
Hướng dẫn ghi bộ nạp khởi động Atmega328P-PU (Optiboot): 12 bước

Video: Hướng dẫn ghi bộ nạp khởi động Atmega328P-PU (Optiboot): 12 bước

Video: Hướng dẫn ghi bộ nạp khởi động Atmega328P-PU (Optiboot): 12 bước
Video: How To Burn Bootloader To Arduino Nano 2024, Tháng mười một
Anonim
Hướng dẫn ghi bộ nạp khởi động Atmega328P-PU (Optiboot)
Hướng dẫn ghi bộ nạp khởi động Atmega328P-PU (Optiboot)

Tuy nhiên, một giude bộ nạp khởi động Atmega đang ghi. Nhưng lần này tôi cá với lần thử đầu tiên bạn sẽ thành công !!

Đây là hướng dẫn ghi bộ nạp khởi động của Nick Gammons cho bo mạch Arduino.

Bước 1: Một vài từ

Một vài từ
Một vài từ

Vi điều khiển Atmega328P-PU là một trong những chip Arduino phổ biến nhất được sử dụng rộng rãi trên toàn thế giới. Nhưng quan trọng nhất, Atmega vẫn làm được những gì mà Uno R3 tiêu chuẩn có thể làm được. Lý do chính khiến tôi yêu thích bộ vi điều khiển này là chế độ "Nguồn điện thấp". Tôi đã viết một số bản phác thảo mới cho một số cảm biến và tôi đang thử nghiệm chúng trong một thời gian.

Quay lại một vài năm khi tôi bắt đầu chơi với Arduino, đơn hàng đầu tiên của tôi là vi điều khiển Atmega328P. Sau đó, tôi nhận ra rằng những thứ tôi đặt hàng từ Aliexpress là những con chip trống. Những con chip này rất rẻ trên Ali, bạn có thể mua chúng với giá từ 1,40 $. Nhưng chúng không chứa Uno Bootloader (Optiboot) và không có nó, tôi không thể tải lên bất kỳ bản phác thảo nào. Gãy mạnh ha ?? !! Đó thực sự là một cơn mưa rào đối với tôi …… Vì vậy, tôi đang tìm cách ghi bộ nạp khởi động vào các con chip. Tôi đã thử 5 hoặc 6 phương pháp, nhưng không may mắn. Sau một tuần, tôi tìm thấy một chủ đề trên một diễn đàn trang web đề cập đến hướng dẫn ghi bộ nạp khởi động của Nick Gammon. Nỗ lực đầu tiên và THÀNH CÔNG !!: D Bây giờ tôi sẽ chỉ cho bạn cách ghi bộ nạp khởi động để trống chip Atmega328P-PU một cách dễ dàng mà không làm rối tung mọi thứ trong Arduino IDE.

Bước 2: Bootloader là gì? (Optiboot)

Bộ nạp khởi động là một chương trình nhỏ (tệp HEX, 0,5Kbyte) cho phép bạn tải các bản phác thảo lên bộ nhớ flash trực tiếp từ Arduino IDE. Tệp HEX luôn chạy trước chương trình chính và đó là lý do tại sao nó cần thiết.

Bỏ qua bộ nạp khởi động:

-Bộ vi điều khiển vẫn CÓ THỂ ĐƯỢC LẬP TRÌNH! (Vâng, hoàn toàn có thể), nhưng bạn sẽ cần một lập trình viên AVR chuyên dụng để làm điều đó. Và nó không hề rẻ!

- Nó không thể được lập trình thông qua Arduino IDE.

Các bộ nạp khởi động được hỗ trợ của phương pháp này:

Atmega8 (1024 byte)

Atmega168 Optiboot (512 byte)

Atmega328 Optiboot (cho Uno, v.v. ở 16 MHz) (512 byte)

Atmega328 (8 MHz) cho Lilypad, v.v. (2048 byte)

Atmega32U4 dành cho Leonardo (4096 byte) Atmega1280 Optiboot (1024 byte)

Atmega1284 Optiboot (1024 byte)

Atmega2560 với các bản sửa lỗi cho sự cố bộ đếm thời gian cơ quan giám sát (8192 byte)

Atmega16U2 - bộ nạp khởi động trên chip giao diện USB của Uno

Atmega256RFR2 - bộ nạp khởi động trên bảng Pinoccio Scout

Mã cho các bộ nạp khởi động sau được tích hợp trong bản phác thảo và sẽ được tải xuống tùy thuộc vào chữ ký nào được phát hiện.

Vì vậy, chúng tôi có mọi thứ chúng tôi cần.

Bước 3: Arduino Sketches Master

Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master

Trước hết, bạn cần thư viện arduino.

Tải xuống từ đây:

Hoặc tải xuống từ đây.

Sau khi bạn đã tải xuống, hãy giải nén nó vào các thư viện Arduino dành cho các phiên bản cũ hơn và tìm kiếm Board Programmer. Mở nó và chạy Board Programmer.ino.

Bước 4: Thiết lập phần cứng

Thiết lập phần cứng
Thiết lập phần cứng
Thiết lập phần cứng
Thiết lập phần cứng
Thiết lập phần cứng
Thiết lập phần cứng
Thiết lập phần cứng
Thiết lập phần cứng

Có 3 cách để kết nối trước khi lập trình:

- Sử dụng lá chắn AVR ISP

- Arduino A đến Arduino B

- Và phương pháp breadboard

Trên hình bạn có thể thấy cách lên dây. Trên breadboard không thực sự cần các tụ gốm mà phải thêm vào tinh thể 16Mhz.

Tôi đang sử dụng lá chắn AVR ISP của mình lần này.

Mục tiêu của phương pháp này là chương trình đang sử dụng màn hình nối tiếp để truy cập bộ nhớ flash để ghi Optiboot (bộ nạp khởi động)

Bước 5: Lập trình

Lập trình!
Lập trình!
Lập trình!
Lập trình!

Sau khi thiết lập xong phần cứng, hãy chạy Board Programmer.ino!

Biên dịch và tải lên Arduino của bạn, nhưng không đóng cửa sổ !! Bạn sẽ cần nó:)

Quá trình tải lên sẽ mất vài giây.

Bước 6: Ngắt kết nối

Sau khi bạn tải lên bản phác thảo, hãy ngắt kết nối Arduino khỏi PC của bạn và kết nối mọi thứ nếu bạn định thực hiện việc này trên breadboard.

Nếu bạn sử dụng lá chắn AVR, hãy đặt chip Atmega vào ổ cắm ZIF và "khóa" nó xuống.

Rất quan trọng: Miễn là phần cứng không được thiết lập, bộ xử lý không được nhận VCC !! Bằng cách đó bạn có nguy cơ bị thiệt hại !!

Bước 7: Kết nối

Liên kết!
Liên kết!

Vâng! Phần cứng đã được thiết lập và mọi thứ đã sẵn sàng, chúng tôi kết nối Arduino với PC.

Tiếp theo, mở Serial monitor và đặt tốc độ truyền 115200 và bạn sẽ thấy điều này.

Trong màn hình nối tiếp, bạn có thể thấy rằng Arduino đã vào chế độ lập trình. Mát mẻ!!:)

Vì chúng ta muốn lập trình Uno (Atmega328P), hãy nhập "U" trên dấu nhắc tin nhắn và nhấn enter.

Bước 8: Trạng thái lập trình

Trạng thái lập trình!
Trạng thái lập trình!

Trong cửa sổ tiếp theo, bạn sẽ thấy điều này.

Chúng tôi sẽ không thoát hoặc Xác minh, hãy nhập G và nhấn enter!

Bước 9: Niềm vui bắt đầu!:)

Niềm vui bắt đầu!:)
Niềm vui bắt đầu!:)

Sau khi nhấn enter, bạn sẽ thấy điều này:

Đang xóa chip… Đang ghi bộ nạp khởi động…

Trang cam kết bắt đầu từ 0x7E00 Trang cam kết bắt đầu từ 0x7E80

Trang cam kết bắt đầu từ 0x7F00

Trang cam kết bắt đầu từ 0x7F80

Đã viết. Đang xác minh…

Không tìm thấy lỗi nào.

Viết cầu chì… LFuse = 0xFF

HFuse = 0xDE

EFuse = 0xFD

Khóa byte = 0xEF Hiệu chỉnh đồng hồ = 0x9E

Xong.

Chế độ lập trình đang tắt. Nhập 'C' khi sẵn sàng tiếp tục với chip khác…

Và ngày hạnh phúc !!: D Chip Atmega328P của bạn hiện đã sẵn sàng để tải lên các bản phác thảo!

Điều này thật dễ dàng phải không?:)

Bước 10: Một con chip mới

Nếu bạn muốn lập trình chip khác, hãy ngắt kết nối Arduino khỏi PC của bạn, hãy thay chip bằng một con chip trống. Kết nối lại Arduino và thực hiện lại các bước.

Nếu màn hình nối tiếp không phản hồi sau khi kết nối lại Arduino, đừng hoảng sợ chỉ cần đóng nó và mở một cái mới.

Bước 11: TỪ CHỐI TRÁCH NHIỆM !

TÔI KHÔNG SỞ HỮU BẤT KỲ NÀY!! Tất cả tín dụng đều thuộc về Nick Gammon !!

Tôi vừa chỉ ra phương pháp này trong Có thể hướng dẫn này.

Hy vọng bạn sẽ thấy điều này hữu ích.

Chúc một ngày tốt lành.

Bước 12: Khi Nội dung Kỳ lạ xảy ra

Khi điều kỳ lạ xảy ra
Khi điều kỳ lạ xảy ra
Khi điều kỳ lạ xảy ra
Khi điều kỳ lạ xảy ra

Gần đây tôi đã nhận được Arduino Nano này với bộ xử lý Atmega328P-MU.

Vì vậy, tôi đã thử tải lên một bản phác thảo cho nó, nhưng tôi không thể. Bộ xử lý không phản hồi bất cứ điều gì với tùy chọn Atmega328.

VÂNG! Vì vậy, có thể bộ nạp khởi động bị hỏng và cần viết lại. Tôi đã kết nối nó với một arduino khác và thực hiện quá trình ghi bộ nạp khởi động. Vẫn không có gì……!!!!

Được rồi, tôi cần một cái phanh (cà phê và một điếu thuốc) !! Cơ hội cuối cùng tôi đã chọn Arduino Uno một lần nữa làm mục tiêu. Hoàn tất tải lên

Tại thời điểm này, tôi có một Nano hoạt động giống như Arduino Uno. Tôi không biết tại sao điều này lại xảy ra nhưng tôi nghĩ điều này là do chữ ký của Bộ xử lý. Dù sao nó thực sự làm cho ngày của tôi và nó là một chút buồn cười:)

Đề xuất: