Bộ tải khởi động Arduino


9

Tôi rất mới với thế giới nhúng. Tôi đã chỉ làm việc trên S / W

Bất cứ ai có thể vui lòng giải thích cho tôi việc sử dụng Arduino Bootloader? Tôi muốn Arduino thực hiện một số phép toán đơn giản bằng cách sử dụng một số thành phần bổ sung phải được đưa vào chip.

Tôi có nhất thiết cần một bộ nạp khởi động không?

Câu trả lời:


10

Arduino về cơ bản chỉ là một vi điều khiển Atmel AVR, với các thiết bị điện tử hỗ trợ vừa đủ để cho phép nó hoạt động. AVR có đèn flash tích hợp để cho phép nó tắt các chương trình, nhưng để lập trình trực tiếp chip AVR, bạn cần một công cụ như STK-500 để thực hiện công việc. Arduino khắc phục điều này bằng cách có một giao diện USB nhỏ trên bo mạch và mã bộ tải khởi động Arduino đã có trên chip. Điều này cho phép ứng dụng phía PC chuyển các chương trình của bạn sang thiết bị và về bản chất, nó sẽ tự flash.

Vì vậy, điểm mấu chốt, nếu bạn có Arduino, bộ tải khởi động đã có sẵn và tự động thực hiện công việc của nó. Bạn mã hóa chương trình của mình trên PC, nhấn nút 'tải lên' trên IDE và trong vài phút, chương trình của bạn đang chạy trên Arduino. Trình tải khởi động thực hiện công việc của nó hoàn toàn trong suốt.

fwiw, cá nhân tôi có Arduino 2009, STK-500 và có thể lập trình trên kim loại trên các máy phát điện, nhưng không cần phải bỏ qua bộ tải khởi động của Arduino.


Tôi rất muốn xem thêm thông tin về việc sử dụng Arduino để lập trình một AVR.
Greg


@Greg thực sự có một bản phác thảo hỗ trợ arduino cho duemilanove để flash bộ nạp khởi động lên một atmega328 trần. Rõ ràng, chức năng này có thể được mở rộng để flash bất kỳ chương trình nào lên máy atmega328. Bạn không cần một đầu nối ISP. Về cơ bản, bạn biến micro arduino của bạn thành một ISP.
NickHalden

5

Arduino cần một bộ tải khởi động để lập trình các bản phác thảo của bạn qua serial / USB. Nếu không có nó, bạn cần một bộ lập trình hệ thống (ISP) AVR để lập trình bộ nhớ flash trong chip AVR trực tiếp.

Nếu bạn mua một Arduino, nó sẽ đi kèm với bộ tải khởi động đã bị đốt cháy trong chip AVR. Bạn chỉ cần lo lắng về nó nếu bạn đang xây dựng bảng của riêng mình.

Điều này sẽ giúp: Tôi không có khái niệm Arduino


4

Tôi sẽ đưa ra một câu trả lời lý thuyết hơn một chút; các câu trả lời khác là khá tốt từ một quan điểm thực tế. Bộ tải khởi động là mã nằm trong một phân đoạn đặc biệt của bộ nhớ flash. Mã nằm trong phân đoạn đó được phép thực hiện Hướng dẫn tự lập trình, cho phép sửa đổi bộ nhớ flash (tức là nơi mã người dùng cư trú) mà không cần lập trình viên thông thường (ví dụ: ISP lập trình trong hệ thống hoặc HVP lập trình điện áp cao) như STK500 hoặc AVRISP mkII.

Về nguyên tắc, UART Recipe Data Interrupt Service Routine (ISR) thực hiện một cuộc gọi hàm vào mã bộ tải khởi động sao chép hình ảnh chương trình được gửi một cách an toàn vào không gian chương trình người dùng trong bộ nhớ flash. Khi khởi động, bất kỳ chương trình nào trên chip đều bắt đầu chạy, nhưng nếu sớm nhận được dữ liệu nối tiếp được định dạng thích hợp, thì AVR sẽ chuyển sang chế độ tự lập trình. Có một số logic trong UART ISR chỉ trì hoãn mã khởi động trong một khoảng thời gian ngắn trong khi khởi động. Các chi tiết phức tạp hơn thế một chút, nhưng đó là ý tưởng cơ bản.

Cái hay của việc này là bạn có thể mua Arduino, và không gì khác, tải xuống Môi trường phát triển tích hợp (IDE) miễn phí, và bắt đầu viết Arduino Sketches (chương trình), và tải chúng xuống AVR giống như vậy, qua USB không kém với chip IC FTDI nhỏ lạ mắt được tích hợp vào bo mạch Arduino.

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.