lunes, 6 de febrero de 2017

Grabando AVRs


   GRABANDO AVRs


Cuando trabajamos con AVRs podemos encontrar muchas herramientas de software libre (WINAVR por ejemplo). En cuanto al Hardware también podemos encontrar libremente el grabador para AVRs conocido como USBasp del cual se pueden encontrar los esquemas fácilmente. En mi caso compre el grabador ya hecho a un compañero de mi facultad.

Pero con el grabador no es suficiente adicionalmente se necesita un programa que haga funcionar al grabador (USBasp), por fortuna de estos hay varios y el que me parece bastante practico es el conocido Khazama, este programa es libre y se lo puede descargar de la página del autor.


Instalando Kazama.
Instalamos y aceptamos todo lo que os pida. Una vez instalado tenemos.
Al ejecutar el programa es mejor ejecutarlo como administrador.
Luego seleccionamos el microcontrolador ATMEGA32.

Instalando controladores para USBasp.

Una vez conectado el grabador (USBasp) puede que la PC no lo reconozca por falta de los controladores. Buscando en el administrador de dispositivos tenemos.
Ahora procedemos a instalar los controladores.
Seleccionamos “buscar software del controlador en el equipo”.
Seleccionar la ruta donde se instaló khazama para mi caso fue (win10 32 bits)
C:\Program Files\khazama.com\Khazama AVR Programmer\win-driver\libusb_1.2.4.0

Luego aceptar la advertencia de software desconocido. Ahora tenemos el USBasp listo para trabajar con khazama y grabar AVRs.

Conectando USBasp al AVR.

ATMEGA32 vienen de fábrica configurado para trabajar con reloj interno de 1M[Hz] por eso el grabador USBasp tiene un pin de selección de reloj lento (Slow SCK=GND), esto puede ser molesto algún momento ya que el AVR se graba lento. Para cambiar esta situación se puede elegir un oscilador interno más rápido (16M[Hz]) o usa un cristal externo.
Importante. Si se hace uso de un cristal externo la siguiente vez que se grabe el AVR debe hacerse con el mismo cristal conectado.
Pines de conexión de USBasp y AVR.
Trabajando con khazama.

Si se instaló la versión v1.7.0 configuramos la velocidad del reloj ISP a automático.

Si se desea se puede tikear todas las opciones excepto Write Fuses and Lock esto para no tener accidentes.
Cuidado si se deshabilita el bit SPIEN al momento de grabar los fuses tendremos un caos… bueno no, solo perderemos la capacidad de grabar al AVR, para saber el real efecto de esto se puede buscar en internet.
Ahora se configurara el AVR para que trabaje con un cristal externo de 16M[Hz] para obtener la mayor velocidad de trabajo de la cpu.
Primero leemos la configuración de los fuses presionando el icono de candado cerrado presionando Read All.

Desplazándonos a la parte interior tenemos los fuses que configuran la fuente de reloj.



Una vez seleccionado se procede a grabar los fuses con el boton Write All y listo, el AVR ahora trabajara con cristal externo (16M[Hz]) la próxima vez que se desee grabar el AVR el cristal debe estar presente.
A partir de este momento ya podemos cambiar la velocidad del reloj ISP del grabador USBasp cambiando la posición del clock select, para mi caso el grabador queda asi.
Después de esto ya no tendremos la necesidad de manejar los fuses y solo nos dedicaremos a grabar nuestros programas en el AVR.

Código básico de prueba.
 Una vez creado el proyecto en WINAVR editamos el Makefile y cambiamos el valor de la F_CPU a 16M[Hz].

Una vez compilado solo queda grabar el chip.

No hay comentarios.:

Publicar un comentario