Nạp bootloader cho vi điều khiển trên Arduino

1. Tại sao ta cần bootloader ?

Bootloader là một chương trình nhỏ được nạp sẵn vào chip vi điều (VĐK) khiển trên Arduino. Bạn lập trình cho Arduino một cách dễ dàng được là nhờ thứ này. Nếu không có bootloader, bạn sẽ không thể upload chương trình lên vi điều khiển trên Arduino theo cách thông thường được, mà phải cần một số phần cứng khác hỗ trợ (gọi là Programmer)

Trên thực tế, vi điều khiển trên mạch Arduino đã có sẵn bootloader rồi nên bạn không cần thao tác gì cả. Tuy nhiên, với một số trường hợp cần nạp bootloader, bạn sẽ cần đọc bài viết này để biết cách thực hiện.

2. Nối dây

Bạn hãy nối dây trước theo sơ đồ sau (minh họa giữa 2 mạch Arduino sử dụng vi điều khiển ATmega328)

Bạn nên chú ý mạch Arduino của mình sử dụng vi điều khiển nào để nối dây cho đúng. 

Arduino có bootloader

Arduino chưa có bootloader

(ATmega328/168/8)

Arduino chưa có bootloader

(ATmega32u4)

Arduino chưa có bootloader

(ATmega1280/2560)

GND GND GND GND
5V 5V 5V 5V
D10 (SS) RESET RESET RESET
D11 (MOSI) D11 (MOSI) D16 (MOSI)  D51 (MOSI)
D12 (MISO) D12 (MISO) D14 (MISO) D50 (MISO)
D13 (SCK) D13 (SCK) D15 (SCK) D52 (SCK)

3. Tiến hành thực hiện

Bước 1: Mở Arduino IDE

Bước 2: Mở chương trình mẫu Arduino ISP

Bước 3: Nạp chương trình mẫu Arduino ISP lên mạch Arduino đang có bootloader

  • Vào menu Tools -> Boards để chọn mạch Arduino đang có bootloader
  • Vào menu Tools -> Serial Port để chọn cổng Serial đang sử dụng
  • Vào menu Tools -> Programmer chọn AVR ISP
  • Bấm Ctrl + U để upload chương trình

Bước 4: Nạp bootloader

  • Vào menu Tool -> Boards để chọn mạch Arduino cần được nạp bootloader
  • Vào menu Tool -> Programmer chọn Arduino as ISP
  • Vào menu Tools chọn Burn Bootloader
  • ... bạn hãy đợi một lát là xong.

Sau khi nạp bootloader xong, bạn sẽ thấy đèn LED 13 trên cả 2 mạch Arduino nhấp nháy báo hiệu bootloader đã được nạp thành công.

lên
14 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

#define

#define là một đối tượng của ngôn ngữ C/C++ cho phép bạn đặt tên cho một hằng số nguyên hay hằng số thực. Trước khi biên dịch, trình biên dịch sẽ thay thế những tên hằng bạn đang sử dụng bằng chính giá trị của chúng. Quá trình thay thế này được gọi là quá trình tiền biên dịch (pre-compile).

lên
9 thành viên đã đánh giá bài viết này hữu ích.

KeySweeper - Keylogger trên nền tảng Arduino cho bàn phím không dây

Đây là một bài báo được mình dịch lại từ The Hacker News đăng vào ngày 13/01/2015. Mình dịch bài này là để các bạn thấy được một điều rằng ứng dụng Arduino không phải chỉ dừng ở việc điều khiển đèn LED nhấp nháy, điều khiển động cơ hay hiển thị/truyền phát thông tin đơn thuần,... nó còn làm được những thứ to lớn hơn thế.

lên
5 thành viên đã đánh giá bài viết này hữu ích.