¿Usando el SDK de Arduino con cualquier AVR?

Si tomo cualquier microcontrolador basado en Atmel AVR del estante, ¿podré escribir código para él usando el SDK de Arduino?

Respuestas (1)

El SDK de Arduino (es decir, el núcleo de Arduino y las bibliotecas enviadas por defecto) admite un conjunto específico de placas, que a su vez utilizan un conjunto específico de microcontroladores AVR8. Este es un subconjunto del conjunto total de microcontroladores AVR8 que vende ATMEL. Los diversos AVR8 usan el mismo conjunto de instrucciones que ya conoce, pero varían en términos de velocidad de reloj máxima, SRAM + tamaños de flash, periféricos y número de pines. El software principal de Arduino se ocupa de esas diferencias, pero solo para los AVR8 que se utilizan en el conjunto de placas compatibles.

Entonces, si uno diseña su propia placa, usando un AVR8 que también se usa en una placa Arduino compatible, y tiene una forma de (re)programar este microcontrolador, entonces son tan buenos como la placa compatible original, desde el principio. Familia de placas Arduino. Así son todos los clones de "Arduino" en el mercado.

En cuanto al resto de los AVR8, el soporte para ellos se puede agregar creando un núcleo Arduino personalizado y bibliotecas. Por ejemplo 'MIT - High Low Tech' attiny85 core, o Arduino-Tiny core para attiny85. Hay otros núcleos personalizados similares generados/contribuidos por el usuario.

Tenga en cuenta que los microcontroladores AVR8 también tienen una firma de hardware que identifica el número de pieza. Esto es algo que el programador comprueba en el momento de programar la pieza a través del ISP.

Algunas personas consideran el IDE de Arduino como parte de ese SDK. Tenga en cuenta que el IDE se puede usar para escribir programas y programar cualquier AVR8, siempre que se hayan agregado núcleos/bibliotecas para el AVR8, una definición de "placas" creada para permitir la compilación y programación del uC.

Además, las direcciones de registro varían según el controlador. PORTB en un ATmega8 está en una dirección completamente diferente a la de un ATmega328. Por lo tanto, es muy complicado qué controladores exactos se pueden programar desde IDE. También se menciona que no todas las funciones y bibliotecas de Arduino funcionan en todos los AVR, pero no hay una lista definitiva de cuáles funcionarán y cuáles no. Es prueba y error.