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.

 

 

Grabación con AtmelStudio y MKII

Si dispones de un grabador MKII o un clon del mismo no es necesario salir del IDE de AtmelStudio para grabar tu microcontrolador, siempre y cuando hayas instalado bien los drivers.

Una vez compilado vuestro programa teneis que iros a la opcion Tool/Device Programming.
AtmelStudio62_06

Os aparecerá una pantalla donde podreis verificar el programador, el microcontrolador y el interface, una vez confirmado con “Apply” nos apareceran las opciones disponibles antes de la grabación, en nuestro caso (que hemos hecho todo bien) tan solo seleccionar la opción “Memories” y a continuación ejecutar la grabación con “Program” y veremos el resultado de la grabación.
AtmelStudio62_07

y listo para funcionar…

 

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

 

 

 

 

 

Programador ArduinoISP

Quizá sea uno de los programadores para micros atmel mas basicos que me he tropezado, y aunque los clones MKII baratos proliferan en tiendas on-line este te puede sacar de algún apuro o como a mi, hasta que me llegue el que he pedido en Hong Kong… 😛

1) HARDWARE.

Ante todo mi primera preocupación a la hora de cualquier montaje es evitar en lo posible los cableados a mano y las protoboard, que son maravillosas para las primeras pruebas pero ahí acaba la cosa, el programador podemos construirlo en una simple placa de topos o mejor de lineas, como la idea orginal para este programador era trabajar con Attinys de 8 patas me fabriqué una plaquita que acaba en un DIP8 y a continuación construí un cable DIP8 a ISP, el resultado fué el siguiente:

Cableado para DIP8
esquema_attiny-arduino

Cable DIP8 – ISP.
Adaptador Dip8 ISP

Este es el aspecto final.

IMG_20150314_201924 IMG_20150314_201910

Nota: el condensador no es necesario en todas las tarjetas Arduino por lo que os aconsejo lo pongais de manera que sea facil quitarlo en un momento dado.

2) Preparando el programador.

Para preparar el programador solo tenemos que enchufar una Arduino cualquiera, en mi caso utilizo una Seeeduino compatible con la antigua Decimilia pero deberia funcionar con cualquier modelo.

Verificar que no teneis enchufada ninguna shield ni nada cableado, la Arduino solita.

En el IDE de Arduino seleccionamos el tipo de tarjeta y puerto, a continuación abrimos la carpeta de ejemplos, elegimos “ArduinoISP” y grabamos.

En este momento nuestra tarjeta Arduino se ha convertido en un programador por lo que procedemos a enchufar nuestra placa o cableamos según el esquema del punto 1 de este tutorial.

Espero tener que enlazar a este post mas de una vez…

furri.