Comunicacion Serial C
-
Upload
johnny-mauricio -
Category
Documents
-
view
216 -
download
0
Transcript of Comunicacion Serial C
-
7/21/2019 Comunicacion Serial C
1/21
CONTROL CON
MICROPROCES DORES
Departamento de Automatizacin y
Control Industrial - DACI
-
7/21/2019 Comunicacion Serial C
2/21
Interrupiones ATMEGA 64P
-
7/21/2019 Comunicacion Serial C
3/21
Interrupiones ATMEGA 64P
-
7/21/2019 Comunicacion Serial C
4/21
Interrupiones ATMEGA 64P
-
7/21/2019 Comunicacion Serial C
5/21
Comunicacin Serial
Generacin del Reloj:
La base de tiempo de Transmisin-Recepcin tiene dos modos asincrnicos de
funcionamiento: Modo Normal Asincrnico y modo de doble velocidad. Esta
eleccin se lleva a cabo con el Bit U2X del registro UCSRA.
El clculo del Baud Rate se realiza de la siguiente forma:
-
7/21/2019 Comunicacion Serial C
6/21
Comunicacin Serial
Generacin del Reloj:
-
7/21/2019 Comunicacion Serial C
7/21
Comunicacin Serial ATMEGA 64p
Operacin Full Duplex
Operacin asncrona o sncrona
Funcionamiento sncrono Maestro o Esclavo
Soporta Frames con 5, 6, 7, 8 o 9 bits de datos y 1 o 2 bits de parada
Generacin y comprobacin de paridad
Deteccin de exceso de datos
Deteccin de errores Framing
Filtro de ruido Incluye Bit de inicio False Deteccin y Digitales Filtro de paso
bajo
Tres alarmas separadas al respecto TX completo, datos TX y RX Registro
vacio
Modo de comunicacin multi-procesador
Modo doble de velocidad asncrona Comunicacin
-
7/21/2019 Comunicacion Serial C
8/21
Comunicacin Serial
-
7/21/2019 Comunicacion Serial C
9/21
Comunicacin Serial
-
7/21/2019 Comunicacion Serial C
10/21
Comunicacin Serial
-
7/21/2019 Comunicacion Serial C
11/21
Comunicacin Serial
-
7/21/2019 Comunicacion Serial C
12/21
Comunicacin Serial
Ejercicio comunicacin entre 2 microprocesadores
-
7/21/2019 Comunicacion Serial C
13/21
Comunicacin Serial
ASSEMBLER
-
7/21/2019 Comunicacion Serial C
14/21
Comunicacin Serial
.include "m164pdef.inc"
.equ F_crystal=8000000
.equ bauds=9600
.cseg
.org 0x00
rjmp inicio
.org 0x28 ; interrupcion recepcionrjmp dato
inicio:
; configuro puertos
clrr16
outDDRA,r16 ;puerto como entradaoutPORTC,r16
comr16
outPORTA,r16 ;puerto como salida
out DDRC,r16
ldir16,(1
-
7/21/2019 Comunicacion Serial C
15/21
Comunicacin Serial
; memoria ram
ldir16,low(ramend)
outspl,r16
ldi r16,high(ramend)
outsph,r16
; cargo velocidad
ldir16, high((F_crystal/(16*bauds))-1)
stsubrr0h,r16
ldir16, low((F_crystal/(16*bauds))-1)stsubrr0l,r16
ldir16,0b1001_1000 ; habilito interrucpcion por recepcion y habilito transmision y
recepcion
stsucsr0b,r16
;ldir16,0b0011_1110 ; 8bits paridad impar modo asincronico 2 bits de parada
ldir16,0b0000_0110 ; 8bits sin paridad modo asincronico
stsucsr0c,r16
sei
-
7/21/2019 Comunicacion Serial C
16/21
Comunicacin Serial
primer_dato:
ldsr16,ucsr0a
sbrsr16,5 ; revisa si esta limpio el buffer para enviorjmpprimer_dato
in r16,PINA ; leo lo del puerto A
sts udr0,r16 ; envio dato del puerto
; programa principal
lazo:nop
rjmplazo
// interrupcion por recepcion
dato:
ldsr16,udr0 ; leo el el Rx
outPORTC,r16 ; muestro en portC
inr16,PINA ; envio dato de puerto
stsudr0,r16
reti
-
7/21/2019 Comunicacion Serial C
17/21
Comunicacin Serial
EN C
#include
#include // libreria para interrupciones
voidUSART_init(void);
intmain(void){
DDRA=0x00;
PORTA=0xFF; // configuro como entradas pull -up
DDRC=0xFF; // configuro como salidas
PORTC=0x00;
DDRD|=(0
-
7/21/2019 Comunicacion Serial C
18/21
Comunicacin Serial
USART_init();
sei();
while(!(UCSR0A& (1
-
7/21/2019 Comunicacion Serial C
19/21
Comunicacin Serial
voidUSART_init(void){
UCSR0B|=(1
-
7/21/2019 Comunicacion Serial C
20/21
Bibliografa
1. Muhammad Ali Mazidi (2011). The avr
microcontroller and embedded system.
2. Yago Torroja & Jorge Portilla, Curso de
Microcontroladores, Escuela Tcnica
Superior de Ingenieros Industriales,Universidad Politcnica de Madrid
-
7/21/2019 Comunicacion Serial C
21/21
CONTROL CON
MICROPROCES DORES
Marco errera
marco.herreraepn.edu.ec
Departamento de Automatizacin yControl Industrial - DACI