Apa yang tidak bisa dilakukan ATtiny yang Arduino bisa?

12

Terinspirasi oleh video youtube Make Magazine ini , saya ingin menggunakan chip ATtiny alih-alih Arduino untuk sebagian besar proyek saya. Penulis video memperingatkan bahwa beberapa fungsi Arduino tidak akan berfungsi pada ATtinys. Apakah ada daftar lengkap tentang apa yang didukung dan tidak?

DudeOnRock
sumber
1
Dari apa yang saya baca (yang tidak diakui sangat banyak), tidak semua ATtinys memiliki cukup flash untuk bootloader Arduino. Anda mungkin masih dapat mengkompilasi melalui Arduino dan mengunggah melalui AVRdude secara terpisah.
Ignacio Vazquez-Abrams
1
Ini bukan tentang bootloader di sini (Anda dapat menggunakan programmer eksternal), tetapi beberapa perpustakaan tidak mengkompilasi ke kode kerja (saya bahkan mengerti tidak semua akan melempar kesalahan juga). Sejauh pengetahuan saya, tidak ada daftar fungsi mana yang berfungsi dan mana yang tidak, tetapi tidak ada salahnya untuk belajar memahami cara memprogram perangkat keras secara langsung karena sebagian besar fungsi Arduino datang dengan overhead yang cukup sedikit. Anda tidak harus menginginkan fungsi seperti pinMode();dan digitalWrite();pada ATtiny, langsung ke register yang sesuai DDRx, PORTxsecara langsung. Banyak fungsi serupa dapat ditemukan.
jippie
1
Untuk sebagian besar proyek Arduino yang saya lihat, chip ATtiny akan banyak yang mampu. Untuk sebagian besar, Anda akan memprogram melalui SPI alih-alih bootloader, dan menulis kode dalam C atau Majelis alih-alih salin dan tempel Arduino khas dari tutorial.
Kurt E. Clothier
@Kurt sebenarnya ada port dari banyak perpustakaan runtime Arduino, dan bahkan perangkat lunak USB - tetapi tentu saja ini memiliki overhead.
Chris Stratton
1
@ ChrisStratton Poin bagus. Saya hanya membayangkan bahwa seseorang yang tidak tahu perbedaan antara ATtiny yang telanjang atau bahkan chip ATmega dan papan Arduino tidak tahu apa artinya itu (port, run-time debugging, perangkat lunak USB, dll), jadi saya ragu mereka akan perlu menggunakannya. Jika demikian, maka mereka benar-benar perlu belajar sedikit lebih banyak tentang apa yang mereka lakukan sehingga mereka mampu menyelesaikan masalah sederhana seperti yang mereka temui. Kemudian lagi, saya kira itu semacam pola pikir semua orang anti-arduino seperti saya.
Kurt E. Clothier

Jawaban:

10

Pembaruan: Untuk menjawab pertanyaan dengan lebih baik, ATTiny dapat melakukan apa pun yang tidak memerlukan perangkat keras yang tidak ada pada ATTiny, termasuk port serial perangkat keras, perangkat keras i2c, atau beberapa gangguan. Karena ini disembunyikan di Perpustakaan Arduino, kecuali jika Anda memiliki pemahaman yang baik tentang cara mereka bekerja atau membaca file perpustakaan yang sebenarnya, hal-hal seperti Perpustakaan kawat (perangkat keras i2c) tidak akan berfungsi.

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

Misalnya ATTINY84 memiliki 1 Interrupt, tidak ada Hardware UART (Serial atau i2c) dan segelintir pin GPIO, ruang program lebih sedikit dan ram lebih sedikit tetapi datang dalam paket 14 pin.

ATMEGA328 memiliki 2 Interupsi, 1 UART Perangkat Keras, lebih banyak ruang program, dan lebih banyak GPIO, yang sangat bagus, jika Anda benar-benar membutuhkannya.

Selain itu, sebagian besar ATTiny tidak memiliki perkalian perangkat keras, jadi kompiler harus melakukan perkalian non-basis-2 dalam perangkat lunak.

Akhirnya, Arduinos mengandalkan bootloader alih-alih pemrograman spi, jadi Anda memerlukan ATTiny dengan minimal 4 ~ 8kb flash agar mereka dapat bekerja dengan bootloader Arduino.

ATTiny44 / 45/84/45/2313 populer sebagai micro-Arduinos. Mereka memiliki sekitar seperempat atau delapan ram dan flash ATMega328 yang digunakan Arduino Uno resmi.

Ada banyak ATTiny, jadi tidak ada pernyataan tunggal tentang semuanya.

Lihat juga di sini: http://hlt.media.mit.edu/?p=1695

Pejalan kaki
sumber
5

Sebagian besar attinys tidak memiliki modul USART perangkat keras, sehingga Anda tidak akan dapat berkomunikasi dengan mereka melalui serial. Untuk beberapa attinys alih-alih perangkat I2C dan SPI perangkat keras yang berdedikasi ada perangkat USI disederhanakan di mana Anda harus menulis sedikit kode lem untuk menerapkan komunikasi SPI atau I2C. Beberapa attinys tidak memiliki ADC.

Secara umum, Anda harus lebih berhati-hati ketika memilih attiny untuk proyek Anda, karena mereka cenderung tidak memiliki fitur lengkap yang tersedia di atmega328 Arduino. Misalnya attiny2313 memang memiliki UART tetapi tidak memiliki ADC, attiny44 memang memiliki ADC, tetapi tidak memiliki UART, dll.

Cukup periksa tabel pemilihan mikrokontroler Atmel dan lembar data di awal.

miceuz
sumber
1
Kurangnya UART perangkat keras! = Tidak akan dapat berkomunikasi melalui serial.
Chris Stratton
@ ChrisStratton benar, Anda dapat menggedornya dengan meniru melalui USI
miceuz
1

Poin sepele jika relevan, di atas dan di atas jawaban yang sangat baik sudah diposting:

Kebanyakan papan Arduino, tidak termasuk Pro Mini / Pro Micro dan mungkin yang lain jarang, mengandung selain mikrokontroler utama, baik AVR kedua atau bagian antarmuka USB lainnya. Hal ini memungkinkan tidak hanya pemrograman Arduino dari komputer, tetapi juga debugging terminal serial run-time. Koneksi USB yang sama juga memberikan daya ke Arduino.

Walaupun jelas kebutuhan daya ATTiny akan dibahas dalam desain Anda, kode debug saat dijalankan menggunakan perangkat lunak terminal bisa sangat berguna.

Anindo Ghosh
sumber
1
Beberapa papan attiny mengatasi masalah itu dengan perangkat lunak USB.
Chris Stratton