Compatibilidad de software ATtiny2313 vs ATtiny84

Hago y vendo una variante del programador USBtiny AVR. Utiliza un ATtiny2313 sincronizado a 12 MHz y utiliza un lenguaje ensamblador ajustado a mano (que alguien más escribió, es un proyecto de hardware abierto/firmware abierto).

En un intento por reducir los costos, me gustaría pasar de usar el 2313 a usar un ATtiny84 en su lugar.

Puedo averiguar cómo ajustar el firmware para los diferentes pines. Pero la gran pregunta es si ese lenguaje ensamblador ajustado a mano se ejecutará de la misma manera en el 84.

Además de los pines y los registros, ¿todo el rango de chips ATtiny es compatible desde la perspectiva del software?

Respuestas (2)

Como se describe en el documento Conjunto de instrucciones de AVR de 8 bits , solo las partes "Reduced Core tinyAVR" tienen una temporización diferente a las demás. Las piezas que se incluyen en esta designación son ATtiny4, ATtiny5, ATtiny9 y ATtiny10.

Tanto el '2313 como el '84 son arquitectura "avr25" según lo define GCC , por lo que sus conjuntos de instrucciones son 100% compatibles.

La respuesta corta es: no, algunos chips ATtiny admiten más instrucciones que otros. Además, algunos chips admiten hardware interno diferente al de otros. Sin embargo, la mayoría de las instrucciones son idénticas.

Puede verificar el conjunto de instrucciones compatibles con el dispositivo al final de la hoja de datos " completa " del dispositivo con su código actual. Y puede consultar el Manual del conjunto de instrucciones para obtener más detalles.

Por supuesto, el compilador / ensamblador debería arrojar errores cuando intenta usar hardware / instrucciones que no existen en el dispositivo. Simplemente configure para compilar para el otro dispositivo. Una buena fuente debe compilarse sin advertencias ni errores, pero debe hacerse primero antes de intentar portar al otro dispositivo.

Esta aplicación solo usa GPIO y USI, que creo que está presente en ambos chips. Creo que puedo refinar las diferencias de hardware entre los dos. Simplemente no quería tener que rehacer un montón de lenguaje ensamblador muy afinado.