Xin chào các bạn. Trong bài hướng dẫn hôm nay, chúng ta sẽ biết cách Tải Bootloader vào Atmega328 bằng Arduino UNO, điều này khá đơn giản và dễ dàng và là một bài hướng dẫn cơ bản.

Chúng ta đều biết rằng, Arduino UNO sử dụng Atmega328 làm vi điều khiển và bạn đã từng nghĩ đến việc sử dụng ATmega328 một mình thay vì sử dụng Arduino UNO hoàn chỉnh chưa? Nếu bạn chưa nghĩ đến thì hãy nghĩ ngay bây giờ :) Có, chúng ta có thể sử dụng Atmega328 một mình thay vì sử dụng nó cùng với bo mạch Arduino. Nhưng đó không phải là chủ đề của bài hướng dẫn hôm nay và tôi sẽ sớm giải thích cách chúng ta có thể sử dụng Atmega328 một mình.

Vấn đề đặt ra bây giờ là chúng ta sẽ làm gì với phần còn lại của bo mạch Arduino? Vì chúng ta đã lấy Atmega328 ra khỏi nó, vậy nên không còn cách nào sử dụng phần còn lại của bo mạch. Nhưng điều đó không hoàn toàn đúng, chúng ta có thể mua một Atmega328 mới và có thể sử dụng nó trong bo mạch Arduino này. Khi bạn gắn vi điều khiển Atmega328 mới vào bo mạch Arduino UNO của bạn, bạn sẽ thấy rằng nó không hoạt động? :( Nhưng không cần phải buồn vì khi nói đến công nghệ, thì luôn có giải pháp cho mọi vấn đề. :)

Thực tế, Arduino sử dụng một bootloader được cài đặt trên vi điều khiển Atmega328 của nó. Đó là loại trình điều khiển cho vi điều khiển Atmega328, làm cho nó tương thích với phần mềm Arduino. Thông thường, để viết mã cho Atmega328, chúng ta sử dụng trình biên dịch AVR, nhưng ở đây vì bootloader này, chúng ta có thể dễ dàng tải mã vào nó chỉ cần từ phần mềm Arduino. Vì vậy, khi bạn mua một vi điều khiển ATmega328 mới, thì có nhu cầu cần tải bootloader vào Atmega328. Sau khi cài đặt bootloader vào Atmega328, bây giờ nó đã sẵn sàng được cắm vào bo mạch Arduino UNO và được lập trình. Bạn cũng nên xem cách lấy tệp Hex từ Arduino. Vì vậy, hôm nay chúng ta sẽ thấy cách tải bootloader vào ATmega328, hãy bắt đầu nào.

Có nhiều cách để tải bootloader vào ATmega328 và tôi sẽ chia sẻ cách dễ nhất trong số chúng, đó là sử dụng hai bo mạch Arduino UNO.

Vậy bây giờ tôi giả định rằng bạn có hai bo mạch Arduino UNO và một số dây nối jumper với bạn.

Điều bạn cần làm là kết nối hai bo mạch Arduino UNO như được hiển thị trong hình bên dưới:


Trong hình trên, Arduino B đang hoạt động như một chương trình viên trong khi Arduino A có vi điều khiển ATmega328 mới mà chúng ta sẽ tải bootloader vào.

Bây giờ hãy kết nối Arduino B với máy tính của bạn qua cáp USB, và cả hai bo mạch Arduino sẽ lên nguồn vì chúng ta đã kết nối các chân 5V và GND của chúng.

Bây giờ hãy mở phần mềm Arduino của bạn, và nhấp vào menu File sau đó chọn Examples.

Trong mục Examples, mở ArduinoISP như hình dưới đây:


Bây giờ tải ví dụ ArduinoISP này lên bo mạch Arduino B trong hình đầu tiên, đó là bo mạch hoạt động như một chương trình viên.

Bây giờ bo mạch Arduino B đã sẵn sàng để tải bootloader vào bo mạch Arduino A.

Bây giờ hãy chọn bo mạch Arduino A từ Tools>Boards nhưng tôi sẽ không thực hiện điều đó vì trong trường hợp của chúng ta, chúng ta đang sử dụng Arduino UNO cho cả bộ chương trình và bộ được lập trình.

Bây giờ nhấp vào Tools và sau đó chọn Programmer và chọn Arduino as ISP từ các tùy chọn như được hiển thị trong hình dưới đây:

Bây giờ chúng ta đã hoàn tất tất cả các cài đặt và cuối cùng chúng ta đã sẵn sàng để Tải bootloader vào ATmega328, vì vậy bây giờ hãy nhấp vào Tools và sau đó nhấp vào Burn Bootloader như được hiển thị trong hình dưới đây:


Khi bạn nhấp vào Burn Bootloader này, các đèn TX/RX trên cả hai bo mạch Arduino UNO sẽ nhấp nháy khoảng 30 giây và khi chúng hoàn thành thì bạn sẽ thấy một thông báo trên phần mềm Arduino của bạn rằng Bootloader đã được tải lên, điều đó có nghĩa là bạn đã thành công trong việc tải bootloader vào vi điều khiển ATmega328 của bạn và bây giờ bạn có thể tải mã vào đó.

Sau khi tải bootloader lên, hãy vào Tools và chọn Programmer và chuyển nó trở lại thành AVRISP, nếu không bạn sẽ không thể tải mã vào Arduino UNO của bạn.

Nguồn: theengineeringproject

Post a Comment

Previous Post Next Post