¿Qué no puede hacer el ATtiny que puede hacer el Arduino?

12

Inspirado en este video de YouTube de Make Magazine , me gustaría usar los chips ATtiny en lugar del Arduino para la mayoría de mis proyectos. El autor del video advierte que algunas funciones de Arduino no funcionarán en los ATtinys. ¿Existe una lista completa de lo que es y no es compatible?

DudeOnRock
fuente
1
Por lo que leí (que no es mucho), no todos los ATtinys tienen suficiente flash para el gestor de arranque Arduino. Sin embargo, probablemente aún pueda compilar a través de Arduino y cargar a través de AVRdude por separado.
Ignacio Vazquez-Abrams
1
Aquí no se trata del gestor de arranque (puede usar un programador externo), pero algunas bibliotecas simplemente no se compilan en código de trabajo (incluso entendí que tampoco todos arrojarán errores). Que yo sepa, no hay una lista de qué funciones funcionan y cuáles no, pero no está de más aprender a programar directamente el hardware de todos modos porque la mayoría de las funciones de Arduino vienen con un poco de sobrecarga. No debe querer funciones como pinMode();y digitalWrite();en un ATtiny, directamente a los registros apropiados DDRx, PORTxdirectamente. Se pueden encontrar muchas funciones similares.
jippie
1
Para la gran mayoría de los proyectos de Arduino que he visto, los chips ATtiny serían muy capaces. En su mayor parte, estaría programando a través de SPI en lugar del gestor de arranque, y escribiendo código en C o Assembly en lugar de la típica copia y pegado de Arduino de los tutoriales.
Kurt E. Clothier
@Kurt en realidad hay puertos de gran parte de las bibliotecas de tiempo de ejecución de Arduino, e incluso software USB, pero, por supuesto, estos tienen sobrecarga.
Chris Stratton
1
@ChrisStratton Buen punto. Me imagino que alguien que no sabe la diferencia entre un ATtiny desnudo o incluso un chip ATmega y una placa Arduino no tiene idea de lo que eso significa (puertos, depuración en tiempo de ejecución, software USB, etc.), así que dudo que alguna vez tendrían que usarlos. Si es así, entonces realmente necesitan aprender un poco más sobre lo que están haciendo para poder resolver problemas simples a medida que se encuentran. Por otra parte, supongo que esa es la mentalidad de todas las personas anti-arduino como yo.
Kurt E. Clothier

Respuestas:

10

Actualización: para responder mejor a la pregunta, ATTiny's puede hacer cualquier cosa que no requiera hardware que falta de ATTiny, que incluye el puerto serie de hardware, hardware i2c o interrupciones múltiples. Dado que esto está oculto en las Bibliotecas Arduino, a menos que comprenda bien cómo funcionan o lean los archivos de la biblioteca real, cosas como la biblioteca Wire (hardware i2c) no funcionarán.

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

Por ejemplo, un ATTINY84 tiene 1 interrupción, sin UART de hardware (serie o i2c) y un pequeño puñado de pines GPIO, menos espacio de programa y mucho menos ram, pero viene en un paquete de 14 pines.

Un ATMEGA328 tiene 2 interrupciones, 1 UART de hardware, más memoria RAM más espacio de programa y más GPIO, lo cual es excelente, si realmente lo necesita.

Además, la mayoría de los ATTiny no tienen multiplicación de hardware, por lo que un compilador tendría que hacer una multiplicación sin base 2 en el software.

Finalmente, Arduinos confía en un gestor de arranque en lugar de programación spi, por lo que necesita un ATTiny con al menos 4 ~ 8 kb flash para que funcionen con el gestor de arranque Arduino.

ATTiny44 / 45/84/45/2313 son populares como micro-Arduinos. Tienen aproximadamente una cuarta u octava parte del carnero y el flash de un ATMega328 que utiliza el Arduino Uno oficial.

Hay muchos ATTiny, por lo que no se puede decir nada sobre ellos.

Ver también aquí: http://hlt.media.mit.edu/?p=1695

Transeúnte
fuente
5

La mayoría de los attinys no tienen un módulo USART de hardware, por lo que no podrá comunicarse con ellos a través de serie. Para algunos attinys en lugar de periféricos de hardware I2C y SPI dedicados, existe un periférico USI simplificado para el que debe escribir un poco de código de pegamento para implementar la comunicación SPI o I2C. Algunas attinys no tienen ADC.

En general, debe tener más cuidado al elegir attiny para su proyecto, porque estos tienden a no tener un conjunto completo de características disponibles en atmega328 de Arduino. Por ejemplo, attiny2313 tiene un UART pero no tiene ADC, attiny44 sí tiene ADC, pero no tiene un UART, etc.

Simplemente consulte la tabla de selección de microcontroladores Atmel y una hoja de datos al principio.

miceuz
fuente
1
La falta de un hardware UART! = No podrá comunicarse a través de serie.
Chris Stratton
@ChrisStratton es cierto, puedes hacerlo
explotar a
1

Un punto trivial si es relevante, además de las excelentes respuestas ya publicadas:

La mayoría de las placas Arduino, sin contar el Pro Mini / Pro Micro y quizás otras raras, contienen además del microcontrolador principal, ya sea un segundo AVR o alguna otra parte de la interfaz USB. Esto permite no solo la programación del Arduino desde una computadora, sino también la depuración del terminal serial en tiempo de ejecución. La misma conexión USB también proporciona energía al Arduino.

Si bien, obviamente, el requisito de potencia de ATTiny se habrá abordado en su diseño, el código de depuración en tiempo de ejecución utilizando software de terminal puede ser bastante útil.

Anindo Ghosh
fuente
1
Algunas tarjetas attiny resuelven ese problema con el software USB.
Chris Stratton