Académique Documents
Professionnel Documents
Culture Documents
UIVERSAL
ASYCHROOUS
DESCRIPCI GEERAL.
La UART permite al microcontrolador establecer comunicaciones seriales RS-232 con
otros dispositivos. El tipo de comunicacin Full Duplex, Asncrona y las velocidades de
transferencia son de hasta 115200 b.p.s.
DISPOIBLE E
AT90S2313, AT90xS2333,
AT90xS8535.
AT90xS4433,
AT90S4414,
AT90S8515AT90xS4434,
APLICACIOES
La UART es a menudo utilizada para realizar interfaces con computadoras personales.
Tambin se utiliza para adquisicin de datos mediante la conexin con otros instrumentos
tales como multmetros.
REGISTROS IVOLUCRADOS
OMBRE
B7
B6
B5
B4
B3
B2
B1
B0
REGISTRO
RXC
TXC UDRE
FE
OR
USR
RXCIE TXCIE UDRIE RXEN TXEN CHR9 RXB8 TXB8
UCR
MSB
LSB
UBRR
MSB
LSB
UDR
Tabla UART-1. Registros Involucrados con UART
64
Continuacin...
BIT
SIGIFICADO
RXCIE RX Complete Interrupt
Enable
TXCIE TX Complete Interrupt
Enable
Data
Register
UDRIE UART
Interrupt Enable
RXE Receiver Enable
TXE Transmitter Enable
CHR9 9 Bit Characters
FUCI
1 Habilita Interrupcin de Recepcin.
1 Habilita Interrupcin de Transmisin.
1 Habilita Interrupcin de Registro de Datos
Vaco.
1 Habilita la Recepcin de datos.
1 Habilita la Transmisin de datos.
1 Hace que la longitud de los datos sea de 9
bits.
0 Longitud de los datos 8 bits.
Si CHR9 es 1 este bit contiene el noveno bit
recibido.
Si CHR9 es 1 este bit ser el noveno bit a
transmitir.
65
DISPOSITIVO
TXD
RXD
3
2
AT90S2313
(PD1)
(PD0)
3
2
AT90xS2333
(PD1)
(PD0)
3
2
AT90xS4433
(PD1)
(PD0)
11
10
AT90S8515
(PD1)
(PD0)
11
10
AT90S4414
(PD1)
(PD0)
15
14
AT90xS4434
(PD1)
(PD0)
7
6
AT90xS8535
(PB6)
(PB5)
Tabla UART-3. Localizacin de los pines TXD y RXD en la familia AVR.
(EMPAQUETADO DIP).
En las comunicaciones seriales la velocidad de transmisin / recepcin de datos es muy
importante. Esta velocidad esta relacionada con el Baud Rate.
Rate =
fosc
--------------(1)
16(UBRR + 1)
En la ecuacin (1) Baud Rate puede tomar cualquier valor, sin embargo los valores ms
comunes son mostrados en la Tabla UART-4.
66
Baud rate
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
Tabla UART-4. Valores ms comunes de Baud Rate.
En lugar de proporcionar una tabla completa con valores de UBRR, Baud Rate y
frecuencias de oscilador principal (fosc) se mostrar un mtodo para encontrar el valor de
UBRR en funcin de Baud Rate y fosc.
Para configurar las transmisiones / recepciones a un Baud Rate especfico (Tabla UART-3)
proceda como se muestra a continuacin.
EJEMPLO UMERICO.
Suponga que se desea configurar la UART a un Baud Rate de 19200. La frecuencia del
oscilador (cristal) del microcontrolador es 4MHz.
4000000
(a) UBRR =
1 =12.02
16(19200 )
(b) Redondeando se tiene UBRR =12
(c) Baud
Rate REAL =
4000000
= 19230.769
16(12 + 1)
67
19230.769
(d) % Error = 100 1
= 0.16 0.2
19200
En resumen se tiene Baud Rate 19200, fosc=4MHz, UBRR=12, Error 0.2 %. Como el
error es menor a 1% se puede utilizar el valor encontrado de UBRR sin problemas.
Algunas frecuencias de osciladores permiten seleccionar valores de Baud Rate con
porcentajes de error muy bajos. La Tabla UART-5 muestra algunos ejemplos.
%ERROR
UBRR
UBRR
UBRR
0.0
47
0.0
95
0.0
191
0.0
23
0.0
47
0.0
95
0.0
11
0.0
23
0.0
47
0.0
7
0.0
15
0.0
31
0.0
5
0.0
11
0.0
23
0.0
3
0.0
7
0.0
15
0.0
2
0.0
5
0.0
11
0.0
1
0.0
3
0.0
7
33.3
1
0.0
2
0.0
5
0.0
0
0.0
1
0.0
3
Tabla UART-5. Valores de UBRR para algunas frecuencias de cristal.
1.
2.
3.
4.
68
I.S.R.
Para que se generen interrupciones se requiere que se encuentren habilitadas, incluidas las
interrupciones globales.
Cuando se completa una transmisin, se genera la Interrupcin de Transmisin Para evitar
corrupcin de datos, antes de escribir al registro UDR verifique que se haya completado la
transferencia anterior.
Cuando se recibe un dato por la UART, se genera la Interrupcin de Recepcin, si el dato
anterior no fue ledo, se genera un error de sobreflujo.
La Tabla UART-6 muestra el vector de interrupcin y la direccin correspondiente para
cada dispositivo de la familia AVR.
ITERRUPCI
DE RECEPCIO
ITERRUPCI
DE TRASMISIO
ITERRUPCI
DE UDR VACIO
IMPLATACIO
En aras de la claridad, el cdigo presentado no est optimizado ni en tamao ni en
velocidad.
El siguiente programa configura a la UART a 19200 Baudios. Longitud de 8 Bits,
Interrupciones de Recepcin y Transmisin habilitadas. fosc es 4MHZ Cada vez que llega
un dato por la UART se hace eco.
;-Configuracin
;-Manejo Por Interrupciones.
;************************************************************************
.include "8515def.inc" ;archivo que contiene los nombres de registros
;especiales
;Sustityalo por el archivo correspondiente al
;microcontrolador que utiliza.
;************************************************************************
.org
$0 ;vector de inicio.
rjmp RESET
;redireccionado a la direccin donde se encuentra RESET
;************************************************************************
.org
URXCaddr
;Vector de UART Recepcion completa.
rjmp Rx_Completa ;redireccionado.
.org
UDREaddr
;Vector de Registro UDR vacio.
69
rjmp UDR_Vacio
;redireccionado.
.org
UTXCaddr
;Vector de UART Transmisin completa.
rjmp Tx_Completa ;redireccionado.
;************************************************************************
;ISR De Transmision Completa
Tx_Completa:
;Escriba aqui su codigo
reti
;************************************************************************
;ISR De Recepcion Completa
Rx_Completa:
;Escriba aqui su codigo
in r18,UDR;Lee el ltimo dato recibido.
;Se guarda en r18.
out UDR,r18 ;Regresar el dato (ECO).
reti
;************************************************************************
;ISR De UDR Vacio.
UDR_Vacio:
;Escriba aqui su codigo
reti
RESET:
;inicio de programa.
;************************************************************************
ldi
r16,high(RAMEND)
out
SPH,r16
ldi
r16,low(RAMEND)
out
SPL,r16
;************************************************************************
;PASO 1
cli
;SREG<I>=0.int. deshabilitadas.
;PASO 2
cbi DDRD,0;Pin RXD como entrada
cbi DDRD,1;Pin TXD como entrada
;PASO 3
ldi r17,0x0c;Baud Rate=19200
out UBRR,r17;
;PASO 4
cbi UCR,CHR9;Longitud de Datos 8 bits
;PASO 5
sbi UCR,RXCIE;Interrupcin de Recepcin.
sbi UCR,TXCIE;Interrupcin de Transmisin.
cbi UCR,UDRIE;Interrupcin de UDR vaco.No Habilitada.
;PASO 6
sbi UCR,TXEN;Habilita Transmisin
sbi UCR,RXEN;Habilita Recepcin.
70
;PASO 7
sei
loop:
nop
nop
rjmp loop
;loop infinito
71
;PASO 6
sbi UCR,TXEN;Habilita Transmisin
sbi UCR,RXEN;Habilita Recepcin.
;PASO 7
sei
;Habilita Interrupciones Globales
loop:
nop
nop
sbis USR,RXC;Llego nuevo Dato?
rjmp loop;No, seguir esperando
in
r18,UDR ;Si, guardarlo en r18
out UDR,r18 ;Hacer eco.
nop
nop
rjmp loop
;loop infinito
72
GLOSARIO
ADC. Convertidor Analgico Digital. Es un dispositivo que convierte una seal
Analgica en usa seal digital
Analgica, seal. Es una seal definida en un intervalo continuo de tiempo cuya amplitud
puede adoptar un intervalo continuo de valores
Asncrona, comunicacin. Una forma de comunicacin en la cual la informacin se
transmite como un flujo en serie de bits. Cada carcter se codifica como una cadena de bits
y se separa por un bit de <<inicio de carcter>> y bit de <<parada>>. A veces se usa un bit
de paridad para la deteccin y correccin de errores.
Asncrono, sistema. Son aquellos que pueden cambiar de estado en cualquier momento en
que una o ms seales que entran al sistema cambie.
AVR. Nombre que le da la empresa ATMEL a su familia de microcontroladores RISC de 8
bits. Oficialmente AVR no tiene ningn significado.
Baud Rate. Ver Baudio.
Baudio. Los cambios de seal por segundo que se producen en un dispositivo se miden en
baudios. Un baudio representa e nmero de veces que el estado de la lnea de comunicacin
cambia por segundo. Si un dispositivo transfiere un bit por cada cambio de seal entonces
la velocidad en baudios y la velocidad de transmisin ser la misma. Las tcnicas de
codificacin empleadas representan cada bit con dos o ms cambios de seal
CPU. Unidad Central de Proceso.
Digital, seal. Es una seal en tiempo discreto con amplitud cuantificada. Dicha seal se
puede representar mediante una secuencia de nmeros
DIP. Dual In Package. Es un tipo encapsulado en el cual existen dos hileras de terminales.
Discreto, seal en tiempo. Es una seal definida slo en valores discretos de tiempo.
EIA Electronics Industries Association.
Full Duplex. Es un tipo de comunicacin serial en la cual el flujo de los datos puede ser en
ambos sentidos de manera simultnea.
I.S.R. Rutina de Servicio de Interrupcin. Es una parte de cdigo que se ejecuta cuando se
atiende a una interrupcin.
IL. Es la desviacin de los valores de la funcin de transferencia real a los valores de una
lnea recta. Para un ADC las desviaciones son medidas en las transiciones de un paso al
siguiente.
Interrupcin. Es una peticin que se hace al CPU para que atienda un evento que acaba de
ocurrir.
LSB. Una medida de la resolucin de un ADC, puesto que define el nmero de divisiones
o unidades del rango analgico total. 1LSB= FSR/(2n-1) Donde FSR Es la Resolucin a
Plena Escala y n es el nmero de Bits de salida del ADC.
LSB. Bit Menos Significativo.
MSB. Bit Ms Significativo.
Muestreador retenedor. Es un circuito que toma imgenes instantneas de una seal
elctrica. Generalmente un circuito Muestreador Retenedor se coloca a la entrada de los
ADC.
Registro. Conjunto de Bits que son considerados como una sola entidad.
Reloj. Seal elctrica pulsante, generalmente cuadrada con la que se alimenta a un sistema
digital para propsitos de sincrona.
73
74
BIBLIOGRAFA.
75