Cài đặt firmware khác trên Arduino


12

Có thể nâng cấp phần sụn trên Arduino để nó có thể làm được nhiều việc hơn như thay đổi quá mức / quá mức để cung cấp thêm sức mạnh xử lý. Để làm điều này, bạn rất có thể phải flash lại chip, vậy làm thế nào để hoàn thành nó?


2
Hầu hết các chức năng mới được cung cấp bởi các thư viện và lập trình. Bạn đang nói về loại "nhiều thứ" hơn?
TheDoctor

TheDoctor đã nói gì, ý của bạn là gì? Ngoài ra, bạn đang đề cập đến "phần sụn" là gì? Phần mềm / HĐH trên tàu?
hichris123

Tôi có nên xóa câu hỏi không
JVarhol

@JVarhol Nếu bạn có thể làm cho nó rõ ràng hơn, không, hãy giữ nó. Chỉ cần giải thích cho chúng tôi chính xác những gì bạn nghĩ về ...
hichris123

Tôi biết bạn có thể cài đặt chương trình cơ sở mới trên chip nối tiếp USB để nó có thể giả lập bàn phím
TheDoctor

Câu trả lời:


7

Để trả lời khía cạnh câu hỏi của bạn về "phần sụn" trên MCU ATmega328p được sử dụng trong hầu hết các bo mạch Arduino:

Không có phần sụn nào trên ATmega ngoài bộ nạp khởi động. Các chương trình bạn viết đang chạy trực tiếp trên phần cứng.

Có một số cài đặt "cầu chì" nhất định được đặt với một lập trình viên ISP . Tuy nhiên, chỉ có 24 trong số chúng (ba byte) và chúng chủ yếu liên quan đến cấu hình cấp thấp và không phải là những gì tôi nghĩ bạn đang hỏi:
nhập mô tả hình ảnh ở đây

Ngoài ra còn có Bootloader , đây là một chương trình nhỏ nằm trong một phần riêng biệt của bộ nhớ chương trình của MCU và cho phép nó tự cập nhật khi khởi động (đó là cách tất cả các arduinos được lập trình). Tuy nhiên, nó chỉ chạy trong một khoảng thời gian ngắn khi khởi động và bị xóa hoàn toàn khỏi bộ nhớ sau khi MCU đã nhảy vào chương trình chính.

Cuối cùng, có các MCU phụ trợ (ATmega16U2 / 8U2) trên hầu hết các bảng arduino được sử dụng làm giao diện nối tiếp USB, có thể được cập nhật để hoạt động khác nhau (ví dụ: mô phỏng bàn phím / chuột), nhưng một lần nữa, đây thực sự không phải là một sự thay đổi đối với bộ xử lý lõi, do đó, liệu nó có được tính là "cài đặt phần sụn khác không" tùy thuộc vào cách bạn xác định arduino.

Thực sự, tôi rất muốn đọc phần dữ liệu ATmega328P . Đây là tài liệu cho MCU về cơ bản tạo thành "Arduino". Nó nên giải quyết những gì dường như là quan niệm sai lầm.


5

Lưu ý biểu đồ bên dưới, liên quan đến việc bật / tắt thiết bị của bạn cho các loại khác nhau, cho biết mối quan hệ. Kết quả là bạn thấy hầu hết các Arduino chạy ở mức 5V và tốc độ xung nhịp là 16 MHz. Trong khi có một số biến thể 3.3V chạy ở tốc độ 8 MHz.

Freq vs Vcc

Tuy nhiên, thư viện lõi được cung cấp với IDE thường có # cụ thể cho cả hai tốc độ F_CPU 8 và 16 MHz, không sử dụng công thức ở hầu hết các nơi.

Do đó có thể làm những gì bạn yêu cầu. Tuy nhiên, bạn sẽ tìm thấy những hạn chế thư viện cốt lõi ảnh hưởng. Giảm tỷ lệ chi phí so với lợi ích, theo ý định đó. Và sau đó có khả năng người ta sẽ rời Stock IDE và các thư viện cốt lõi sang một phương thức makefile hơn.


Rõ ràng nó có thể được ép xung lên 20 mHz
TheDoctor

@TheDoctor - đó không phải là ép xung. ATmega328p được đánh giá là 20 Mhz. Arduinos thực sự được ép xung tới 16 Mhz.
Sói Connor

@FakeName có, ý tôi là bạn có thể sửa đổi một bo mạch Arduino để có bộ cộng hưởng không cần thiết để điều chỉnh ở 20 mHz
TheDoctor

Ồ, một lưu ý phụ khác. Bạn thường có thể vượt quá khu vực hoạt động an toàn mà không có vấn đề lớn . Tôi có một số bo mạch chạy 16 Mhz với đường ray 3,3V mà không gặp vấn đề gì. Chúng có thể có vấn đề ổn định ở nhiệt độ cực cao, nhưng nó dường như hoạt động tốt ở nhiệt độ phòng.
Sói Connor
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.