ATtiny không thể làm gì mà Arduino có thể?


12

Lấy cảm hứng từ video youtube Make Magazine này , tôi muốn sử dụng chip ATtiny thay vì Arduino cho hầu hết các dự án của tôi. Tác giả video cảnh báo rằng một số chức năng Arduino sẽ không hoạt động trên ATtinys. Có một danh sách đầy đủ về những gì được và không được hỗ trợ?


1
Từ những gì tôi đọc (không được thừa nhận nhiều), không phải tất cả ATtinys đều có đủ flash cho bộ tải khởi động Arduino. Bạn có thể vẫn có thể biên dịch thông qua Arduino và tải lên thông qua AVRdude riêng.
Ignacio Vazquez-Abrams

1
Đây không phải là về bộ tải khởi động ở đây (bạn có thể sử dụng một lập trình viên bên ngoài), nhưng một số thư viện chỉ không biên dịch thành mã làm việc (tôi thậm chí còn hiểu rằng tất cả sẽ không có lỗi). Theo hiểu biết tốt nhất của tôi, không có danh sách chức năng nào hoạt động và chức năng nào không hoạt động, nhưng dù sao cũng không hiểu cách lập trình phần cứng trực tiếp vì hầu hết các chức năng Arduino đều có chi phí khá cao. Bạn không phải muốn các chức năng như pinMode();digitalWrite();trên một ATtiny, vừa phải vào sổ đăng ký thích hợp DDRx, PORTxtrực tiếp. Nhiều chức năng tương tự có thể được tìm thấy.
jippie

1
Đối với phần lớn các dự án Arduino mà tôi đã thấy, chip ATtiny sẽ có nhiều khả năng. Đối với hầu hết các phần, bạn sẽ lập trình thông qua SPI thay vì bộ nạp khởi động và viết mã bằng C hoặc hội thay vì sao chép Arduino thông thường và dán từ hướng dẫn.
Kurt E. Clothier

@Kurt thực sự có các cổng của phần lớn các thư viện thời gian chạy Arduino và thậm chí cả phần mềm USB - nhưng tất nhiên những cái này có phí.
Chris Stratton

1
@ChrisStratton Điểm tốt. Tôi chỉ tưởng tượng rằng ai đó không biết sự khác biệt giữa chip ATtiny trần hoặc thậm chí chip ATmega và bo mạch Arduino không biết ý nghĩa của nó là gì (cổng, gỡ lỗi thời gian chạy, USB phần mềm, v.v.), vì vậy tôi nghi ngờ họ sẽ cần phải sử dụng chúng. Nếu vậy, thì họ thực sự cần phải tìm hiểu thêm một chút về những gì họ đang làm để họ có khả năng giải quyết các vấn đề đơn giản như họ gặp phải. Sau đó, một lần nữa, tôi đoán đó là suy nghĩ của tất cả những người chống arduino như tôi.
Kurt E. Clothier

Câu trả lời:


10

Cập nhật: Để trả lời tốt hơn câu hỏi, ATTiny có thể làm bất cứ điều gì không yêu cầu phần cứng mà ATTiny đang thiếu, bao gồm cổng nối tiếp phần cứng, i2c phần cứng hoặc nhiều ngắt. Vì điều này được ẩn trong Thư viện Arduino, trừ khi bạn hiểu rõ về cách chúng hoạt động hoặc đọc các tệp thư viện thực tế, những thứ như thư viện Dây (phần cứng i2c) sẽ không hoạt động.

Từ http://forum.arduino.cc/index.php/topic,5582.0.html :

Ví dụ, ATTINY84 có 1 Ngắt, không có UART phần cứng (Nối tiếp hoặc i2c) và một số ít chân GPIO, ít không gian chương trình và ít ram hơn nhưng đi kèm trong gói 14 pin.

ATMEGA328 có 2 Ngắt, 1 UART phần cứng, nhiều ram không gian chương trình hơn và nhiều GPIO hơn, thật tuyệt, nếu bạn thực sự cần nó.

Ngoài ra, hầu hết các ATTiny không có phép nhân phần cứng, do đó, một trình biên dịch sẽ phải thực hiện phép nhân không phải là cơ sở 2 trong phần mềm.

Cuối cùng, Arduinos dựa vào bộ tải khởi động thay vì lập trình spi, vì vậy bạn cần có ATTiny với đèn flash ít nhất 4 ~ 8kb để chúng hoạt động với bộ tải khởi động Arduino.

ATTiny44 / 45/84/45/2313 phổ biến dưới dạng micro-Arduinos. Họ có khoảng một phần tư hoặc tám phần ram và flash của ATMega328 mà Arduino Uno chính thức sử dụng.

Có rất nhiều ATTiny, vì vậy không có tuyên bố nào có thể nói về tất cả.

Cũng xem tại đây: http://hlt.media.mit.edu/?p=1695


5

Hầu hết các attinys không có mô-đun USART phần cứng, vì vậy bạn sẽ không thể liên lạc với họ qua serial. Đối với một số attinys thay vì các thiết bị ngoại vi phần cứng I2C và SPI chuyên dụng, có một thiết bị ngoại vi USI đơn giản hóa mà bạn phải viết một chút mã keo để thực hiện giao tiếp SPI hoặc I2C. Một số attinys không có ADC.

Nói chung, bạn phải cẩn thận hơn khi chọn attiny cho dự án của mình, bởi vì những thứ đó có xu hướng không có đầy đủ các tính năng có sẵn trong Arduino của atmega328. Ví dụ: attiny2313 không có UART nhưng không có ADC, attiny44 không có ADC, nhưng không có UART, v.v.

Chỉ cần kiểm tra bảng lựa chọn vi điều khiển Atmel và bảng dữ liệu ở đầu.


1
Thiếu phần cứng UART! = Sẽ không thể giao tiếp qua nối tiếp.
Chris Stratton

@ChrisStratton đúng, bạn có thể cắn nó mô phỏng qua USI
mouseuz

1

Một điểm tầm thường nếu có liên quan, hơn và hơn các câu trả lời xuất sắc đã được đăng:

Hầu hết các bo mạch Arduino, không kể Pro Mini / Pro Micro và có lẽ là hiếm khác, có chứa bộ vi điều khiển chính, hoặc là một bộ điều khiển thứ hai hoặc một số giao diện USB khác. Điều này cho phép không chỉ lập trình Arduino từ máy tính mà còn gỡ lỗi thiết bị đầu cuối nối tiếp thời gian chạy. Kết nối USB tương tự cũng cung cấp năng lượng cho Arduino.

Mặc dù rõ ràng yêu cầu năng lượng của ATTiny sẽ được giải quyết trong thiết kế của bạn, mã gỡ lỗi trong thời gian chạy bằng phần mềm đầu cuối có thể khá tiện dụng.


1
Một số bảng attiny giải quyết vấn đề đó với phần mềm USB.
Chris Stratton
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.