Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
I y II
AUTORES:
CASTORENA ORTEGA EDUARDO
GOMEZ MARTINEZ FRANCISCO
GUTIERREZ GOMEZ AMADO
RUIZ SANTIAGO ARTURO
SANTOS DIAZ EDUARDO
SEVILLA PEREZ EDGAR
0
INDICE
Pgina
OBJETIVO..................................................................................................... 2
INTRODUCCION........................................................................................................... 2
ESTADO DEL ARTE..... 3
DESARROLLO DEL PROYECTO................................................................................
PROGRAMA EN LENGUAJE ENSAMBLADOR DEL AVR..............
DIAGRAMA DE MONTAJE............................................................................
Recepcin...............................................................................................
Transmisin............................................................................................
Diseo....................................................................................................
Simulacin...............................................................................................
DIAGRAMA DE CONEXIONES............................................................... ..........
ETAPA TRANSMISORA........................................................................
Diagrama de conexin entre la PC y el Microcontrolador..........
Diagrama de conexin Max 232 con PC y el Microcontrolador
ETAPA RECEPTORA............................................................................
ELABORACION DE DIAGRAMA DE CONEXIONES...........................
ETAPATRANSMISORA.......................................................................
ETAPA RECEPTORA...........................................................................
8
8
13
13
14
15
17
19
19
19
19
20
21
21
22
RESULTADOS............................................................. . 23
OBSERVACIONES........................................................................................ 26
CONCLUSIONES........................................................................................... 27
BIBLIOGRAFIA Y REFERENCIAS............................................................... 27
APENDICE Y ANEXOS.......... 28
MANUAL DEL MICROCONTROLADOR EN ESPAOL................... 38
DISEO DE PARACAIDAS.............................................................................189
OBJETIVO.
INTRODUCCION.
Este proyecto consiste en el diseo de un tacmetro para medir las RPM de un motor de
avin a pequea escala.
Tacmetro (Del griego, tachos = velocidad y metron = medida) es un dispositivo para
medir la velocidad de giro de un eje, normalmente la velocidad de giro del motor, se mide
en Revoluciones por minuto (RPM).
La primera etapa de este proyecto consiste en realizar el programa en lenguaje
ensamblador para el microcontrolador AVR AT90S8515, en donde se tiene como entrada
un pulso de 5v cada vez que el sensor IR(Infrarrojo) es obstruido. En nuestro caso el
sensor se obstruye dos veces durante una vuelta del motor ya que las hlices son las que
generan la interrupcin, con esto se va contando el numero de pulsos que entran al
procesador en segundo. Una vez que se realizo el clculo, el microcontrolador manda
el dato obtenido a la computadora, y esto se multiplica por 60 para obtener el nmero de
revoluciones por minuto.
La segunda etapa se analiza la comunicacin inalmbrica por infrarrojos se identifican
dos elementos muy importantes para poder implementar esta comunicacin, La
transmisin y la recepcin. El transmisor lo constituye un oscilador a 40 khz y un led
infrarrojo que su misin es suministrar la onda portadora luminosa que transporta la
informacin.
En el otro extremo del sistema, se encuentra el receptor este consta de un fotodiodo, que
es un convertidor optoelctrico que recibe una seal debilitada por lo que es
indispensable tener a continuacin una seccin de amplificacin, para llevar la seal al
nivel adecuado para su tratamiento. Para esto existen cantidad de receptores infrarrojos
modulares completos para adaptar la seal luminosa recibida, son muy usados en
sistemas de control remoto de baja velocidad para esto seleccionamos el receptor modular
2
GP1U52X de Radio Shack. Este es un detector muy completo, para convertir seales
moduladas con portadora de 40 khz a lgica TTL o CMOS.
La tercera etapa consiste en los diagramas de conexiones. En esta seccin se describen
las conexiones para implementar la electrnica necesaria para establecer la comunicacin
por infrarrojos y obtener la lectura en RPM.
La cuarta etapa consiste en la lectura del programa TERM, esta lectura capturada por el
programa es multiplicada por 60 para poder obtener las RPM del motor.
Marca
Modelo
Figura
PCE Group
PCE-T236
PCE Group
PAX I
Descripcin
Resolucin
Precisin
Distancia de
medicin
mxima
Memoria
Alimentacin
Rango de
Temperatura
de operacin
Carcasa
(medicin ptica)
(medicin con
(medicin con
(medicin con
0 ... + 50 C
plstico ABS
El
tacmetro
industrial
puede
programarse libre- mente introduciendo
una seal o un valor con ayuda del
teclado. La escala, el multiplicador y el
ajuste de punto decimal permiten un
clculo o un ajuste de los impulsos en
velocidad por ejemplo [m/min, m/s, ...],
as como de los valores del contador como
cantidad [n] o en metros recorridos [m] o
similar
El rango de la distancia de medida es de
30 ... 130 mm con una resolucin de
0,06 mm, un tiempo de respuesta de 10
ms y un error de 0,2 mm
130 mm
Pantalla
65 x 215 x 38 mm
Dimensiones
Caractersticas - El aparato mide de modo ptico sin
generales
contacto con las bandas reflectantes
del envo.
- Medicin con contacto en rpm con
adaptador cnico (para extremos de
ejes o taladros de centro en motores y
mecanismos).
- Medicin con contacto en m/min con
rueda.
- Slida carcasa de plstico ABS.
- La pantalla LCD de 10 mm y 5
posiciones
del
medidor
de
revoluciones se gira automticamente
180 segn si la medicin se realiza
con
o
sin
contacto.
- Memoria para ltimo valor, valores
MIN / MAX.
Adaptadores
de
medicin
intercambiables.
adicionales
- 97 mm x 50 mm x 104 mm
- Refuerzo de la carcasa del tacmetro con
un
marco de montaje con tornillos de
sujecin
- Pantalla de 6 posiciones, 100 mm de
ancho y con LED alto, rojo de 14 mm
- Valor MIN / MAX: indicador: L12345 o
H12345
- Valor: -99999 a +999999 como contador
o
Tacmetro y 0,1 ... 99999,9 Hz
- Decimales: 0/ 0,0/ 0,00/ 0,000/
0,00
0,00000
- Tiempo de actualizacin mnimo: 0,1 s
- Tiempo de actualizacin mximo : 0,2 s
92 (+0,8) mm x 45 (+0,5) mm
Peso
Contenido del
envo
300 g
1 medidor de revoluciones PCE-T236, 1
adaptador cnico, 1 adaptador de la rueda
de medicin, 1 rueda para superficies,
banda reflectante, maletn, instrucciones
de uso
.ORG
Para indicar que el segmento de cdigo o datos comienza en una direccin distinta de la
de por defecto.
.org $0000
rjmp Reset
.org $004
rjmp tc0i
inicio:
;etiqueta de referencia
ldi r25,0x11
;decrementa TEMP
;compara si es igual a cero
;si es igual a cero salta a la siguiente instruccin sino
;salta a la etiqueta retardo2
En la instruccin anterior se lleno el registro TEMP con 11111111 para poder utilizarlos
para declarar los puertos C,A y D como puertos de salida cargndoles en el registro DDR
en valor de TEMP
out DDRC,TEMP
out DDRA,TEMP
out DDRD,TEMP
Ahora se carga el valor 0 en el registro TEMP para utilizarlo para declarar el puerto B
como entrada de datos cargando el valor del registro TEMP en el registro DDRB
clr TEMP
out DDRB,TEMP
ldi TEMP,0x40
out TIMSK,TEMP
Se carga el registro TIMSK con 40 h que es 01000000 pues como se puede observar a
continuacin
ldi TEMP,0x8F
out OCR1AH,TEMP
ldi TEMP,0xFF
;se carga el registro TEMP con el valor FF
out OCR1AL,TEMP
sei
;se habilitan las interrupciones globales
cuenta_revoluciones:
Ahora debemos activar los bits del registro de control B del temporizador del contador1
para hacer la divisin de frecuencia y obtener la frecuencia de 65 Khz.
4Mhz/64 = 65536 Hz
para poder hacer la divisin de frecuencia se debe cargar el valor 00000011 como se
muestra en la siguiente tabla 10.
11
12
DIAGRAMA DE MONTAJE
TRANSMISIN.
Una vez resuelto el problema de recepcin, vamos a centrarnos en la otra parte del
sistema: la emisin.
El objetivo es establecer una comunicacin entre dos dispositivos de una forma general.
La necesidad de generar un tren de pulsos de 40 Khz, para poder transmitirlo hacia la
recepcin y el dispositivo GP1U52X lo demodule. Nos conduce a trabajar con un
circuito integrado muy conocido y utilizado el 555 sus dos modos bsicos de operacin:
Astable y Monoestable.
14
Utilizando el 555 en modo Astable hace que se dispare as mismo y pueda funcionar
como un multivibrador. En esta configuracin son necesarias dos resistencias (RA y RB )
y un condensador
(C) en la siguiente
figura se muestra
la conexin tpica de
esta
configuracin.
DISEO.
Se realizan los clculos necesarios para obtener un oscilador con una frecuencia de 40
khz.
El capacitor C se carga a travs de las resistencias RA + RB . Variando los valores de
estos tres parmetros (C, RA y Rb) se puede ajustar para obtener una frecuencia de 40 khz,
con la siguiente ecuacin.
Nota: Para ms informacin sobre la obtencin de esta ecuacin, revisar las especificaciones del LM555 en
el apndice.
1 1.44 * T
1
1
= 25 *10 6 s
R A donde T = =
2 C
f 40khz
Sustituyendo valores.
RB =
1 1.44 * 25 10 6
1 10 3 = 37877.7
12
2 470 10
15
1
1.44
1.44
=
=
= 45 khz
3
T ( R A + 2 R B )C (1 10 + 2 * 33 10 3 ) * 470 10 12
RL
5.6k
RA
1k
555
1 Gnd
2 Trg
3 Out
4 Rst
Vcc 8
Dis 7
Thr 6
Ctl 5
RB
33k
.01uF
R
120
C
470pF
16
SIMULACIN.
17
Resultado de la Simulacin.
Como podemos ver en la figura anterior, el tren de pulsos obtenido a la salida del
oscilador tiene un periodo de 25.112 s esto implica una frecuencia de 39.9 khz, como
podemos observar en la simulacin, nuestro diseo es satisfactorio.
La amplitud del tren de pulsos es de 9 Volts.
Ahora nos centramos en el led infrarrojo que utiliza el oscilador para la parte transmisora,
el led utilizado es el IR333C Diodo emisor de luz (LED) infrarrojo, transparente, de 5
mm de dimetro, con longitud de onda de 940 nanmetros, 1.3 Volts tpicos en
polarizacin directa, 1.7 Volts mximos, 20 mW y ngulo transmisin de 27 grados. Para
la parte receptora, el sensor GP1U52X ya cuenta con su led infrarrojo.
Ya que analizamos la parte transmisora y receptora de nuestra comunicacin
inalmbrica por medio de leds infrarrojos, ahora procedemos a conjuntar todos los
componentes necesarios para llevar a cabo la comunicacin como se muestra en la Fig. 1,
en nuestro siguiente apartado de Diagrama de Conexiones.
18
DIAGRAMA DE CONEXIONES.
Diagrama de conexin Etapa transmisora
DIAGRAMA DE CONEXION
MICROCONTROLADOR
DEL
MAX
232
CON
PC
EL
19
En esta etapa Receptora tenemos el receptor infrarrojo GP1U52X pasa por una compuerta
Nand schmitt trigger 7413, para que el microcontrolador reciba 1 lgico como 5 volts,
0 lgico como 0 volts. En la adaptacin de niveles entre el micro y la pc tenemos el CI.
Max 232 que nos permite mandar la informacin almacenada en el micro hacia la pc.
Como podemos observar en el Diagrama de Recepcin el conector DB9(RS232) nos va
permitir conectar un cable serial hacia la pc para observar las RPM del motor.
20
21
22
RESULTADOS
La ltima fase de este proyecto, es el montaje de los circuitos elaborados como se
muestra en la figura 1, ya una vez montado se suministr de energa al motor para
realizar las pruebas necesarias y obtener la lectura de RPM del motor.
Tabla No. 1
23
Tabla No. 2
En la tabla No.1. Se toma la primera muestra de las mediciones de RPM del
motor, se observa que no son constantes porque el motor no est bien fijado, con esto
origina muchas vibraciones, por consiguiente el emisor y el receptor pierden linealidad.
En la tabla No.2. Se hiz un registro de las mediciones obtenidas, como podemos
observar en la partes sombreadas de amarillo, azul, verde y rosa por momentos hay
lecturas constantes, pero no son muy confiables ya que la luz del medio ambiente
introduce ruido.
24
Tabla No. 3
25
Este proyecto se realiz en su totalidad con el fin de medir las revoluciones por minuto
del motor de un avin de aeromodelismo, del cual se obtuvieron mediciones que aunque
no fueron al 100% confiable, nos dan una idea de la capacidad que tiene el motor.
En las tablas del 1 al 3. Se tienen las lecturas obtenidas por medio del tacmetro, en la
tabla 3 se detecta por momentos una lectura estable, la mxima lectura obtenida es de
15300 RPM.
Para la caracterizacin del motor solo se tiene que mejorar la forma de censar los datos
pues una vez que estos son transmitidos al microcontrolador estos son procesados
correctamente
OBSERVACIONES
El problema en la medicin de las revoluciones del motor no fueran confiables es debido
a que la luz ambiental causaba ruido en la transmisin y recepcin infrarroja, ya que
dependiendo de la cantidad de luz que haba en el lugar las mediciones no fueron
constantes.
El ruido introducido por otras fuentes de luz puede deberse a causas naturales, como por
ejemplo equipos electrnicos como lmparas y distintos equipos de vdeo; tambin
superficies reflectantes ubicadas cerca del emisor o detector infrarrojo que deterioran
tremendamente la forma original de la seal luminosa enviada.
Para eliminar el ruido introducido se suelen usar cdigos de lnea y adems enviar la
seal modulada con una portadora y as es posible diferir entre la seal y el ruido.
Adems cuando se realizaron pruebas para obtener las mediciones de las revoluciones del
motor ests variaban debido a que el motor encendido produce vibraciones las cuales
generan un error ya que en ciertos momentos tanto el receptor como el transmisor no
estn alineados y por lo tanto no se tiene un lectura confiable en ese instante.
26
CONCLUSIN
El lenguaje de programacin usado es ensamblador. Fue elegido para tener un
mejor control en los tiempos de sincronismo con la seal infrarroja. De igual manera
puede abordarse la programacin en C teniendo claro que al momento de compilar el
programa, puede resultar en una mayor cantidad de memoria de cdigo y que se vea
afectada la sincrona con la seal. La ventaja de programar en ensamblador adems del
sincronismo, es que si la aplicacin demanda rapidez y eficiencia en memoria, este
lenguaje es el adecuado. El cdigo fue escrito usando el entorno de programacin AVR
stdio 4.0 de Atmel y compilado con PonyProg 2000.
En el diseo y la implementacin electrnica para establecer la comunicacin
inalmbrica se disea un circuito emisor, y se utiliz un circuito receptor de infrarrojos.
Para la recepcin se ha utilizado un circuito receptor de infrarrojos como es el GP1U52X
de RadioShack, que en el mismo integrado engloba el receptor infrarrojo. Desde el punto
de vista de su utilizacin, este dispositivo lo podemos ver como una caja negra que una
vez alimentada, activa o desactiva una salida cuando recibe una seal infrarroja modulada
a 40 khz.
Para la emisin, la conexin realizada se hizo en base al modo astable del circuito
integrado 555. La gran ventaja de esto modo de operacin, es contar con una resistencia
de ajuste que permite seleccionar una frecuencia en el rango de los 36 a los 40 khz.
Al tener todo la electrnica necesaria y el microcontrolador cargado con el programa, se
hace el montaje como se muestra en la figura 1 de nuestro desarrollo de este proyecto,
aqu el punto mas importante es tener bien anclado el motor para que no haya vibraciones
al momento de ponerlo en marcha, y bien alineado el emisor con el receptor para que
nuestro microcontrolador pueda almacenar la informacin y mandarla por medio del
puerto serial hacia la computadora. Por medio del programa terminal obtenemos las
vueltas por segundo, pero como el objetivo es medir RPM, las mediciones capturadas en
el programa terminal se multiplica por 60 para obtener las mediciones en RPM.
Al tomar en cuenta la transmisin infrarroja como medio para la deteccin de las
revoluciones del motor no se tomaron en cuenta los beneficios y las complicaciones que
se tienen, por lo tanto es de suma importancia tomar en cuenta este tipo de factores que
pueden influir mucho en el desarrollo del proyecto. Para mejorar el diseo del tacmetro
se debe tomar en cuenta todo el ruido, que pueda intervenir en nuestra comunicacin
inalmbrica; en nuestro caso fue la luz ambiente. Se recomienda buscar algn dispositivo
que sea inmune a la luz para que se puedan tener medidas ms confiables.
BIBLIOGRAFIA Y REFERENCIAS
http://www.monografias.com/trabajos35/redes-inalambricas/redes-inalambricas.shtml
http://www.superrobotica.com/download/Basicx24/Infrared_App_Note_BX24.pdf
http://www.atmel.com/
http://www.os-engines.co.jp
http://www.pce-group-europe.com/espanol/index.php?cat=c104_Tacometros.html
27
APENDICE Y ANEXOS
Lenguaje Ensamblador en los microcontroladores AVR.
El trmino ensamblador (del ingls assembler) se refiere a un tipo de programa informtico que
se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto
que contiene cdigo mquina, ejecutable directamente por la mquina para la que se ha generado.
El propsito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de
programas, ya que escribir directamente en cdigo binario, que es el nico cdigo entendible por
la computadora, es en la prctica imposible. La evolucin de los lenguajes de programacin a
partir del lenguaje ensamblador origin tambin la evolucin de este programa ensamblador hacia
lo que se conoce como programa compilador.
Un registro puede almacenar valores numricos de 0 a 255 (positivos sin signo) o entre
128 a 127 (con bit de signo en el bit 7), caracteres ASCII o simples conjuntos de bits sin
relaciones entre ellos. Existen 32 registros en los microprocesadores AVR, etiquetados
originalmente como R0, R1,..., R31, pero que pueden ser renombrados usando la
directiva .def
.def registroTemporal=r16
Las directivas son tiles para el ensamblador pero en realidad no generan instrucciones
ejecutables. En vez de emplear el nombre r16 se puede acceder con el nombre definido en
la directiva. As la instruccin
ldi registroTemporal, 150
carga en el r16 de manera inmediata el nmero 150.
Otra instruccin interesante es el de copiar datos desde un registro a otro: la instruccin
mov. El siguiente cdigo copia el contenido del r16 al registro r20.
mov r20,r16
Obsrvese que el primer registro es siempre el registro destino de la operacin. Existen
diferentes tipos de registros. As una instruccin del tipo
ldi r15, 15
no sera vlida, ya que los nicos registros que permiten cargar un valor de forma
inmediato son los registros del r16 al r31. Es decir, no se puede realizar este tipo de
operacin con los registros del r0 al r15. Existe una excepcin a esta regla, el comando
referido a limpiar los bits (poner todos los bits a 0)
clr r15
28
es vlido para todos los registros. Aparte del comando ldi, las siguientes instrucciones no
pueden emplearse con los registros r0 a r15:
andi r15,4 ;Realiza el y lgico entre el registro y un nmero
cbr r14,45 ;Limpia los bits en el registro determinados por una mscara de bits
cpi r13,6 ;Compara el contenido del registro con una constante
sbci r9,7 ;Resta al registro el valor del contenido de la constante y del resultado
; actual del bit de carry
sbr r12,89 ; Coloca a '1' los bits en el registro determinados por una mscara de
; bits
ser r3
;Coloca todos los bits del registro a 1
subi r15,9 ;Resta al registro el valor del contenido de la constante.
REGISTROS PUNTERO
Un papel especial es desempeado por las parejas de registros r16:r27, r28:r29 y r30:r31.
Estas parejas de registros de 16 bits son nombrados de una forma especial, X, Y y Z.
Pueden acceder a direcciones de 16 bits en la SRAM (X, Y, Z) o dentro de la memoria
del programa (Z). La parte alta de la direccin se coloca en el registro de ndice ms alto,
mientras que la parte baja de la direccin se almacena en el registro de ndice ms bajo.
Estas partes alta y baja tienen sus propios nombres. As la parte alta del registro Z (r31)
se puede acceder como ZH mientras que la baja (r30) se puede acceder como ZL.
Ejemplo:
.EQU direccion = RAMEND ;en este comentario indicaremos que RAMEND es
;la direccin ms alta en la SRAM
ldi YH,high(direccion) ; carga la parte alta de la direccin
ldi YL,low(direccion)
; carga la parte baja de la direccin
El acceso a direcciones a travs de estos registros punteros es muy sencillo. Los
siguientes ejemplos ilustran estos accesos de lectura (ld) y de escritura (st) con el puntero
X
ld r1,X
st X+,r1
ld r1,-X
Para insertar los valores en la memoria de programa se emplean las directivas .DB y
.DW. Por ejemplo:
.DB 123,56,34,1 ; una lista de 4 bytes
.DB Esto es un texto ; una lista de bytes, cadena de caracteres.
.DW 13454 ; una palabra
29
Los puertos son puertas entre la unidad de procesamiento central hasta hardware o
software externo. El CPU se comunica con estos componentes, los lee y/o los escribe.
Los puertos tienen direcciones fijas, independientemente del microprocesador AVR. As,
por ejemplo el puerto B se encuentra siempre en la direccin 0x18 (notacin
hexadecimal). Por supuesto el programador no tiene necesidad de recordar todas estas
direcciones. Los nombres vienen definidos en un fichero de encabezado para los
diferentes tipos de microcontrolador y que son proporcionados por el fabricante. Estos
ficheros include tienen una lnea para definir la direccin del puerto B como sigue:
.EQU PORTB, 0x18
por lo que solamente se debe recordar el nombre del puerto y no su direccin. El fichero
correspondiente se incluye mediante la siguiente directiva
.include 8515def.inc
Los puertos generalmente se organizan en conjunto de 8 bits relacionados entre s, pero
pueden estar organizados en conjuntos sin relacin. En este caso es habitual que cada uno
de los bits tenga su propio nombre y funcin determinados. Como ejemplo, el registro
MCUCR consiste en un nmero de bits de control del integrado, cada uno de ellos con
sus nombres (por ejemplo ISC00, ISC01). La forma de enviar un valor determinado a uno
de estos puertos es mediante la instruccin out y mediante el empleo de un registro
intermedio:
ldi r16, 0b00010000
out MCUCR, r16
.EQU bitCambiado = 5
sbi PortB, bitCambiado
cbi PortB, bitCambiado
Las dos instrucciones tienen una limitacin, solamente afectan a puertos con una
direccin inferior a 0x20.
La SRAM es una memoria que no es accesible directamente por el CPU (ALU) como es
el caso de los registros. Para acceder a esta parte de la memoria se deben emplear los
registros como paso intermedio. Por lo tanto las operaciones que involucran a la SRAM
son ms lentas que la de los registros. A partir del modelo AT90S8515 se permite
31
conectar una RAM externa adicional. Uno de los casos de empleo ms importante de la
SRAM es como pila.
El acceso a la SRAM se lleva a cabo mediante las instrucciones STS y LDS. Ejemplos
STS 0x0060, R1 ; el contenido del registro R1 se copia en la direccin 0x0060
LDS R1, 0x0060 ; el contenido de la direccin 0x0060 se copia en el registro R1
.ORG
Para indicar que el segmento de cdigo o datos comienza en una direccin distinta de la
de por defecto.
SALTOS
La ejecucin de un programa es lineal. Sin embargo, las instrucciones de bifurcacin
(branches) y los saltos incondicionales alteran esta ejecucin lineal. Supngase que se
desea implementar un contador de 32 bits empleando los registros r1 a r4. El bit ms
significativo en r1 se incrementa en 1 (operacin inc). Si el registro se desborda, el
registro tendr el valor de 0 (255+1=0), y se tendr que sumar 1 al r2. En caso de
desbordamiento de r2, se incrementa r3 y as sucesivamente. Para ello se emplea la
instruccin brne.
inc r1
brne sigue
inc r2
brne sigue
inc r3
brne sigue
inc r1
sigue:
Como ejemplo de instrucciones de salto condicional:
brge ; mayor o igual (con bit de signo)
brlt ; menor que (con bit de signo)
MACROS
Una macro permite la utilizacin repetida de secuencias de instrucciones. Por ejemplo:
.MACRO Delay
nop
nop
nop
nop
.ENDMACRO
; instrucciones
Delay
; ms instrucciones
Una macro no ahorra espacio de memoria puesto que al compilar la etiqueta de la macro
es reemplazada por el conjunto de instrucciones correspondientes. Para el caso de querer
ahorrar espacio se emplean las subrutinas.
SALTOS INCONDICIONALES
Aparte del rcall para llamar a las subrutinas, existe otra clase de salto incondicional, el
rjmp: saltar directamente a la direccin deseada. Aqu, a diferencia no va a haber un
retorno (ret) a la siguiente instruccin. Existen unas instrucciones que permiten saltarse
(skip) la siguiente instruccin a ejecutar, por ejemplo
33
sbrc r1,7
;saltarse la siguiente direccin si el bit 7 del registro est a
baja
rcall siBitDistinto7 ;ejecutada solamente si el bit 7 est a 0
rcall otro
;ejecutada de todas maneras
Con frecuencia se debe reaccionar ante condiciones hardware u otros eventos, por
ejemplo en el cambio de valor del pin de un puerto (por ejemplo detectar que un usuario
ha pulsado una tecla). Un modo de procesarlo podra consistir en hacer un bucle que
leyese continuamente el valor de esa lnea. Desgraciadamente, un programa debe hacer
en general ms cosas que estar leyendo en un bucle un puerto y no puede permitirse el
lujo de ese bucle. Adems en caso de deteccin de pulsos muy pequeos, el mtodo del
bucle es intil. Es ms adecuado emplear interrupciones. Las interrupciones se disparan
por alguna condicin, que debe ser habilitada primero, ya que todas las interrupciones
hardware se encuentran deshabilitadas por defecto. El microprocesador posee un bit en su
registro de estado para permitir que se procesen las interrupciones. Para activar/desactivar
este bit se emplean las instrucciones sei y cli.
Si la condicin de la interrupcin se produce, el procesador coloca en la pila, la direccin
de la siguiente instruccin a ejecutar. De este modo, la ejecucin del programa puede
continuar despus de procesar la interrupcin. Despus procesar la instruccin
correspondiente en su vector de interrupcin, que generalmente es un salto incondicional
a la subrutina de procesamiento de interrupcin. El vector de interrupcin es una posicin
dependiente del procesador.
Existe un orden de prioridad en las interrupciones, de modo que si dos o ms
interrupciones habilitadas se producen simultneamente solamente ser procesada la de
mayor prioridad. Las dems simplemente esperarn a que se haya procesado la de mayor
prioridad. La rutina de procesamiento puede terminar con la instruccin
El uso de la luz infrarroja se puede considerar muy similar a la transmisin digital con
microondas.
El haz infrarrojo puede ser producido por un laser o LED. Los dispositivos emisores y
receptores deben estar alineados uno del otro o bien esta en lnea tras la posible reflexin
de rayo en superficies como las paredes. En infrarrojos no existen problemas de
seguridad ni de interferencias ya que estos rayos no pueden atravesar los objetos(paredes
por ejemplo). Tampoco es necesario permiso para su utilizacin(en microondas y ondas
34
El modo cuasi-difuso: A diferencia del modo punto-a-punto, el modo cuasidifuso y difuso son de emisin radial, o sea que cuando una estacin emite una
seal ptica, sta puede ser recibida por todas las estaciones al mismo tiempo en
la clula. En el modo cuasidifuso las estaciones se comunican entre si, por medio
de superficies reflejantes . No es necesaria la lnea-de-vista entre dos estaciones,
pero si deben de estarlo con la superficie de reflexin. Adems es recomendable
que las estaciones estn cerca de la superficie de reflexin, esta puede ser pasiva
activa. En las clulas basadas en reflexin pasiva, el reflector debe de tener altas
propiedades reflectivas y dispersivas, mientras que en las basadas en reflexin
activa se requiere de un dispositivo de salida reflexivo, conocido como satlite,
35
que amplifica la seal ptica. La reflexin pasiva requiere ms energa, por parte
de las estaciones, pero es ms flexible de usar.
El modo difuso, el poder de salida de la seal ptica de una estacin debe ser
suficiente para llenar completamente el total del cuarto. Por lo tanto la lnea de
vista no es necesaria y la estacin se puede orientar hacia cualquier lado. El modo
difuso es el mas flexible, en trminos de localizacin y posicin de la estacin, sin
embargo esta flexibilidad requiere un gran nmero de emisiones pticas.
Por otro lado la transmisin punto-a-punto es el que menor poder ptico consume,
pero no debe de haber obstculos entre las dos estaciones. En topologa de
Ethernet se puede usar el enlace punto-a-punto, pero el retardo producido por el
acceso al punto ptico de cada estacin es muy representativo en el rendimiento
de la red. Es ms recomendable y ms fcil de implementar el modo de radiacin
cuasi-difuso. La tecnologa infrarroja esta disponible para soportar el ancho de
banda de Ethernet, ambas reflexiones son soportadas(por satlites y reflexiones
pasivas).
36
37
Caractersticas:
En este apartado encontrar las caractersticas generales, elctricas y tpicas del AT90S8515,
un resumen de sus registros y la configuracin de sus pines.
Descripcin:
Podr encontrar el diagrama de bloques del microcontrolador, el oscilador de cristal y la
Arquitectura:
Este apartado muestra una gran cantidad de informacin. Nos habla de la arquitectura del
microcontrolador, registros de propsito general, memorias EEPROM, FLASH y SRAM,
ALU, modos de direccionamiento de programa y datos, tiempos de acceso a memoria y
de ejecucin de instrucciones, memoria de I /O, manejo de Reset e interrupciones y los
modos de descanso.
Timers:
En este apartado se describen con detalle el Timer/Contador0 de 8 bits y el Timer/Contador1
de 16 bits.
Watchdog:
Podr conocer el Timer Watchdog ( perro guardin ). Se trata de un Timer con su propio
oscilador interno que puede provocar el Reset del microcontrolador.
EEPROM:
Este apartado se centra en la memoria EEPROM, accesos de lectura y escritura, en sus
registros y en prevenir su adulteracin.
SPI:
Se analiza la Interface Perifrica Serie ( SPI ) que permite la transferencia de datos
sncrona de alta velocidad.
UART:
En este apartado se describe el Receptor y Transmisor Asncrono Universal, ms conocido
como UART, con sus registros, transmisin y recepcin de datos, y el generador de Baud
Rate.
Comparador Analgico:
En este apartado nos dedicaremos al comparador analgico, su control y sus registros.
38
Puertos de I/O:
Los puertos de I/O son los Puertos A, B, C y D, y en esta seccin se comentarn los
distintos registros de cada uno de ellos y sus funciones.
Programacin de Memoria:
En esta seccin encontraremos los bits "llave" (cerradura) de memoria de datos y programa,
bits de fusible, bytes de firma, programacin de FLASH y EEPROM, y la programacin en
paralelo y en serie.
Especificaciones.
- Bajo consumo, tecnologa de proceso CMOS de gran velocidad.
- Funcionamiento esttico total.
I/O y encapsulados.
- 32 lneas de I/O programables.
-PDIP de 40 pines, PLCC y TQFP de 44 pines.
40
Tensiones de funcionamiento.
- 2.7 - 4.0V para AT90S8515-4.
- 4.0 - 6.0V para AT90S8515-8.
Niveles de velocidad.
- 0 - 4 MHz para AT90S8515-4.
- 0 - 8 MHz para AT90S8515-8.
41
42
43
44
Figura 2. Diagrama a
Bloques
45
GND: Tierra.
46
XTAL1:
Entrada del oscilador y entrada al circuito que opera con el reloj interno.
XTAL2:
ICP: ICP es el pin de entrada para la funcin de captura de entrada del Timer/Contador1.
OC1B:
OC1B es el pin de salida para la funcin B de comparacin de de salida del
Timer/Contador1.
OSCILADOR DE CRISTAL
47
Nota: Cuando se use el oscilador MCU como reloj de un dispositivo externo, un buffer HC debe
conectarse como se indica en la figura 3.
48
49
50
Con las instrucciones de salto relativo (relative jump) y llamada (call), se acceden
directamente los 4K de espacio de direcciones. La mayora de las instrucciones de los AVR tiene
el formato simple de palabra (word) de 16-bit. Cada direccin de memoria de programa contiene
una instruccin de 16 o 32 bit.
52
Un mdulo de interrupcin flexible tiene sus registros de control en el espacio de I/O con
un bit de interrupcin global adicional de habilitacin en el registro de estado. Todas las
diferentes interrupciones tienen un vector de interrupcin separado en la tabla de vectores
de interrupcin al principio de la memoria de programa. Las diferentes interrupciones
tienen prioridad de acuerdo con la posicin de vector de interrupcin. El ms bajo tiene la
direccin del vector de interrupcin y el ms alto la prioridad.
53
54
Como se muestra en la figura 7, cada registro tiene asignada una direccin de memoria de datos y
los traza directamente en las primeras 32 posiciones del espacio de datos de usuario. Aunque no
estn fsicamente implementadas como direcciones de SRAM, esta organizacin de memoria
proporciona gran flexibilidad en el acceso a los registros, como los registros X, Y y Z para
apuntar a cualquier registro en el archivo.
55
Registros -X, -Y y -Z
Los registros R26..R31 tienen algunas funciones agregadas a su uso de propsito general.
Estos registros son punteros de direccin para direccionamiento indirecto del espacio de
datos. Los tres registros de direccionamiento indirecto X, Y y Z se definen como:
Figura 8. Registros X, -Y y Z
En los diferentes modos de direccionamiento estos registros de direccin tienen funciones como
desplazamiento fijo, incremento automtico y decremento (vea las descripciones para las
diferentes instrucciones).
El alto desempeo de la ALU opera en conexin directa con todos los 32 registros de trabajo de
propsito general. Las operaciones de la ALU en los registros dentro del archivo de registros son
ejecutados en un solo ciclo de reloj. .Las operaciones de la ALU son divididas dentro de 3
categoras principales como son Aritmtica, Lgica y funcin de bit.
56
57
Cuando las direcciones de acceso del espacio de memoria de datos exceden las posiciones de la
SRAM interna de datos, se accede a la SRAM de datos externa usando las mismas instrucciones
que para el acceso a la memoria SRAM de datos interna. Cuando se accede al espacio de datos
interno, los pines de strobe de lectura y escritura (RD' y WR') estn inactivos durante todo el ciclo
de acceso. El funcionamiento de la SRAM externa es habilitado poniendo a 1 el bit SRE en el
registro MCUCR.
Para el acceso a la SRAM externa toma un ciclo de reloj adicional por byte comparado con el
acceso a la SRAM interna. Esto significa que los rdenes LD, ST, LDS, STS, PUSH y POP
toman un ciclo de reloj adicional. Si la pila se sita en la SRAM externa, las llamadas y el retorno
de subrutinas y las interrupciones toman dos ciclos de reloj extra porque el contador de programa
de 2 byte necesita un PUSH y un POP. Cuando se usa la interface de SRAM externa con estado
de espera, se usan dos ciclos de reloj adicionales por byte. Esto tiene el efecto siguiente: Las
instrucciones de transferencia de datos toman dos ciclos de reloj extras, mientras que las
interrupciones, llamadas y retorno de subrutina necesitarn cuatro ciclos de reloj ms que lo
especificado en el manual de juego de instrucciones.
Los cinco modos de direccionamiento diferentes para la memoria de datos son: Directo, Indirecto,
Indirecto con Desplazamiento, Indirecto con Pre-decremento e Indirecto con Post-incremento. En
el archivo de registro, los registros R26 a R31 ofrecen registros puntero de direccionamiento
indirecto.
El modo Indirecto con desplazamiento ofrece 63 posiciones de direccin que se extiende desde la
parte baja de direcciones dadas por los registros Y o Z.
Los 32 registros de trabajo de propsito general, 64 registros de I/O, los 512 bytes de SRAM de
datos interna y los 64K bytes de la SRAM de datos externa optativos en los AT90S8515 son
todos accesibles a travs de todos estos modos de direccionamiento.
59
Vea la prxima seccin para una descripcin detallada de los diferentes modos de
direccionamiento.
60
61
I/O DIRECTO
DATO DIRECTO
62
63
DATO INDIRECTO
64
65
DIRECCIONAMIENTO DE UNA
CONSTANTE USANDO LA INSTRUCCIN LPM
66
DIRECCIONAMIENTO DE PROGRAMA
RELATIVO, RJMP Y RCALL
67
Esta seccin describe los conceptos de temporizacin de acceso general para la ejecucin de la
instruccin y para el acceso de memoria interna.
El CPU del AVR es manejada por el reloj del sistema , directamente generado por el cristal
del reloj externo para el chip. Ninguna divisin interna del reloj es usada.
El acceso a SRAM de datos interna es realizado en dos ciclos de reloj de sistema como se
describe a continuacin.
Vea " Interface a SRAM Externa" para tener una descripcin del acceso a SRAM externa.
69
70
Direccin
Nombre
Funcin
$3F ($5F)
SREG
Registro de estado
$3E ($5E)
SPH
$3D ($5D)
SPL
$3B ($5B)
GIMSK
$3A ($5)
GIFR
$39 ($59)
TIMSK
$38 ($58)
TIFR
$35 ($55)
MCUCR
$33 ($53)
TCCR0
$32 ($52)
TCNT0
Timer/Contador 0 (8-bit)
$2F ($4F)
TCCR1A
$2E ($4E)
TCCR1B
$2D ($4D)
TCNT1H
$2C ($4C)
TCNT1L
$2B ($4B)
$2A ($4A)
OCR1AL
$29 ($49)
$28 ($48)
OCR1BL
$25 ($45)
ICR1H
$24 ($44)
ICR1L
$21 ($41)
WDTCR
$1F ($3F)
EEARH
$1E ($3E)
EEARL
$1D ($3D)
EEDR
71
$1C ($3C)
EECR
$1B ($3B)
PORTA
$1A ($3A)
DDRA
$19 ($39)
PINA
$18 ($38)
PORTB
$17 ($37)
DDRB
$16 ($36)
PINB
$15 ($35)
PORTC
$14 ($34)
DDRC
$13 ($33)
PINC
$12 ($32)
PORTD
$11 ($31)
DDRD
$10 ($30)
PIND
$0F ($2F)
SPDR
$0E ($2E)
SPSR
$0D ($2D)
SPCR
$0C ($2C)
UDR
$0B ($2B)
USR
$0A ($2A)
UCR
$09 ($29)
UBRR
$08 ($28)
ACSR
Todos los I/Os y perifricos del AT90S8515 estn en el espacio de I/O. Las posiciones de I/O son
accedidas por las instrucciones IN y OUT transfiriendo datos entre los 32 registros de trabajo de
propsito general y el espacio de I/O. Los registros de I/O dentro del rango de direcciones $00 $1F son accesibles a nivel de bit directamente usando las instrucciones SBI y CBI. En estos
72
registros, el valor de simples bits puede ser verificado usando las instrucciones SBIS y SBIC
(vaya a la seccin del set de instrucciones para ms detalles). Al usar las rdenes especficas de
I/O, IN y OUT, deben usarse las direcciones de I/O $00 - $3F. Al direccionar registros de I/O
como SRAM, debe agregarse $20 a esta direccin. Todas las direcciones de registros de I/O a lo
largo de esta web son mostradas con la direccin de SRAM entre parntesis.
Para la compatibilidad con dispositivos futuros, si se accede a los bits reservados, deben ser
escritas a cero. Las direcciones de memoria de I/O reservadas nunca deben ser escritas.
Algunas de las banderas de estado son borrados escribiendo un "1" lgico en ellos. Observe que
las instrucciones CBI y SBI podrn operar en todos los bits en el registro de I/O, escribiendo un
"1" en cualquier bandera leda como set y borrando as la bandera. Las instrucciones CBI y SBI
slo trabajan con los registros $00 a $1F.
73
Todos los bits de este registro son de escritura o lectura. El valor inicial de este registro es 0x00.
La descripcin de los bits es la siguiente:
Bit 7-I: Habilitacin de Interrupcin Global:
Este bit es el que permite habilitar las interrupciones cuando est a 1. El control individual de las
interrupciones es configurado en los registros GIMSK y TIMSK. Si este bit est a 0 todas las
interrupciones estn deshabilitadas independientemente del estado de los registros GIMSK y
TIMSK. Este bit es puesto a 0 por hardware en el momento en el que se produce la interrupcin y
es puesto de nuevo a uno tras la instruccin RETI que sirve para producir el retorno de
interrupcin.
74
Puntero de Pila SP
75
El puntero de pila general de la tecnologa AVR es de 16 bits y est construido sobre dos registros
de 8 bits localizados en las posiciones $3E($5E) y $3D($5D). Dado que el microcontrolador
AT90S8515 soporta 64 kB de memoria externa SRAM, los 16 bits son utilizados:
Todos los bits son de lectura y escritura y en estado inicial los 16 bits estn a cero.
El puntero de Pila apunta al rea de pila de la SRAM de datos donde se localizan la pila
de interrupcin y de subrutina. Este espacio de la pila en la SRAM de datos debe ser
definido por el programa antes de que se ejecute cualquier llamada a subrutina o se
habiliten interrupciones. El puntero de pila debe estar a set para apuntar por encima de
$60. El puntero de pila es decrementado en 1 cuando los datos se introducen en la pila
con la instruccin PUSH y es decrementado en 2 cuando una direccin se introduce en la
pila con llamadas a subrutinas e interrupciones. El puntero de pila es incrementado en 1
cuando el dato se saca de la pila con la instruccin POP y es incrementado en 2 cuando
una direccin se saca de la pila con retorno de subrutina RET o retorno de interrupcin
RETI.
76
Fuentes de reset
Reset de Power-on
Reset externo
o Reset de Watchdog
o
o
o
o
o
o
o
Manejo de interrupcin
Registro de mascara de interrupcin general GIMSK
Registro de bandera de interrupcin general - GIFR
Registro de mascara de interrupcin
Timer/Contador-TIMSK
Registro de bandera de interrupcin
Timer/Contador - TIFR
Interrupciones externas
Tiempo de respuesta de interrupcin
Registro de control MCU MCUCR
del
del
Reset de Power-on. El MCU se resetea cuando el voltaje de suministro est debajo del
umbral de Power-on (VPOT).
Reset externo. El MCU se resetea cuando un nivel bajo est presente en el pin de RESET
durante ms de 50 ns.
Reset del Watchdog. El MCU se resetea cuando el periodo del timer watchdog expira y el
watchdog est habilitado.
Durante el reset, todos los registros de I/O se ponen a sus valores iniciales y el programa
empieza su ejecucin desde la direccin $000 hasta $00d. La instruccin puesta en la
direccin $000 debe ser la instruccin RJMP (salto relativo) a la rutina de manejo de
Reset. Si el programa nunca habilita una fuente de la interrupcin, los vectores de
interrupcin no se usan y el cdigo de programa regular puede ponerse en estas
posiciones. El diagrama del circuito en la siguiente figura muestra la lgica de Reset.
78
Figura 24.
Lgica de Reset
La Tabla que se muestra a continuacin define la temporizacin y los parmetros elctricos de la
circuitera de Reset.
79
Reset de Power-on
Un circuito de Reset de Power-on (POR) asegura que el dispositivo se resetea desde el
power-on. Un reloj del Timer interno del oscilador del Watchdog le impide al MCU
empezar hasta despus de un cierto periodo despus de que VCC ha alcanzado la tensin
umbral de Power-on (VPOT), sin tener en cuenta el tiempo de subida de VCC (vea la
siguiente figura). El bit FSTRT de fusible en la Flash puede programarse para dar un
tiempo de comienzo ms corto si un resonador cermico o cualquier otro oscilador de
rpido comienzo es usado como reloj del MCU.
80
Reset externo
Un Reset externo es generado por un nivel bajo en el pin de RESET '. Los pulsos de
Reset ms largos que 50 ns generarn un Reset, aunque no est corriendo el reloj. No se
garantiza que pulsos ms cortos generen un Reset. Cuando la seal aplicada alcanza los
niveles de tensin Umbral de Reset (VRST) en su parte positiva, el Timer de retraso
inicia el MCU despus de que haya pasado el periodo de Time-out tTOUT.
Manejo de interrupcin
82
Para interrupciones activadas por eventos que pueden permanecer estticos, la bandera de
interrupcin est a set cuando el evento ocurre. Si la bandera de interrupcin es borrada y la
condicin de interrupcin persiste, la bandera no estar a set hasta que el evento ocurra la
prxima vez.
Tenga en cuenta que la interrupcin de nivel externa no tiene un Bandera y slo se recordar
mientras la condicin de interrupcin est activa.
83
Interrupciones
84
Cuando este bit est puesto a 1 juntamente con el bit I del registro Estado y el valor del registro
de 16 bits OCR1B coindice con el del Timer1 se produce una interrupcin cuyo vector es el $005.
88
Mediante este registro puede conocerse cual de las posibles causas de interrupcin mediante los
Timer/Contador es la que ha generado una, o tambin puede determinarse cuando los
Timer/Contador son desbordados en su cuenta.
El bit OCF1B est a set (uno) cuando se compara el Timer/Contador1 y el dato en OCR1B
(Registro 1B de comparacin de salida). OCF1B es borrado por hardware al ejecutar el vector de
manejo de interrupciones correspondiente. Alternativamente, OCF1B es borrado escribiendo un
"1" lgico en la bandera. Cuando el bit I en SREG, OCIE1B (habilitacin de interrupcin B de
comparacin del Timer/Contador1) y el OCF1B estn a set (uno), se ejecuta la interrupcin de
comparacin del Timer/Contador1.
Interrupciones Externas.
Las interrupciones externas se pueden realizar mediante los pines INT1 e INT0 que se encuentran
en las patitas 3 y 2 del puerto D respectivamente. Las interrupciones pueden ser producidas por
nivel alto o bajo segn se configure en los bits 0 y 1 del registro MCUCR.
Si son habilitadas, las interrupciones se activarn aun cuando los pines INT0/INT1 se
configuren como salidas. Las interrupciones externas se establecen como se describe en la
especificacin para el registro de control MCU (MCUCR).
La ejecucin de la respuesta a una interrupcin es un proceso que tiene una duracin mnima de 4
ciclos de reloj. Despus de estos 4 ciclos de reloj el programa ejecuta el cdigo de programa
correspondiente a la interrupcin producida. Durante este perodo de 4 ciclos de reloj, el Contador
de Programa (2 bytes) es colocado en el Stack, y el Stack Pointer es decrementado en dos
unidades. Tras producirse una interrupcin la instruccin que se ejecutar en el vector
correspondiente ser una de salto RJMP a la rutina de cdigo correspondiente y esta es una
instruccin que tarda dos ciclos de reloj. Si una interrupcin es producida mientras se est
ejecutando una instruccin multiciclo se esperar a que la instruccin finalice de ser ejecutada
antes de atender a la interrupcin.
El retorno de una rutina de interrupcin dura 4 ciclos de reloj. Durante estos 4 ciclos de
reloj el Contador de Programa (2 bytes) es nuevamente cargado con su valor del Stack y el Stack
Pointer es incrementado en dos unidades. Cuando el microcontrolador sale de la ejecucin del
cdigo de interrupcin, vuelve al programa principal y ejecuta exactamente la instruccin que se
encontraba antes de que se produjera la interrupcin.
91
Este registro contiene los bits de control para las funciones generales del MCU.
93
La interrupcin externa 0 es activada cuando el bit INT0 del registro GIMSK est activado y
cuando el bit I del registro Estado tambin. Pero tambin es posible definir por que nivel se quiere
que sea la interrupcin como se muestra en la siguiente tabla:
Modos de Descanso.
Para entrar en el modo sleep el bit SE del registro MCUCR debe estar activado. Una vez que el
microcontrolador est en SLEEP, si se produce una interrupcin se ejecutar la subrutina de
interrupcin correspondiente y a continuacin se ejecutar la instruccin que se encuentre a
continuacin de la instruccin SLEEP en el programa principal. Cuando se entra en el modo
SLEEP el contenido del archivo de registros, la SRAM y la memoria permanecen inalterados. Si
ocurre un Reset mientras se est en modo SLEEP el microcontrolador despierta y se ejecuta el
programa desde el vector $000.
Nota: Si se utiliza una fuente de interrupcin para despertar al microcontrolador cuando ste se
encuentra en Power Down Mode es necesario que la seal se mantenga durante un perodo
superior a 16 ms que es el tiempo que tarda el oscilador en recuperar su funcionamiento. En caso
contrario, la bandera de interrupcin se pondra a cero antes de que el microcontrolador empezara
la ejecucin de la interrupcin.
94
Modo Idle.
Cuando el bit SM est a cero y se ejecuta la instruccin SLEEP el microcontrolador entra en Idle
Mode, que es un estado en el que se permite a los Timer/Contador, al watchdog y al sistema de
interrupciones que sigan funcionando. Esto permite que el microcontrolador despierte tanto por
interrupciones externas como internas (producidas por los Timer) as como las interrupciones del
Watchdog. Si la interrupcin por el Comparador Analgico no es requerida por el programa del
microcontrolador, el comparador analgico puede ser desactivado mediante el bit ACD del
registro de Control del Comparador Analgico ACSR. Esto reducir el consumo durante el Idle
Mode.
Introduccin
Preescaler del Timer/Contador
Timer/Contador 0 de 8 Bits
95
Timer/Contadores
Los cuatro diferentes tipos de preescalamiento son: CK/8, CK/64, CK/256 y CK/1024 donde CK
es el reloj oscilador. Para los dos Timer/Counters.
Timer/Contador0 de 8 bits
El Timer/Contador 0 de 8 bit puede seleccionar la fuente del reloj de CK, del preescaler CK o de
un pin externo. Adems, puede detenerse como se describe en la especificacin del registro de
control (TCCR0) para el Timer/Contador 0. La bandera de estado de desbordamiento se encuentra
en el registro de banderas de interrupcin (TIFR) del Timer/Contador. Las seales de control se
encuentran en el registro de control (TCCR0) del Timer/Contador 0. Las opciones de habilitar /
deshabilitar interrupciones para el Timer/Contador 0 se encuentran en el registro de
enmascaramiento de interrupciones (TIMSK) del Timer/Contador.
menos un periodo de reloj interno del CPU. La seal de reloj externo se prueba en el
flanco ascendente del reloj interno del CPU.
Las caractersticas del Timer/Contador 0 de 8 bit ofrecen una alta resolucin y un uso de
alta exactitud con las opciones ms bajas del preescaler. De forma similar, las opciones
altas del preescaler hacen til al Timer/Contador 0 para funciones de velocidades ms
bajas o funciones cronometradas exactas para acciones poco frecuentes.
La siguiente figura muestra el diagrama de bloques del Timer/Contador0.
98
99
Con estos tres bits se selecciona el preescaler que se quiere que tenga el
Timer/Contador 0 segn la siguiente tabla:
El Timer/Contador 1 de 16 bit puede seleccionar la fuente del reloj de CK, del preescaler CK o de
un pin externo. Adems, puede detenerse como se describe en la especificacin para los registros
de control (TCCR1A y TCCR1B) para el Timer/Contador 1. Las diferentes banderas de estado (
101
Cuando el Timer/Contador 1 tiene reloj externo, la seal externa se sincroniza con la frecuencia
del oscilador del CPU. Para asegurar el funcionamiento apropiado del reloj externo, el tiempo
mnimo entre dos transiciones de los relojes externos debe ser por lo menos un periodo de reloj
interno del CPU. La seal de reloj externo se prueba en el flanco creciente del reloj interno del
CPU.
Las caractersticas del Timer/Contador 1 de 16 bit ofrecen una alta resolucin y un uso de alta
exactitud con las opciones ms bajas del preescaler. De forma similar, las opciones altas del
preescaler hacen til al Timer/Contador 1 para funciones de velocidades ms bajas o funciones
cronometradas exactas para acciones poco frecuentes.
La funcin de Captura de Entrada del Timer/Contador 1 proporciona una captura del contenido
del Timer/Contador 1 al Registro de Captura de Entrada (ICR1), activado por un evento externo
en el pin de captura de entrada (ICP). Las opciones de evento de captura son definidas por el
Registro del control (TCCR1B) del Timer/Contador 1. Adems, el Comparador Analgico puede
ponerse a "1" para activar la Captura de la Entrada. Vaya al apartado "Comparador Analgico"
para conocer los detalles. El pin lgico de los ICP se muestra en la siguiente Figura.
102
Los bits de control COM1A1 y COM1A0 determinan cualquier accin sobre un pin de
salida llevando a cabo la comparacin en el Timer/Contador 1. Cualquier accin sobre un
pin de salida afecta al pin OC1A (Output CompareA pin 1). sta es una funcin
alternativa a un puerto de I/O y el bit de control de direccin correspondiente debe
ponerse a set (uno) para controlar el pin de salida. La configuracin del control se puede
ver en la tabla que se muestra a continuacin.
103
104
Cuando el bit de control CTC1 esta a set (uno), el Timer/Contador 1 es reseteado a $0000
en el ciclo de reloj siguiente a la comparacin A. Si el bit de control CTC1 es borrado, el
Timer/Contador1 contina contando y no es alterado por la operacin de comparacin.
Desde que la operacin de comparacin es detectada en el ciclo de reloj del CPU que
sigue a la operacin, esta funcin se comportar de forma diferente cuando un preescaler
mayor que 1 se use para el timer. Cuando se usa un preescaler de 1 y el registro de
comparacin A se pone a C, el timer contar como sigue si CTC1 est a set:
... | C-2 | C-1 | C | 0 | 1 | ...
Cuando el preescaler se pone para dividir por 8, el timer contar de esta forma:
... | C-2, C-2, C-2, C-2, C-2, C-2, C-2, C-2 | C-1, C-1, C-1, C-1, C-1, C-1, C-1, C-1 | C, 0, 0, 0, 0,
0, 0, 0 | ...
106
107
Este registro de 16-bit contiene los valores del preescaler del Timer/Counter1 de 16-bit . Para
asegurar que ambos, los bytes altos y bajos se leen y se escriben simultneamente cuando el CPU
accede a estos registros, el acceso es realizado usando un registro temporal (TEMP) de 8-bit. Este
registro temporal tambin se usa al acceder a OCR1A, OCR1B e ICR1. Si el programa principal y
las rutinas de interrupcin realizan el acceso a registros usando TEMP, las interrupciones deben
desactivarse durante el acceso desde el programa principal (y desde las rutinas de interrupcin si
las interrupciones se permiten desde dentro de las rutinas de interrupcin).
Cuando el CPU escribe en el byte alto TCNT1H, el dato escrito se pone en el registro TEMP.
Luego, cuando el CPU escribe en el byte bajo TCNT1L, este byte de datos se combina con el byte
de datos del registro TEMP, y los 16 bits se escriben simultneamente en el registro TCNT1 del
Timer/Contador1. Por consiguiente, se debe acceder primero al byte alto TCNT1H por una
operacin de escritura del registro de 16-bit.
Cuando el CPU lee el byte bajo TCNT1L, el dato del byte bajo TCNT1L se enva a el CPU y el
dato del byte alto TCNT1H se pone en el registro TEMP.
Cuando el CPU lee los datos en el byte alto TCNT1H, la CPU recibe el dato en el registro TEMP.
Por consiguiente, se debe acceder primero al byte bajo TCNT1L por una operacin de lectura del
registro de 16-bit.
108
Los registros de comparacin de salida del Timer/Contador1 contienen los datos a ser
comparados continuamente con el Timer/Contador1. Las acciones en las operaciones de
comparacin estn especificadas en los registros de control y estado del Timer/Contador1. Una
operacin de comparacin slo ocurre si el Timer/Contador1 cuenta al valor de OCR. Una
109
escritura por software que pone a set TCNT1 y OCR1A o OCR1B al mismo valor no genera una
operacin de comparacin.
Como los Registros de Comparacin de salida (OCR1A y OCR1B) son registros de 16bit, un registro temporal (TEMP) se usa cuando OCR1A/B se escriben para asegurar que
se actualizan ambos bytes simultneamente. Cuando el CPU escribe el byte alto,
OCR1AH o OCR1BH, el dato se guarda temporalmente en el registro TEMP. Cuando el
CPU escribe el byte bajo, OCR1AL o OCR1BL, el registro TEMP se escribe
simultneamente a OCR1AH o OCR1BH. Por consiguiente, el byte alto OCR1AH u
OCR1BH debe escribirse primero para una completa operacin de escritura de registro de
16-bit.
El registro TEMP tambin se usa al acceder a TCNT1 e ICR1. Si el programa principal y
las rutinas de interrupcin realizan el acceso a registros que usan TEMP, deben
desactivarse las interrupciones durante el acceso del programa principal (y de las rutinas
de interrupcin si las interrupciones se permiten desde dentro de las rutinas de
interrupcin).
Registro de Captura de entrada del Timer/Contador1 ICR1H e ICR1L
110
Cuando el flanco de subida o bajada (segn la seleccin del flanco de captura de entrada [ICES1])
de la seal en el pin de captura de entrada (ICP) se detecta, el valor actual del Timer/Contador1 se
transfiere al Registro de Captura de Entrada (ICR1). Al mismo tiempo, la bandera de captura de
entrada (ICF1) est a set (uno).
Como el Registro de Captura de Entrada (ICR1) es un registro de 16-bit, un registro
temporal (TEMP) se usa cuando se lee ICR1 para asegurar que se leen ambos bytes
simultneamente. Cuando el CPU lee el byte bajo ICR1L, el dato se enva al CPU y el dato del
byte alto ICR1H se pone en el registro TEMP. Cuando el CPU lee los datos en el byte alto
ICR1H, el CPU recibe el dato en el registro TEMP. Por consiguiente, debe accederse primero al
byte bajo ICR1L para una completa operacin de lectura del registro de 16-bit.
El registro TEMP tambin se usa al acceder a TCNT1, OCR1A y OCR1B. Si el programa
principal y las rutinas de interrupcin realizan el acceso a registros que usan TEMP, deben
desactivarse las interrupciones durante el acceso del programa principal (y de las rutinas de
interrupcin si las interrupciones se permiten desde dentro de las rutinas de interrupcin).
111
Observe que en el modo PWM, los 10 bits OCR1A/OCR1B menos significantes, cuando son
escritos, se transfieren a una posicin temporal. Son latcheados cuando el Timer/Contador1
alcanza el valor mximo. Esto previene que ocurran pulsos de PWM de longitud impar (glitches)
en caso de una desincronizacin en la escritura en OCR1A/OCR1B. Vea la siguiente figura como
ejemplo.
Durante el tiempo entre la escritura y la operacin del latch, una lectura de OCR1A o
OCR1B leer el contenido de la posicin temporal. Esto significa que el valor ms
recientemente escrito siempre se leer fuera de OCR1A/B.
112
Nota: X = A o B
En modo PWM, la bandera1 de desbordamiento del Timer (TOV1) est a set cuando el
contador pasa de $0000. La interrupcin1 de desbordamiento del Timer opera
exactamente como en el modo de Timer/Contador normal, es decir, que se ejecuta cuando
TOV1 est a set, con tal de que la interrupcin1 de desbordamiento del Timer y las
interrupciones globales estn habilitadas. Esto tambin se aplica a las banderas de
comparacin1 de salida del Timer y a las interrupciones.
Timer Watchdog
Registro de control del Timer Watchdog
113
TIMER WATCHDOG
El Watchdog es un Timer que acta con su propio oscilador integrado en el propio chip
cuya frecuencia es de 1 MHz. ste es el valor tpico a Vcc = 5V. Controlando el
preescaler del Timer Watchdog, el intervalo de reset del Watchdog puede ajustarse (vea
la Tabla 14 para una descripcin detallada). La instruccin WDR (reset del Watchdog)
resetea el Timer Watchdog. Pueden seleccionarse ocho periodos de ciclo de reloj
diferentes para determinar el periodo de reset. Si el periodo de reset expira sin otro reset
de Watchdog, el AT90S8515 se resetea y ejecuta desde el vector de reset. Para prevenir
una desactivacin involuntaria del Watchdog cuando ste se va a desconectar, se debe
seguir una secuencia de desconexin especial. Vaya a la descripcin del registro de
control del Timer Watchdog para conocer ms detalles.
Cuando el bit WDE es borrado, este bit debe ponerse a set (uno). De otro modo, el
Watchdog no se desactivar. Una vez se ponga a set, el hardware podr borrar este bit a
cero despus de cuatro ciclos de reloj. En la descripcin del bit WDE se observa como se
realiza un procedimiento de desactivacin del Watchdog.
Bit 3WDE: Habilitacin del Watchdog
Cuando el WDE est a set (uno) el Timer Watchdog se habilita y si el WDE es borrado (cero) la
funcin del Timer Watchdog est deshabilitada. WDE slo puede borrarse si el bit de WDTOE
est a set (uno). Para desactivar un Timer Watchdog habilitado, debe seguirse el procedimiento
siguiente:
1. En la misma operacin, escriba un "1" lgico en WDTOE y WDE. Un "1" lgico debe ser
escrito en WDE aunque est a uno antes de empezar la operacin de deshabilitacin.
115
2. Dentro de los prximos cuatro ciclos de reloj, escriba un "0" lgico en WDE. Esto desactiva el
Watchdog.
Los bits WDP2, WDP1 y WDP0 determinan el preescaler del Timer Watchdog cuando el
Timer Watchdog est habilitado. Los diferentes valores del preescaler y sus
correspondientes periodos de Time-out se muestran en la tabla siguiente.
Nota: La frecuencia del oscilador del Watchdog depende del voltaje como se muestra en la
seccin de las Caractersticas Elctricas.
La instruccin WDR (reset del Watchdog) siempre debe ejecutarse antes de que el Timer
Watchdog se habilite. Esto asegura que el periodo de reset estar de acuerdo con la situacin del
predivisor del Timer Watchdog. Si el Timer Watchdog se habilita sin reset, no puede empezar a
contar desde cero.
Para evitar un reset involuntario del MCU, el Timer Watchdog debe deshabilitarse
o debe resetearse antes de cambiar la seleccin del predivisor.
116
El tiempo de acceso a escritura est en el rango de 2.5 - 4 ms, dependiendo de los voltajes de
VCC. Una funcin de autocuenta, sin embargo, permite al software del usuario detectar cuando
puede escribirse el prximo byte. Si el programa del usuario contiene cdigo que escribe en la
EEPROM, debe tomarse alguna precaucin. En energas muy filtradas, VCC es probable que
suba o caiga despacio en power-up/down. Esto causa que el dispositivo durante algn periodo de
tiempo corra a un voltaje ms bajo del que se especific como mnimo para la frecuencia de reloj
usado. El funcionamiento del CPU bajo estas condiciones puede provocar que el contador de
programa realice saltos involuntarios y en el futuro ejecutar el cdigo de escritura de EEPROM.
Para afianzar la integridad de la EEPROM, se aconseja al usuario usar un circuito externo de reset
de bajo voltaje en este caso.
117
118
Para la operacin de escritura de la EEPROM, el registro EEDR contiene los datos que van a ser
escritos en la EEPROM en la direccin dada por el registro EEAR. Para la operacin de lectura
de la EEPROM, el EEDR contiene los datos ledos fuera de la EEPROM en la direccin dada por
EEAR.
4. Escriba un "1" lgico en el bit EEMWE de EECR (para poder escribir un "1"
lgico al bit EEMWE, el bit EEWE debe escribirse a cero en el mismo ciclo).
5. Dentro de los cuatro ciclos de reloj posteriores a poner a set EEMWE, escriba un "1"
lgico en EEWE.
Precaucin: Una interrupcin entre el paso 4 y el paso 5 har que falle el ciclo de escritura, ya
que la habilitacin de escritura del maestro de la EEPROM habr terminado. Si una rutina de
interrupcin accede a la EEPROM est interrumpiendo otro acceso a la EEPROM, se modificarn
los registros EEAR o EEDR y causarn el fallo de acceso a EEPROM de la accin interrumpida.
Se recomienda tener la bandera de interrupcin global borrado durante los cuatro ltimos pasos
para evitar estos problemas.
La interconexin entre los CPUs del maestro y del esclavo con el SPI se muestra en la
siguiente figura. El pin PB7(SCK) es el reloj de salida en el modo maestro y es la entrada
de reloj en el Modo esclavo. Escribiendo en el registro de datos del SPI del maestro, el
CPU pone en marcha el generador de reloj del SPI y el dato escrito se desplaza fuera del
pin PB5(MOSI) y entra en el pin PB5(MOSI) del CPU del esclavo. Despus de mover un
byte, el generador de reloj del SPI se detiene y pone a set la bandera de fin de transmisin
(SPIF). Si el bit de habilitacin de interrupcin del SPI (SPIE) en el registro SPCR est a
set, una interrupcin es solicitada. La entrada de seleccin del esclavo, PB4(SS'), se pone
a nivel bajo para seleccionar un dispositivo SPI esclavo individual. Los dos registros de
desplazamiento en el maestro y en el esclavo puede ser considerado como un registro de
desplazamiento circular de 16-bit distribuido.
Cuando el dato se desplaza del maestro al esclavo, el dato tambin se desplaza en la direccin
opuesta, simultneamente. Esto significa que durante un ciclo de desplazamiento, el dato en el
maestro y en el esclavo se intercambia.
Cuando se configura el SPI como maestro (MSTR en SPCR est a set), el usuario puede
determinar la direccin del pin SS'. Si SS' se configura como una salida, el pin es un pin
de salida general que no afecta al sistema SPI. Si SS' se configura como una entrada,
debe mantenerse a nivel alto para asegurar el funcionamiento SPI del maestro. Si el pin
SS' se maneja a nivel bajo por la circuitera perifrica cuando el SPI se configura como
maestro con el pin SS' definido como una entrada, el sistema SPI interpreta esto como
otro maestro que selecciona el SPI como un esclavo y empieza a enviarle datos. Para
evitar la disputa en el bus, el sistema SPI realiza las acciones siguientes:
1. El bit MSTR en SPCR es borrado y el sistema SPI se convierte en esclavo. Como resultado de
que el SPI se vuelva esclavo, los pines MOSI y SCK se vuelven entradas.
2. La Bandera SPIF en SPSR est a set, y si la interrupcin de SPI se habilita y el bit I en SREG
est a set, la rutina de interrupcin se ejecutar.
123
durante una transmisin, el SPI dejar de enviar y recibir inmediatamente y ambos datos
recibidos y transmitidos deben ser considerados como perdidos.
125
126
El bit WCOL (y el bit SPIF) se borran (cero) leyendo primero el registro de estado del SPI
cuando WCOL est a set (uno), y despus accediendo al registro de datos del SPI.
El interface SPI en los AT90S8515 tambin se usa para la memoria de programa y para la
transmisin o recepcin de EEPROM.
Registro de datos del SPI SPDR
El registro de datos del SPI es un registro del lectura / escritura usado para la transferencia de
datos entre el archivo de registro y el registro de desplazamiento del SPI. Escribiendo al registro
comienza la transmisin de los datos.
Transmisin de datos
Recepcin de datos
Control de la UART
Registro de datos de I/O de la UART - UDR
Registro de estado de la UART - USR
Registro de control de la UART - UCR
127
Los AT90S8515 ofrecen un Receptor y Transmisor Asncrono Universal full duplex (UART) con
registros de recepcin y transmisin separados. Las caractersticas principales son:
TRANSMISIN DE DATOS
La transmisin de los datos se comienza escribiendo los datos a transmitir en el registro de datos
de I/O de la UART, UDR. Los datos se transfieren de la UDR al registro de desplazamiento de
Transmisin cuando:
Un nuevo carcter se ha escrito en UDR despus de que el bit de stop del carcter
anterior haya sido enviado. El registro de desplazamiento es cargado inmediatamente.
Un nuevo carcter se ha escrito en UDR antes de que el bit de stop del carcter
anterior haya sido enviado. El registro de desplazamiento es cargado cuando el
bit de stop del carcter a transmitir haya sido enviado.
129
RECEPCIN DE DATOS
La figura siguiente de Recepcin de datos muestra un diagrama de bloques del Receptor
de la UART.
130
Si, sin embargo, se detecta un bit de start vlido, se realiza la prueba de los bits de datos que
siguen al bit start. Estos bits tambin se prueban en las muestras 8, 9 y 10. El valor lgico
encontrado en por lo menos dos de las tres muestras se toma como el valor del bit. Todos los bits
se desplazan en el registro de desplazamiento Transmisor cuando son probados. La prueba de un
carcter entrante se muestra en la siguiente figura.
131
Si se descubre o no un bit de stop vlido al final de un ciclo de recepcin del carcter, el dato se
transfiere a UDR y la bandera RXC en USR est a set. UDR es de hecho dos registros fsicamente
separados, uno para los datos transmitidos y otro para los datos recibidos. Cuando UDR es ledo,
se accede al registro de datos de recepcin, y cuando UDR es escrito, se accede al registro de
datos de transmisin. Si se selecciona una palabra de datos de 9-bit (el bit CHR9 en el registro de
control del UART (UCR) est a set), el bit RXB8 en UCR est cargado con el bit 9 en el registro
de desplazamiento de transmisin cuando el dato se transfiere a UDR.
Si, despus de haber recibido un carcter, el registro UDR no se ha ledo desde el ltimo
recibido, la bandera de desbordamiento (OR) en USR est a set. Esto significa que el
ltimo byte de datos desplazado en el registro de desplazamiento no poda transferirse a
UDR y que se ha perdido. El bit OR pasa por un buffer y se actualiza cuando un byte de
datos vlido se lee en UDR. As, el usuario siempre debe verificar el bit OR despus de
leer el registro UDR para descubrir cualquier desbordamiento si el baud rate es alto o la
carga del CPU es alto.
Cuando el bit RXEN en el registro UCR es borrado (cero), el receptor est deshabilitado. Esto
significa que el pin PD0 puede usarse como un pin de I/O general. Cuando RXEN est a set, el
Receptor del UART se conectar a PD0 que est obligado a ser un pin de entrada sin tener en
cuenta la situacin del bit DDD0 en DDRD. Cuando se obliga a PD0 a ser entrada por la UART,
el bit PORTD0 todava puede usarse para controlar la resistencia de pull-up en el pin.
Cuando el bit CHR9 en el registro UCR est a set, los caracteres transmitidos y recibidos
son de 9 bits de longitud, ms los bits de start y stop. El noveno bit de dato para ser
132
transmitido es el bit TXB8 del registro UCR. Este bit debe ponerse al valor deseado antes
de que una transmisin sea comenzada escribiendo en el registro UDR. El noveno bit de
datos recibido es el bit RXB8 del registro UCR.
CONTROL DE LA UART
El registro UDR realmente son dos registros fsicamente separados que comparten la
misma direccin de I/O. Al escribir al registro, se escribe en el registro de datos de
transmisin de la UART. Al leer de UDR, se lee el registro de datos de recepcin de la
UART.
Registro de estado de la UART USR
El registro USR es un registro de solo lectura que proporciona informacin sobre el estado de la
UART.
interrupcin de recepcin de UART completa se ejecutar cuando RXC est a set (uno).
RXC es borrado leyendo UDR. Cuando se usa la interrupcin de recepcin de datos, la
rutina de interrupcin de recepcin de UART completa debe leer UDR para borrar RXC,
de otra forma una nueva interrupcin ocurrir una vez que la rutina de interrupcin
termine.
Bit 6TXC: Transmisin de UART completa
Este bit est a set (uno) cuando el carcter entero (incluso el bit de stop) en el registro de
desplazamiento de transmisin se ha desplazado fuera y ningn nuevo dato se ha escrito en UDR.
Esta bandera es especialmente til en interfaces de comunicaciones half-duplex, donde una
aplicacin de transmisin deba entrar en modo recepcin y libre el bus de comunicaciones
inmediatamente despus de completar la transmisin.
Cuando el bit TXCIE en UCR est a set y poniendo a set TXC provoca que se ejecute la
interrupcin de transmisin de UART completa. TXC es borrado por hardware al ejecutar el
vector de interrupcin correspondiente. Alternativamente, el bit TXC se borra (cero) escribiendo
un "1" lgico en el bit.
Cuando el bit UDRIE en UCR est a set, la interrupcin de transmisin de UART completa se
ejecuta mientras UDRE est a set. UDRE es borrado escribindole en UDR. Cuando se usa una
interrupcin de transmisin de datos, la rutina de interrupcin de registro de datos de la UART
vaco debe escribir en UDR para borrar UDRE, de otra forma una nueva interrupcin ocurrir
cuando la rutina de la interrupcin termine.
UDRE est a set (uno) durante el reset para indicar que el transmisor est listo.
134
135
El generador de Baud rate es un divisor de frecuencia que genera Baud rates de acuerdo
con la ecuacin siguiente:
136
Para frecuencias de cristal standard, los Baud rates normalmente usados pueden generarse usando
las situaciones de UBRR de la Tabla de Baud rates. Los valores de UBRR que producen un Baud
rate que difieren del valor real menos de 2% del Baud rate designado estn en negrita en la tabla.
Sin embargo, el uso de Baud rates que tienen ms de 1% de error no se recomienda. Errores
mayores proporcionan menor inmunidad al ruido.
137
El registro UBRR es un registro de 8-bit de lectura / escritura que especifica el baud rate
de la UART segn la ecuacin que se muestra al principio de esta pgina.
Introduccin
138
139
140
Puerto A
Puerto B
Puerto C
Puerto D
PUERTO A
Todos los pines del puerto tienen resistencias de Pull-up seleccionables individualmente.
Los buffers de salida del Puerto A pueden llevar 20 mA y as manejar directamente
displays LED. Cuando se usan los pines de PA0 a PA7 como entradas y ponen
externamente a Pull-low, pueden dar corriente si las resistencias de Pull-up internas se
activan.
Los pines del Puerto A tienen funciones alternativas relacionadas a la SRAM de datos externa
optativa. El Puerto A puede configurarse para ser el bus de datos / direcciones de bajo orden
multiplexado durante el acceso a la memoria de datos externa. En este modo, el Puerto A tiene
resistencias internas de Pull-up.
Cuando el Puerto A se pone en su funcin alternativa mediante el bit SRE (SRAM externa
habilitada) en MCUCR (Registro de control MCU), las situaciones alternativas sustituyen al
Registro de Direccin de Datos.
142
La direccin de los pines de entrada del Puerto A (PINA) no es un registro; esta direccin
habilita el acceso al valor fsico en cada pin del Puerto A. Al leer PORTA, se lee el latch
de datos del Puerto A y cuando se lee PINA, se leen los valores lgicos existentes en los
pines.
Los ocho pines del Puerto A tienen la misma funcionalidad cuando se usan como pines de I/O
digitales. PAn, pin de I/O general: El bit DDAn en el registro DDRA selecciona la direccin de
este pin. Si DDAn est a set (uno), PAn se configura como un pin de salida. Si DDAn se borra
(cero), PAn se configura como un pin de entrada. Si PORTAn est a set (uno) cuando el pin se
configura como un pin de entrada, se activa la resistencia Pull-up del MOS. Para desconectar la
resistencia de Pull-up, el PORTAn tiene que ser borrado (cero) o el pin tiene que ser configurado
como un pin de salida. Los pines del Puerto A estn en tri-estado cuando una condicin de Reset
se pone activa, aun cuando el reloj no est activo.
143
144
PUERTO B
El Puerto B es un puerto bidireccional de I/O de 8-bit. Se asignan tres posiciones de
direccin de memoria de I/O para el Puerto B, uno para el Registro de DatosPORTB,
$18($38), Registro de Direccin de DatosDDRB, $17($37) y los pines de entrada del
Puerto BPINB, $16($36). Las direcciones de los pines de entrada del Puerto B son slo
de lectura, mientras que el Registro de datos y el Registro de Direcciones de Datos es de
lectura / escritura. Todos los pines del puerto tienen resistencias de Pull-up seleccionables
individualmente. Los buffers de salida del Puerto B pueden llevar 20 mA y as manejar
directamente displays LED. Cuando se usan los pines de PB0 a PB7 como entradas y
ponen externamente a Pull-low, pueden dar corriente si las resistencias de Pull-up
internas se activan.
Los pines del Puerto B con sus funciones alternativas se muestra en la siguiente tabla.
146
Cuando los pines se usan para las funciones alternativas, los registros DDRB y PORTB
tienen que ser puestos segn la descripcin de las funciones alternativas.
Registro de datos del Puerto B PORTB
147
Los ocho pines del Puerto B tienen la misma funcionalidad cuando se usan como pines de I/O
digitales. PBn, pin de I/O general: El bit DDBn en el registro DDRB selecciona la direccin de
este pin. Si DDBn est a set (uno), PBn se configura como un pin de salida. Si DDBn se borra
(cero), PBn se configura como un pin de entrada. Si PORTBn est a set (uno) cuando el pin se
configura como un pin de entrada, se activa la resistencia Pull-up del MOS. Para desconectar la
resistencia de Pull-up, el PORTBn tiene que ser borrado (cero) o el pin tiene que ser configurado
como un pin de salida. Los pines del Puerto B estn en tri-estado cuando una condicin de Reset
se pone activa, aun cuando el reloj no est activo.
148
SCKPuerto B, Bit 7
SCK: Pin de salida del reloj maestro, pin de entrada del reloj esclavo para el canal SPI. Cuando el
SPI se habilita como esclavo, este pin se configura como una entrada sin tener en cuenta la
situacin de DDB7.
Cuando el SPI se habilita como un maestro, la direccin del dato de este pin es controlada
a travs de DDB7. Cuando el pin es obligado a ser una entrada, el Pull-up todava puede ser
controlado por el bit PORTB7. Vea la descripcin del puerto SPI para conocer ms detalles.
MISOPuerto B, Bit 6
MISO: Pin de entrada de datos maestro, pin de salida de datos esclavo para el canal SPI.
Cuando el SPI se habilita como un maestro, este pin se configura como una entrada sin
tener en cuenta la situacin de DDB6. Cuando el SPI se habilita como esclavo, la
direccin del dato de este pin es controlada a travs de DDB6. Cuando el pin es obligado
a ser una entrada, el Pull-up todava puede ser controlado por el bit PORTB6. Vea la
descripcin del puerto SPI para conocer ms detalles.
MOSIPuerto B, Bit 5
MOSI: Salida de datos del maestro del SPI, entrada de datos del esclavo para el canal SPI.
Cuando el SPI se habilita como esclavo, este pin se configura como una entrada sin tener en
cuenta la situacin de DDB5.
Cuando el SPI se habilita como un maestro, la direccin del dato de este pin es controlada a
travs de DDB5. Cuando el pin es obligado a ser una entrada, el Pull-up todava puede ser
controlado por el bit PORTB5. Vea la descripcin del puerto SPI para conocer ms detalles.
SSPuerto B, Bit 4
SS': Entrada de seleccin del puerto esclavo. Cuando el SPI se habilita como esclavo,
este pin se configura como una entrada sin tener en cuenta la situacin de DDB4. Como
esclavo, el SPI se activa cuando este pin se maneja a nivel bajo. Cuando el SPI se habilita
como un maestro, la direccin del dato de este pin es controlada a travs de DDB4.
Cuando el pin es obligado a ser una entrada, el Pull-up todava puede ser controlado por
el bit PORTB4. Vea la descripcin del puerto SPI para conocer ms detalles.
AIN1Puerto B, Bit 3
AIN1: Entrada negativa del Comparador analgico. Cuando se configura como una
entrada (se borra DDB3 [cero]) y con la resistencia interna de Pull-up del MOS
desconectada (se borra PB3 [cero]), este pin tambin sirve como la entrada negativa del
Comparador Analgico del Chip.
149
AIN0Puerto B, Bit 2
AIN0: Entrada positiva del Comparador analgico. Cuando se configura como una
entrada (se borra DDB2 [cero]) y con la resistencia interna de Pull-up del MOS
desconectada (se borra PB2 [cero]), este pin tambin sirve como la entrada positiva del
Comparador Analgico del Chip.
T1Puerto B, Bit 1
T1: Fuente de cuenta del Timer/Contador1. Vea la descripcin del Timer para conocer
ms detalles.
T0Puerto B, Bit 0
T0: Fuente de cuenta del Timer/Contador0. Vea la descripcin del Timer para conocer
ms detalles.
150
151
152
153
154
156
157
PUERTO C
Los pines del Puerto C tienen funciones alternativas relacionadas a la SRAM de datos externa
optativa.
La direccin de los pines de entrada del Puerto C (PINC) no es un registro; esta direccin
habilita el acceso al valor fsico en cada pin del Puerto C. Al leer PORTC, se lee el latch
de datos del Puerto C y al leer PINC, se leen los valores lgicos existentes en los pines.
Puerto C como I/O Digital General
Los ocho pines del Puerto C tienen la misma funcionalidad cuando se usan como pines de
I/O digitales. PCn, pin de I/O general: El bit DDCn en el registro DDRC selecciona la
direccin de este pin. Si DDCn est a set (uno), PCn se configura como un pin de salida.
Si DDCn se borra (cero), PCn se configura como un pin de entrada. Si PORTCn est a set
(uno) cuando el pin se configura como un pin de entrada, se activa la resistencia Pull-up
del MOS. Para desconectar la resistencia de Pull-up, el PORTCn tiene que ser borrado
159
(cero) o el pin tiene que ser configurado como un pin de salida. Los pines del Puerto C
estn en tri-estado cuando una condicin de Reset se pone activa, aun cuando el reloj no
est activo.
160
PUERTO D
El Puerto D es un puerto bidireccional de I/O de 8-bit con resistencias internas de Pullup. Se asignan tres posiciones de direccin de memoria de I/O para el Puerto D, uno para
el Registro de DatosPORTD, $12($32), Registro de Direccin de DatosDDRD,
$11($31) y los pines de entrada del Puerto DPIND, $10($30). Las direcciones de los
pines de entrada del Puerto D son de slo lectura, mientras que el Registro de datos y el
Registro de Direcciones de Datos es de lectura / escritura.
Los buffers de salida del Puerto D pueden llevar 20 mA. Como entradas, los pines del
Puerto D que se ponen externamente a Pull-low, pueden dar corriente si las resistencias de Pullup internas se activan.
Algunos pines del Puerto D tienen funciones alternativas como se muestra en la siguiente
tabla.
Cuando los pines se usan para la funcin alternativa, los registros DDRD y PORTD tienen que
ser puestos segn la descripcin de la funcin alternativa.
WR'Puerto D, Bit 6
WR' es la patilla de control de escritura de la memoria de datos externa. Vea "la Interface a
SRAM Externa" para tener una informacin detallada.
OC1APuerto D, Bit 5
OC1A: Salida de la operacin de comparacin de salida. El pin PD5 puede servir como una salida
externa cuando se produce la comparacin en el Timer/Contador1. El pin PD5 tiene que ser
configurado como salida (DDD5 a set [uno]) para que sirva esta funcin. Vea la descripcin del
Timer/Contador1 para tener ms detalles y saber cmo habilitar la salida. El pin OC1A tambin
es el pin de salida para la funcin del Timer en modo PWM.
INT1Puerto D, Bit 3
INT1: Fuente de Interrupcin externa 1. El pin PD3 puede servir como una fuente de interrupcin
externa al MCU. Vea la descripcin de las interrupciones para conocer ms detalles y saber cmo
habilitar la fuente.
INT0Puerto D, Bit 2
INT0: fuente de Interrupcin externa 0. El pin PD2 puede servir como una fuente de interrupcin
externa al MCU. Vea la descripcin de las interrupciones para conocer ms detalles y saber cmo
habilitar la fuente.
TXDPuerto D, Bit 1
Transmisin Datos (pin de salida de datos para la UART). Cuando el transmisor de UART se
habilita, este pin se configura como salida, sin tener en cuenta el valor de DDRD1.
RXDPuerto D, Bit 0
Recepcin Datos (pin de entrada de datos para la UART). Cuando el receptor de UART se
habilita, este pin se configura como una entrada, sin tener en cuenta el valor de DDRD0. Cuando
la UART obliga a este pin a ser una entrada, un "1" lgico en PORTD0 conectar la resistencia de
Pull-up interna.
163
164
165
166
167
168
169
Nota: (Modo 2) - En modo Paralelo, tras la programacin de los bits de Fusible est tambin
deshabilitado. Programe los bits de Fusible antes de programar los bits de "llave".
BITS DE FUSIBLE
Los AT90S8515 tienen dos bits de Fusible, SPIEN y FSTRT. Cuando el Fusible SPIEN se
programa ("0"), la Programacin Serie y la Transmisin de Datos se habilitan. El valor
predefinido es programado ("0"). Cuando el Fusible FSTRT se programa ("0"), se selecciona el
tiempo corto de "start-up". El valor predefinido est desprogramado ("1"). Los dispositivos con
este bit pre-programado ("0") puede funcionar por solicitud.
Los bits de Fusible no son accesibles en el Modo de Programacin Serie. El estado de los bits de
Fusible no es afectado por el borrado del Chip.
BYTES DE FIRMA
Todos los microcontroladores de Atmel tienen un cdigo de firma de tres byte que
identifica el dispositivo. Este cdigo puede leerse en modo Serie y Paralelo. Los tres
bytes residen en un espacio de direccin separado.
Para los AT90S8515(1) son :
171
El AT90S8515 se enva con los arrays del programa FLASH que est en el chip y la
memoria de datos EEPROM en el estado de borrado (es decir, contenido = $FF) y
preparado para ser programado. Este dispositivo soporta un modo de Programacin
Paralelo de alto-voltaje (12V) y un modo de Programacin Serie de bajo-voltaje. Los
+12V se usan nicamente para habilitar la programacin y ninguna corriente de
importancia pasa por este pin. El modo de Programacin Serie proporciona una manera
conveniente para transmitir el programa y los datos en los AT90S8515 dentro del sistema
del usuario.
Los arrays de la memoria de datos y memoria en los AT90S8515 se programan byte por byte en
cualquier modo de programacin. Para la EEPROM, un ciclo de auto-borrado es proporcionado
en el mismo tiempo de la operacin de escritura en el modo de Programacin Serie. Durante la
programacin, la tensin de suministro debe estar de acuerdo con la tabla siguiente.
PROGRAMACIN PARALELA
Esta seccin describe cmo Programar en Paralelo y verificar la memoria de programa
FLASH, la memoria de datos EEPROM, los bits "llave" (o cerradura) y los bits de
Fusible en el AT90S8515.
Nombres de seales
En esta seccin, algunos pines del AT908515 son referenciados por los nombres de la
seal que describen su funcin durante la Programacin Paralela. Vea la siguiente figura
y la tabla 27. Los pines no descritos en la tabla 27 son referenciados por los nombres del
172
pin. Los pines XA1/XA0 determinan la accin ejecutada cuando se da un pulso positivo
en el pin XTAL1. La codificacin de los bit se muestran en la tabla 28. Al pulsar WR' u
OE', la orden cargada determina la accin ejecutada. La orden es un byte donde a los
diferentes bits se les asignan funciones como se muestra en la tabla 29.
173
La orden de borrado de Chip borrar las memorias FLASH y EEPROM y los bits llave
(cerradura). Los bits llave no se resetean hasta que la FLASH y la EEPROM han sido
174
completamente borradas. Los bits de Fusible no se cambian. El borrado del Chip debe
realizarse antes de que la FLASH o la EEPROM se reprogramen.
Orden cargada "Borrado del Chip"
1.
2.
3.
4.
5.
176
177
1.
2.
3.
4.
Programacin de la EEPROM
El algoritmo para programar los bits de Fusible es como sigue (Vaya a la Programacin
de la FLASH para los detalles de la carga de las ordenes y datos):
1. A: Cargue la orden "0100 0000."
178
2. D: Cargue el byte bajo del dato. Bit n = "0" programar y bit n = "1" borra el bit
de Fusible.
3. D un pulso negativo de tWLWH_PFB de ancho (entre 1.0 y 1.8 ms. Valor tpico de
1.5 ms) a WR' para ejecutar la programacin. La programacin de los bits de
Fusible no genera ninguna actividad en el pin RDY/BSY '.
Programacin de los bits llave (Cerradura)
El algoritmo para programar los bit llave es como sigue (Vaya a la Programacin de la
FLASH para los detalles de la carga de las ordenes y datos):
1) A: Cargue la orden "0010 0000."
2) D: Cargue el byte bajo del dato. Bit n = "0" programar el bit llave (cerradura).
Bit 2 = Bit llave 2
Bit 1 = Bit llave 1
Bit 7 - 3, 0 = "1". Estos bits son reservados y no deben ser programados
El algoritmo para leer los bit de Fusible y llave (Cerradura) son como sigue (Vaya a la
Programacin de la FLASH para los detalles de la carga de las rdenes):
1. A: Cargue la orden "0000 0100."
2. Ponga OE' a "0" y BS a "1". Puede leerse ahora el estado de los bit de Fusible y
llave (Cerradura) en el dato ("0" significa programado).
Bit 7 = Bit llave 1
Bit 6 = Bit llave 2
Bit 5 = Bit de Fusible SPIEN
Bit 0 = Bit de Fusible FSTRT
3. Ponga OE' a "1."
Observe que BS necesita ser puesto a "1."
179
El algoritmo para leer los bytes de Firma es como sigue (Valla a la Programacin de la
FLASH para los detalles de la carga de las ordenes y direcciones):
1. A: Cargue la orden "0000 1000."
2. C: Cargue el byte bajo de la direccin ($00 - $02).
Ponga OE' a "0" y BS a "0". El byte de Firma seleccionado puede leerse ahora en
el
dato.
3. Ponga OE' a "1.
180
(1) Utilice tWLWH_CE para el borrado del Chip y tWLWH_PFB para programar
Notas:
los bits de Fusible.
(2) Si tWLWH
RDY/BSY '.
181
TRANSMISIN SERIE
Los arrays de memoria de datos y programa pueden programarse usando un Bus SPI
mientras el RESET ' est unido a GND. La interface Serie consiste en los pines SCK,
MOSI (entrada) y MISO (salida). Vea la siguiente figura. Despus de que el RESET ' se
ponga a nivel bajo, la instruccin de habilitacin de programacin necesita ser ejecutada
primero antes de que las instrucciones program/erase puedan ejecutarse.
182
1. Secuencia de Power-up: Aplique la energa entre VCC y GND mientras RESET '
y SCK se ponen a "0". Si un cristal no se conecta por los pines XTAL1 y XTAL2,
aplique una seal de reloj al pin XTAL1. En algunos sistemas, el programador no
puede garantizar que ese SCK se mantenga a nivel bajo durante el Power-up. En
este caso, en el RESET ' debe darse un pulso positivo de por lo menos dos ciclos
de XTAL1 de duracin despus de que SCK se ha puesto a "0."
2. Espere por lo menos 20 ms y habilite la Programacin Serie enviando la
instruccin de habilitacin de la Programacin Serie al pin MOSI (PB5).
3. Las instrucciones de Programacin Serie no funcionarn si la comunicacin no
est sincronizada. Cuando est en sincronizacin, el segundo byte ($53) har eco
hacia atrs cuando se emite el tercer byte de la instruccin de habilitacin de
Programacin. Sea el eco correcto o no, deben transmitirse los cuatro bytes de la
instruccin. Si el $53 no hiciera eco hacia atrs, d un pulso positivo a SCK y
emita una nueva instruccin de habilitacin de Programacin. Si el $53 no se ve
en 32 intentos, no hay ningn dispositivo funcional conectado.
4. Si se realiza un borrado de Chip (debe hacerse para borrar la FLASH), espere
tWD_ERASE despus de la instruccin, d un pulso positivo al RESET ' y vuelve a
empezar desde el paso 2. En la pgina de las Caractersticas de la Programacin
Serie se puede ver una tabla con los valores del tWD_ERASE.
5. En el array de FLASH o EEPROM se programa un byte en un momento que se
proporciona la direccin y datos junto con la instruccin apropiada de escritura.
Una posicin de memoria EEPROM se borra primero automticamente antes de
que los nuevos datos se escriban. Use la encuesta de datos para descubrir cuando
puede escribirse el prximo byte en la FLASH o en la EEPROM. Si el registro no
es usado, espere tWD_PROG antes de transmitir la prxima instruccin. En la pgina
de las Caractersticas de la Programacin Serie se puede ver una tabla con los
valores de tWD_PROG. En un dispositivo borrado, ningn $FFs en el archivo(s) de
datos necesita ser programado.
6. cualquier posicin de memoria puede ser verificada usando la instruccin de
lectura que devuelve el contenido de la direccin seleccionada en el pin de salida
Serie MISO (PB6).
7. Al final de la sesin de programacin, el RESET ' puede ponerse a nivel alto para
comenzar el funcionamiento normal.
8. Secuencia de Power-off (si se necesita):
Ponga XTAL1 a "0" (si no se usa un cristal).
Ponga RESET ' a "1."
Desconecte VCC.
183
En este momento el dispositivo est listo para un nuevo byte de EEPROM, el valor
programado se leer correctamente. Esto se usa para determinar cuando puede escribirse
el prximo byte. No trabajar para los valores P1 y P2, de modo que para programar estos
valores, el usuario tendr que esperar por lo menos el tiempo tWD_PROG prescrito antes de
programar el prximo byte. En la pgina de las Caractersticas de la Programacin Serie
se puede ver una tabla con los valores del tWD_PROG.
184
185
186
Figura 62. Ciclos de la memoria SRAM externa de datos sin estado de espera
187
188
Intencin:
Durante el proceso de desarrollo y prueba, una de las etapas ms complicadas y peligrosas
respecto de las maniobras del avin, es el aterrizaje. Por otro lado, se debe recordar que en esta
etapa del desarrollo, el control automtico de aterrizaje no est considerado; por tal motivo, se
dise un paracadas con la finalidad de brindar proteccin al avin en el momento del
aterrizaje. El procedimiento de recuperacin puede comenzar con el simple hecho de apagar el
motor. De sta forma, el avin desciende y solo se necesita desplegar el paracadas para ponerlo a
salvo. De ah la necesidad de su construccin, adems de resguardar los componentes
electrnicos que estn montados, independientemente del motor y el fuselaje.
Estado del arte:
En la ltima dcada ha habido muchas
compaas, que se han especializado en
disear paracadas de precisin y alto
desempeo; Los paracadas se han ido
especializando para cada tipo de aplicacin,
como son los militares, personales, carga y
formas desde elpticas hasta circulares, con
pesos que pueden ir desde un 1kg hasta 2500
Kg.
Algunas de las innovaciones en el
paracaidismo han sido por ejemplo, el uso
de dispositivos no pirotcnicos para la
apertura de paracadas, tela sin costuras,
vlvulas
mono-direccionales
para
incrementar el ascenso durante tiempos ms
prolongados.
189
190
Desarrollo Terico:
Para poder estimar el dimetro del paracadas esttico con seccin transversal circular, haremos las
siguientes suposiciones.
1. La apertura del paracadas se realiza cuando el avin se encuentra planeando y se dispone a
aterrizar, esto es; el motor se ha apagado.
2. El avin se encuentra a una altura suficiente z0, que permita abrir el paracadas y que el
avin alcance la velocidad de descenso vertical deseada, es decir; v zd
3. Suponemos que a la altura z0, la densidad del aire es constante y para todo fin prctico su
valor se puede considerar el que corresponde al nivel del mar, esto es: =1.29 Kg/m3.
4. Suponemos tambin que a la altura z0, el flujo de aire, es decir el fluido se comporta en
forma laminar a pesar de las superficies aerodinmicas del avin, es decir; alas, cola
vertical y cola horizontal. En otras palabras, consideramos una atmsfera uniforme.
5. Podemos considerar que la velocidad inicial de descenso vertical v z0 se puede expresar
como: v z0 = v sin donde v es la velocidad de desplazamiento del avin respecto de tierra.
Cuando la velocidad v del avin disminuye de manera que las superficies aerodinmicas ya no
producen fuerza de sustentacin, el avin esta sujeto a la accin de su propio peso. El empuje del
aire se considera despreciable ya que la densidad del aire es mucho menor que la del avin. Por otra
parte, consideramos que el rozamiento del avin con el aire es despreciable.
Tomemos el eje z, como el eje en la direccin de la gravedad y tomando el sentido positivo hacia
arriba. De esta forma, las ecuaciones de movimiento considerando v z0 = 0 sern:
a = g , v z = gt y z = z 0
gt 2
2
Ahora bien, cuando se abre el paracadas el avin est sometido a la accin de su peso y de una
fuerza de friccin proporcional al cuadrado de la velocidad, tal y como se muestra en la figura 1..
ma = -mg + kv z2
(1)
191
(2)
Donde
es la densidad del aire. Aunque la densidad del aire vara con la altura, en este clculo
aproximado se utilizar su valor al nivel del mar de 1.29 kg/m3.
A es el rea de la seccin transversal frontal del paracadas expuesta al aire.
es un coeficiente que depende de la forma del objeto
Valor aproximado de
Disco circular
1.2
Esfera
0.4
Avin
0.06
Tabla 1
Como el paracadas de 1/3 de hemisferio es menos aerodinmico que una esfera, pero ms
aerodinmico que un disco de frente, tomamos para el coeficiente de forma el promedio de
los valores dados para estas dos formas en la tabla, es decir, = 0.8.
192
Cuando el avin en cada libre despliega el paracadas, la velocidad se reduce bruscamente hasta
alcanzar una velocidad lmite constante v zd , que se obtiene cuando el peso del avin es igual a la
fuerza de friccin, es decir; cuando la aceleracin es cero. Por tanto podemos rescribir (1) como
v zd =
mg
k
(3)
La ecuacin (3) se conoce como velocidad de descenso y es la velocidad a la cual el avin tocar
tierra.
El valor de la velocidad de descenso es independiente de la velocidad vertical inicial del avin, al
momento de abrir el paracadas.
Ahora bien, retomando la ecuacin (1), podemos escribir la ecuacin de movimiento de la siguiente
manera:
dv z
k
= g + v z2
dt
m
(4)
Integramos la ecuacin del movimiento para obtener la velocidad vz del mvil en cualquier instante
t. Las condiciones iniciales son: v z0 es la velocidad vertical del avin en el instante t0 en el que abre
el paracadas, por tanto:
t
d =
t0
vz
1
d z
k
2
v z0 g
z
m
d =
t0
vz
v z0
1
k 2
z 1
g
mg
d z o bien g d =
t0
vz
v z0
1
k 2
z 1
mg
g d =
t0
vz
v z0
z
2 1
vz
d z
(5)
193
(6)
v z = v z d
(v
(v
z0
z0
v zd e
v zd e
g
( t t 0 )
v zd
g
( t t0 )
vzd
g
( t t0 )
vzd
g
( t t0 )
vzd
+ v z0 + v z d e
v z0 + v z d e
(7)
De igual manera, podemos obtener una expresin para vz en funcin de la posicin. Podemos
escribir que:
dv z dv z dz dv z
v z por tanto sustituyendo esta expresin en la ecuacin (1) tenemos:
=
=
dt
dz dt
dz
vz
dv z
k
dv z recordando la ecuacin (3) podemos rescribir la
v z = g + v z2 o bien gdz =
k 2
dz
m
vz 1
mg
expresin anterior como:
gdz =
vz
v z2
v z2
d
dv z
(8)
g d =
z0
vz
v z0
z
2 1
vz
d z
(9)
v z2
z
= d ln z2 z2
z0
d
2
(10)
v z = v z2 + v z2 v z2 e
d
d
0
2g
(z0 z )
v z2
0
(11)
Las ecuaciones (7) y (11), determinan la velocidad de descenso para cualquier instante de tiempo t y
para cualquier altura z respectivamente.
La ecuacin (3), determina la velocidad de descenso deseable que hace que el avin impacte tierra
sin sufrir daos estructurales ni tampoco daos en la electrnica del avin.
En este punto, se considera que una velocidad de descenso entre 1 y 1.5 m/s no daarn el avin, es
decir; 1 v z 1.5 m/s .
d
A
y que el diseo del paracadas esttico es de forma de 1/3 de
2
esfera, y la superficie que presenta la friccin es circular, el rea queda determinada por A = r 2
donde r es el radio del crculo. Sustituyendo esta expresin en k, tenemos k =
r 2
2
. Finalmente
r=
2mg
(12)
Como el paracadas esttico tipo 1/3 de hemisferio es menos aerodinmico que una esfera, pero ms
aerodinmico que un disco de frente, tomemos para el coeficiente de forma el promedio de los
valores dados para estas dos formas en la tabla 1, es decir, = 0.8.
La grfica de la figura 4, muestra las curvas del radio del paracadas contra la velocidad redescenso,
par un peso del avin de 5, 3 y 2 N.
195
Figura 4. Curvas del radio contra la velocidad de descenso para tres valores diferentes de peso
Como se aprecia en la grfica de la figura 4, mientras menor sea la velocidad de descenso, mayor
ser el radio del paracadas, lo cual era un resultado esperado.
Escogiendo el valor de 1.2 m/s como velocidad de descenso, y con un peso del avin de 5 N,
obtenemos de acuerdo con la ecuacin (12) un radio de:
r=
2 * 0.51* 9.8
1.29 * * 0.8 * (1.2) 2
= 1.464 m
r = 1.464 m
Por lo que el dimetro requerido ser:
D = 2r = 2(1.464m) = 2.928m
Para efectos del diseo el dimetro ser:
D = 2.8m
196
Diseo.
Para la construccin del paracadas, se
decidi consultar al cuerpo de paracaidistas
de la Infantera de Marina, debido a que
ellos realizan muchas prcticas de salto. As
se decidi acudir con ellos, los cuales,
permitieron tomar fotos y video de los
paracadas que poseen, y proporcionaron un
pedazo de tela, de la cual estn compuestos.
Los paracadas de la Infantera de Marina.
Estos son comprados en Estados Unidos y
tienen un costo aproximado de $30000
pesos, y pueden soportar personas de un
peso de hasta 180kg.
197
Desarrollo Experimental.
Para el diseo del paracadas primero se construy un modelo a escala, esto para tener la certeza
de la forma que iba a tener una vez terminado. Puesto que el paracadas ya desplegado debe tener
forma semiesfrica, se tom como molde una bola de unicel de 21.5 cm de dimetro (fig.1).
Se dividi la esfera en 18 secciones de 20 grados cada una, trazando sobre una tela de color
blanco, desde el polo superior de la semiesfera hasta la base de esta, dos lneas para marcar la
forma que tiene una seccin y poder tomar las medidas de esta (fig.2).
198
Figura 3. Plantilla.
Se fabric el paracadas con la tela de un paraguas, esta tela es similar a la que emplean los
paracaidistas de la marina, solo que es un poco ms gruesa y pesada. Las uniones fueron cocidas
junto con los cordones para sujetar el peso del objeto de prueba, estos cordones estn hechos con
hilo Nylon.
Resultados.
Se puso a prueba el funcionamiento del modelo a escala, dejando caer un objeto de 100g de peso
desde una altura aproximada de 10m. Se realizaron varias pruebas, midiendo el tiempo de
descenso, los resultados obtenidos se presentan en la siguiente tabla:
Intento
1
2
3
4
5
6
7
t=
1 7
ti
7 i =1
t = 2.98s
199
Con el tiempo promedio de descenso, y la altura h a la cual fue lanzado el paracadas, se calcula
la velocidad promedio de descenso:
_
v=
h
_
= 3.35 m/s
t
Cabe mencionar que al tener poco peso y tamao, el descenso de este paracadas era sumamente
afectado por el viento, por lo que en presencia de rfagas de este, el paracadas descenda
perdiendo toda estabilidad, as como que en ocasiones los hilos se enredaban y el paracadas no se
desplegaba. Sin embargo, en lo general, este modelo a escala funcion muy bien.
Paracadas en tamao requerido.
Despus del xito obtenido al realizar las pruebas con el modelo a escala, se pas a la fabricacin
del modelo en el tamao real requerido, as que se calcularon las dimensiones que debera tener
este paracadas, multiplicando por un factor de escala.
Este factor de escala E se determin dividiendo el dimetro requerido entre el dimetro de la bola
de unicel, de esta manera se tiene:
E=
Drequerido
Dunicel
2.8m
= 13
0.215m
Se multiplic por el factor de escala cada una de las medidas, para obtener as las dimensiones
que debe tener la plantilla para el paracadas en tamao natural. La figura 4 muestra la forma de
esta plantilla.
200
Ya con la plantilla, cortamos las 18 secciones necesarias para que el paracadas tenga la forma
correcta, la tela empleada fue tela de Nylon, que tiene prcticamente las mismas caractersticas
tanto en espesor, como en ligereza, que los paracadas profesionales empleados por el cuerpo de
paracaidistas de la Marina.
Se procedi a unir cada una de las secciones, esto se hizo cociendo un tirante en cada unin; esto
se hizo para reforzar el paracadas, ya que de no haberlo hecho, era muy probable la ocurrencia de
un desgarre en la tela impidiendo as el buen funcionamiento del diseo. Adems, se cocieron los
cordones necesarios para sujetar el avin de aeromodelismo al paracadas, estos cordones tienen
una longitud de 4m. En la figura 5 podemos observar el modelo ya terminado del paracadas.
201
Resultados.
Se realizaron varias pruebas para comprobar el funcionamiento del diseo. Los cordones del
paracadas fueron atados a una mochila, en cuyo interior se coloc una pesa de 5 kg y se dej caer
desde una altura aproximada de 15mts.
En los primeros dos lanzamientos no se tuvo xito, el paracadas no se despleg; despus de un
anlisis de las posibles causas, se concluy que los cordones del paracadas eran muy largos para
la altura de lanzamiento. Fig 6.
a)
202
b)
Fig.6 a) y b) Lanzamientos fallidos.
Se recort el tamao de los cordones a una longitud de 2.5 m con lo cual el problema fue
solucionado, todos lo lanzamientos siguientes fueron exitosos, a continuacin se muestran
algunas fotos con el paracadas desplegado.
203
204
En la siguiente tabla se muestran los tiempos de descenso para los cinco lanzamientos exitosos que
se tuvieron:
Intento
1
2
3
4
5
t=
1 5
ti
5 i =1
t = 2.24s
_
v=
h
_
= 6.69 m/s
t
Hay que hacer notar que sta es la velocidad media de descenso, no es la velocidad con que el
paracadas llega al piso; puesto que el tiempo registrado se midi desde que se lanz hasta el
aterrizaje. Para poder calcular la velocidad de descenso, hay que hacer las mediciones en el
momento en que se abre el paracadas; lo cual presenta una dificultad tcnica, ya que requerimos
conocer al menos, una altura dada dentro de la trayectoria de descenso del paracadas, para poder
cronometrar a partir de esa altura conocida el tiempo de descenso y por ende obtener la velocidad
de descenso del mismo. Esta prueba se har posteriormente.
206