Tôi không có khái niệm Arduino


8

Tôi đã vật lộn với việc tạo ra một Arduino trong một thời gian (đã thành công trong việc tạo ra một phiên bản bánh mì sử dụng cáp lập trình viên ISP ). Họ nói rằng bộ tải khởi động Arduino được tạo ra để không cần mạch ngoài để lập trình ATmega8 . Nhưng khi tôi nhìn vào sơ đồ, có một mạch bình thường cần thiết cho kết nối nối tiếp. Vậy thì bộ nạp khởi động thực sự làm gì?


1
không có mạch bên ngoài là một yêu cầu vô lý ... để nói chuyện với máy tính qua cổng nối tiếp, ít nhất bạn cần một bộ chuyển đổi tín hiệu, như một loại MAX 232; hoặc như arduino làm, bạn có thể nói chuyện trực tiếp với TTL UART với chip giao diện USB như FTDIs.
Abbeyatcu

Câu trả lời:


12

Bộ tải khởi động là một chương trình nhỏ trong flash của AVR, nó không bao giờ bị ghi đè và chạy bằng powerup. Công việc của bộ nạp khởi động là đọc dữ liệu chương trình từ UART và ghi nó vào flash bên trong. Không có bộ tải khởi động, cách duy nhất để tải mã là sử dụng ISP.

AVR ATMega8 không có mã trong flash. Mã có thể được tải lên thông qua các chân ISP (lập trình trong hệ thống), sử dụng một lập trình viên ISP ISP (hoặc thậm chí là một Arduino khác).

Đối với Arduino, ISP chỉ được sử dụng một lần (lúc sản xuất) - để tải lên bộ tải khởi động nhỏ. Khi bật nguồn, bộ tải khởi động chạy và giao tiếp với UART nối tiếp (chân TX + RX). Bây giờ, Arduino có thể được lập trình thông qua các chân nối tiếp bằng giao thức STK500.

Vì các chân nối tiếp (thường) được kết nối với USB FTDI sang chip nối tiếp, Arduino cũng có thể được lập trình qua USB.


Vì vậy, bạn đang nói rằng nếu tôi có chip atmega8 với bộ tải khởi động được đốt trong đó, tôi có thể loại bỏ tất cả các mạch cho ISP và chỉ cần kết nối các chân thích hợp từ nối tiếp với arduino? Ngoài ra, bạn có thể cho tôi biết làm thế nào tôi sẽ kết nối nối tiếp với atmega8
Rick_2047

2
Một khi bạn có bộ nạp khởi động, đây là một mạch Arduino rất tối thiểu. Kết nối PC của bạn (thông qua bộ chuyển đổi mức TTL) với các chân TX / RX / GND. profmason.com/wp-content/uploads/2008/09/arduinopins.jpg Xem câu hỏi này để biết thêm chi tiết: chiphacker.com/questions/2512/ftdi-basic-breakout-5v
Toby Jaffey

1
Max 232 chuyển đổi nối tiếp mức RS232 (như từ đầu nối 9 chân trên PC) sang tín hiệu mức TTL (5v) phù hợp để nói chuyện với Arduino / AVR. Mạch max 232 có thể được thay thế bằng chip nối tiếp USB FTDI sang TTL để kết nối với PC.
Toby Jaffey

2
Một lưu ý nhỏ ở đây: Bộ tải khởi động Arduino chỉ lắng nghe trên cổng nối tiếp cho mã mới trong một thời gian rất ngắn khi khởi động. Bộ tải khởi động Arduino cũ hơn chờ vài giây trước khi bắt đầu thực thi mã. Bộ tải khởi động mới hơn khởi động rất nhanh và phải được thiết lập lại bởi dòng DTR từ FT 232. Nếu bạn có kế hoạch sử dụng max 232, hãy tải lên bộ tải khởi động cũ hơn. Ngoài ra, hãy kiểm tra Sparkfun ( sparkfun.com/commerce/tutorial_info.php?tutorials_id=104 ) để biết một số hướng dẫn tuyệt vời về AVR.
bpijls

2
Đó là mã đối tượng AVR thực tế. Arduino đánh bại một số nền tảng đối thủ (ví dụ: Stamp cơ bản) ở chỗ nó chạy mã đối tượng được biên dịch không phải là trình thông dịch.
Toby Jaffey


1

Chúng có thể có nghĩa là nếu bạn mua một Arduino Uno được lắp ráp sẵn, bạn cũng không cần phải mua một lập trình viên. Giống như với rất nhiều starterkits điện tử khác. Bạn có thể lập trình bảng Arduino Uno chỉ bằng cáp usb (A> B).

Tuy nhiên, nếu bạn định xây dựng một Arduino của riêng mình, tất nhiên bạn sẽ cần một mạch bên ngoài (ví dụ như một lập trình viên ISP ISP) hoặc các loại công cụ Max 232 hoặc FTDI.


0

Ý tưởng đằng sau bộ tải khởi động Arduino là bạn không cần bất kỳ chuyên môn nào phần cứng hoặc mạch để lập trình lại chúng, so với chương trình ban đầu của nó, hoặc vi điều khiển cũ hơn, thường cần một lập trình viên chuyên dụng (như PicKit2 cho PIC MCU). Bộ tải khởi động cho phép lập trình qua kết nối nối tiếp cơ bản.

Tất nhiên, tại thời điểm đó, bạn cần liên kết nối tiếp, điển hình là bộ chuyển đổi rs 232 từ TTL sang RS232. Sau đó, các cổng nối tiếp bị loại bỏ, usb thành nối tiếp trở nên phổ biến, cho phép điều đó thay thế tối đa hoặc tương tự. Và bây giờ, việc sử dụng vi điều khiển Atmel kích hoạt USB cho phép thậm chí điều đó là không cần thiết, do đó, một ic với các bộ phận thụ động tối thiểu có thể cung cấp các chức năng Arduino và USB thành Nối tiếp. Bây giờ bạn chỉ cần một cáp usb và một vài thụ động để tải lên một bản phác thảo. Việc lập trình ban đầu của bộ nạp khởi động vẫn yêu cầu lập trình ICSP truyền thống.

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.