AtmelStudio y Attiny – ecTiny841 (2-programacion)

Como hacer un programa para Attiny con Atmel Studio no es tan complicado como pudiera parecer, es lo que tiene haber trabajado con PICs durante tantísimos años.

Esta es una actualización de la «guia-burro» que me hice cuando aprendí, en este caso basandonos en este circuito con ecTiny841.

IMG_20150314_201702

Microcontrolador: Attiny841 (oscilador interno)
Pines A0,A1,A2,A3 – leds
Pin A7 – pulsador.
Alimentacion: 3.3V


 

Abrimos Atmel Studio
AtmelStudio62

Creamos un nuevo proyecto.
AtmelStudio62_01

Elegimos el tipo de proyecto, le damos nombre y carpeta donde guardarlo.
AtmelStudio62_02

Ahora elegimos microcontrolador.
AtmelStudio62_03

Ya tenemos un programa en blanco.
AtmelStudio62_04

En el que sustituiremos todo el código fuente por este otro:


 

#include <avr/io.h>
#define F_CPU 8000000UL            //clock frequency
#include <util/delay.h>

int main(void)
{
//A0-A5 salida A6 y A7 entrada
DDRA = 0b00111111;

while(1)
{
if (bit_is_clear(PINA,7)) // mientras PINA7 a nivel bajo
{ PORTA = 0b00000000; } // apago todo
else
{  // secuencia «coche fantastico»
PORTA = 0b00000001;
_delay_ms(150);
PORTA = 0b00000010;
_delay_ms(150);
PORTA = 0b00000100;
_delay_ms(150);
PORTA = 0b00001000;
_delay_ms(150);
PORTA = 0b00000100;
_delay_ms(150);
PORTA = 0b00000010;
_delay_ms(150);
}
}
}


 

Una vez pegado, compilamos (Built Solution) y revisamos la sección «output» para verificar que la compilación ha sido correcta.
AtmelStudio62_05

En este momento ya tenemos un fichero .HEX ubicado en la carpeta donde creamos el programa (ver primeros pasos de este tutorial)  que podemos grabar en el microcontrolador, para grabarlo existen diversas opciones ya sea por que tengamos un grabador integrado con el IDE de AtmelStudio o si por el contrario tenemos un grabador externo, como ejemplo:

– Externo: Grabación con AVRDudeSS y ArduinoISP.
– Integrado: Grabación con MKII y AtmelStudio.

 

 

Iniciación con ecTiny841 (1-preparativos)

He dado con un kit de iniciación basado en el Attiny841, para los que quieren algo pequeñito y diferenciarse de todo el mundillo asociado a Arduino, diseñado y montado aqui en nuestro pais y ademas barato, se llama ecTiny841.

Consta de 4 modulos:
IMG_20150314_201702

ecPower con el que podreis alimentar todo el circuito con un cargador de movil.
ecSwitch que es un pulsador con prevención de rebotes incorporado.
ecLeds que no tiene mucha ciencia, 4 leds de distinto color.
ecTiny841 que es la placa principal con el microcontrolador.

Particularmente el ecPower me pareció una verdadera maravilla ya que cada vez que tengo un montaje a 3v3 ando parcheando aqui y allá… con esto ya lo tengo solucionado asi que igual me pido alguna mas.

Primeros pasos:

1) Hardware, comprando el kit ecTiny841 ya tenemos lo suficiente para empezar, tan solo una protoboard y cables para montar el circuito.

2) Software, toca bajarse las herramientas del fabricante, en este caso el programa AtmelStudio (conocido como AVRStudio en versiones anteriores), en mi caso concreto me quedé en la versión 6.2.1153 por compatibilidad con mi programador clon MKII.

3) Programador, aqui me extenderé un poco mas ya que hay un gran abanico de posibilidades, en caso de querer un programador integrado con el IDE de AtmelStudio os aconsejo que os compreis un MKII o compatible, en el caso de que no querais compraroslo o que aún lo estais pensando podeis ir tirando con un ArduinoISP y usando AVRDude como software de grabación.

IMG_20150312_195506AVRISPmkII