Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INTRODUCCIÓN.
Una de las ventajas de los microcontroladores es su bajo costo (es el dispositivo de control más
barato), sin embargo debido a la baja corriente que puede manejar y sobre todo a la alta
sensibilidad al ruido eléctrico trae como consecuencia que no se utilicen uC a nivel industrial,
utilizándose dispositivos robustos como son los PLC’s (cuyo principal elemento es un uC).
MICROCONTROLADORES AVR
Son desarrollados por Atmel; existen 4 familias Tiny, Atmega, Xmega, AVR32, las primeras tres
familias son de 8 bits y difieren la una de la otra principalmente a la capacidad de memoria y
número de pines.
Fuente: www.atmel.com
Como se puede apreciar dentro del Atmel hay varios uC, se debe seleccionar el dispositivo
necesario según la aplicación, sin embargo en el curso se empleara el Atmega164P por ser uno
de los más completos.
Fuente: www.atmel.com
Al momento de simular un circuito se debe tomar en consideración que el modelo que tiene
Proteus corresponde al de la derecha (figura 2) razón por la cual difiere la distribución de pines
con respecto al uC que se adquiere, cuya distribución es la siguiente:
Fuente: www.atmel.com
Para programar al uC (pasar el archivo .hex a la memoria flash); se utiliza la interfaz SPI, a
través de un software (PROGISP u otro) y hardware (programador USBasp) o mediante el AVR
Los drivers del programador (USBasp) deben ser descargados e instalados, para su
funcionamiento.
CKOUT: Colocando cero en este fusible se obtiene que la señal de reloj del microcontrolador
salga por el pin CLK0 correspondiente al PB0 en el Atmega164P. Esta señal de reloj puede ser
usada externamente para cualquier fin. Mientras que si este fusible está en uno el pin PB0
puede ser empleado de la manera habitual.
SUT 1 y SUT 0: Mediante estos dos fusibles se maneja tanto el Retardo de Reset (Start-up time
from power-down and power-save) como el Retardo de Arranque (Additional delay from reset)
los cuales varían de acuerdo al tipo de fuente de reloj que se haya seleccionado mediante los
fusibles CLKSEL3..0.
Para el reloj interno de 8MHz que es el que se emplea en este proyecto se tiene las opciones
mostradas en la siguiente tabla para la configuración de los fusibles SUT 1 y SUT 0.
El CK mostrado en la tabla corresponde a ciclos del reloj del Watchdog Timer. Es preferible
configurar a SUT1 y SUT0 con 00 con el fin de que el Retardo de Arranque sea mínimo.
CLKSEL 3..0: Mediante estos cuatro fusibles se determina el tipo de reloj que empleará el
microcontrolador de acuerdo a la siguiente tabla.
Calibrated internal RC oscillator es la opción por defecto mediante la cual se emplea el reloj
interno de 8MHz. Por su parte mediante las otras opciones se puede escoger otros tipos de
reloj tanto internos como externos con diferentes finalidades como por ejemplo de una baja
frecuencia, de una mayor frecuencia, de baja potencia, etc.
JTAGGEN: este fusible permite activar la interfaz JTAG, habilita las líneas del pórtico de acceso
a pruebas (tap) constituido por 4 líneas del pórtico c (pc2 … pc5), este interface también
permite programar las memorias de fábrica viene habilitado (0), este se debe deshabilitar
(colocar en 1).
SPIEN: Este fusible de fábrica viene con cero debido a que de esta forma se habilita la
programación por SPI que es la que utilizan los programadores habituales. Por su parte si
colocamos uno a este fusible, la programación por SPI quedará deshabilitada.
WDTON: Este fusible habilita (con uno) o deshabilita (con cero) al Watchdog Timer el cual es
un temporizador que va contando a medida que el programa del microcontrolador se ejecuta,
esta cuenta se la tiene que resetear periódicamente por programa ya que si el Watchdog
Timer alcanza un valor previamente seteado reseteará el microcontrolador.
El Watchdog Timer también puede ser activado por código de programa pese a que no esté
activado por fusible, pero sin embargo si el fusible WDTON está activado no habrá manera de
desactivar el Watchdog Timer por programa.
EESAVE: Con este fusible en cero se evita que la EEPROM interna del microcontrolador sea
borrada cuando cargamos un programa al mismo, por el contrario la EEPROM será borrada
ante cada carga de programa al microcontrolador si este fusible está en uno.
BODLEVEL 2..0: Con estos fusibles se decide si se empleará o no el Brown-out Reset, el cual es
un reset por caída de tensión en la alimentación. Además con estos fusibles se establece los
niveles de voltaje de reacción de este tipo de reset de acuerdo a como se muestra en la
siguiente tabla.
BODLEVEL 2:0 Fuses Min. 𝑉𝐵𝑂𝑇 Typ. 𝑉𝐵𝑂𝑇 Max. 𝑉𝐵𝑂𝑇 Units
111
110 1,7 1,8 2,0
101 2,5 2,7 2,9 V
100 4,1 4,3 4,5
011
010 Reserved
001
000
Es aconsejable disponer de un Brown-out Reset para un funcionamiento más seguro por lo que
en el microcontrolador empleado se ha configurado estos fusibles de tal manera de obtener
un nivel de 2,7 V (histéresis 2,5V – 2,9V) para el Brown-out Reset.
LB2 y LB1: Estos fusibles también conocidos como los bits de candado sirven para establecer
niveles de protección sobre la memoria Flash, la EEPROM, los fusibles y los propios bits de
candado tal como se muestra en la siguiente tabla.
En la interfaz de PROGISP, se debe seleccionar las opciones Program Flash y Chip Eraser y
recomendablemente Verify Flash. La opción Black Check y Lock Check tienen que estar
deshabilitadas caso contrario los uC se bloquearan.
Para cargar el archivo punto .hex (lenguaje de maquina), se da click sobre la opción Load Flash
y en la interfaz que se presenta se selecciona el archivo deseado y finalmente se presiona
Auto.
BIBLIOGRAFIA: