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

Inspirándome 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. ¿Hay una lista completa de lo que es y no es compatible?

Por lo que leí (que ciertamente no es mucho), no todos los ATtinys tienen suficiente flash para el cargador de arranque Arduino. Sin embargo, probablemente aún pueda compilar a través de Arduino y cargar a través de AVRdude por separado.
No se trata del cargador de arranque aquí (puede usar un programador externo), pero algunas bibliotecas simplemente no compilan el código de trabajo (incluso entendí que tampoco todas arrojarán errores). Hasta donde yo sé, no hay una lista de qué funciones funcionan y cuáles no, pero no está de más aprender a entender cómo programar el hardware directamente 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, solo directamente a los registros apropiados DDRx, PORTxdirectamente. Se pueden encontrar muchas funciones similares.
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 ensamblado en lugar del típico copiar y pegar de Arduino de los tutoriales.
@Kurt en realidad hay puertos de gran parte de las bibliotecas de tiempo de ejecución de Arduino, e incluso USB de software, pero, por supuesto, estos tienen gastos generales.
Si bien puede exprimir mucho en un ATTiny, asegúrese de que su comparación de conveniencia sea con un ATmega simple en un circuito mínimo similar, y posiblemente un '168 desde una perspectiva de precio (los chips aún más pequeños no son necesariamente más baratos en pequeñas cantidades) .
@ChrisStratton Buen punto. Me imagino que alguien que no conoce la diferencia entre un chip ATtiny simple 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, USB de software, etc.), así que yo Dudo que alguna vez necesiten usarlos. Si es así, entonces realmente necesitan aprender un poco más sobre lo que están haciendo para que sean capaces de 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.

Respuestas (3)

Actualización: para responder mejor a la pregunta, ATTiny puede hacer cualquier cosa que no requiera el hardware que faltan los ATTiny, que incluyen el puerto serie del hardware, el hardware i2c o múltiples interrupciones. Dado que esto está oculto en las bibliotecas Arduino, a menos que tenga una buena comprensión de cómo funcionan o lea los archivos de la biblioteca real, cosas como la biblioteca Wire (hardware i2c) no funcionarán.

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

Por ejemplo, un ATTINY84 tiene 1 interrupción, no tiene 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 RAM, más espacio para programas y más GPIO, lo cual es genial, si realmente lo necesitas.

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 se basa en un gestor de arranque en lugar de programación spi, por lo que necesita un ATTiny con al menos 4 ~ 8 kb de flash para que funcionen con el gestor de arranque de Arduino.

ATTiny44/45/84/45/2313 son populares como micro-Arduinos. Tienen alrededor de un cuarto u octavo del ram y flash de un ATMega328 que usa el Arduino Uno oficial.

Hay muchos ATTiny, por lo que no se puede decir una sola declaración sobre todos ellos.

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

Desviarse del tema: ¿ha notado que incluso los precios de los clones han subido al menos un 50 % para hacer espacio para estos pequeños? ¿Qué piensas? También creo que las placas Attiny (si las hay) tienen más sentido para parpadear un par de LED que Arduino. Usé Pro-mini (wavgat 1 dólar uno) e incluso de repente se quedaron sin presupuesto.

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 una serie. Para algunos attinys, en lugar de periféricos de hardware I2C y SPI dedicados, hay 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. Algunos attinys no tienen ADC.

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

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

¡La falta de un UART de hardware! = no podrá comunicarse a través de la serie.
@ChrisStratton cierto, puedes emularlo a través de USI

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

La mayoría de las placas Arduino, sin contar la Pro Mini / Pro Micro y quizás otras raras, contienen además del microcontrolador principal, 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 energía de ATTiny se habrá abordado en su diseño, la depuración del código en tiempo de ejecución utilizando el software de terminal puede ser bastante útil.

Algunas placas attiny resuelven ese problema con el software USB.