Comunicacion Serial C

download Comunicacion Serial C

of 21

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