SPI en ATtiny13

Mi entendimiento de la hoja de datos de ATtiny13 es que, aunque puede ISP el micro a través de "SPI", en realidad no tiene la funcionalidad para operar en un bus SPI con otros dispositivos (al menos no en hardware). ¿Está bien?

Respuestas (2)

Como todos los AVR, el ATtiny13 usa SPI para la programación. Sin embargo, no tiene un puerto SPI real que pueda usarse en aplicaciones. El software SPI podría implementarse, por supuesto, y Atmel tiene una nota de aplicación sobre la técnica:

http://www.atmel.com/dyn/resources/prod_documents/doc1108.pdf

SPI es el protocolo serial síncrono más simple que se pueda imaginar, y dado que solo requiere un registro de desplazamiento, uno podría preguntarse por qué no está implementado en ATtiny. Al mismo tiempo, la simplicidad del protocolo ofrece una solución: el bit-banging. SPI es más fácil de usar que UART, donde debe preocuparse por el tiempo, o Manchester.
Entonces, la razón por la que SPI se usa para programar es que es simple y confiable. La razón por la que no está implementado en hardware es que puede emularse fácilmente en software.

Interesante; Estaba al tanto de las bibliotecas de bitbanging, pero había asumido que el rendimiento no sería lo suficientemente bueno para comunicarse con muchos otros dispositivos; Todavía no estoy lo suficientemente familiarizado con el protocolo para saber qué tan problemático sería esto, pero parece que no es mucho. ¡Gracias!
@Chinasaur: como dije, con SPI no tiene que preocuparse por el tiempo. Como maestro SPI, proporciona los pulsos del reloj, por lo que no importa si uno de ellos llega un poco más tarde.
El SPI de hardware en un attiny sería más que solo el registro de desplazamiento, necesita más registros para controlarlo, una entrada en la tabla de vectores y enrutamiento para otra interrupción de hardware, enrutamiento de un reloj independiente al pin del reloj SPI y ejecutar el reloj de forma independiente de lo que está haciendo el subproceso principal de la CPU. Para una CPU en la que llegaron a proporcionar solo 64 bytes de RAM en términos de ahorro de costos, la eliminación de SPI probablemente les ahorró más que el tamaño total de la RAM.