MICROCONTROLADORES
CLASE No 9
Objetivos
• Conocer el funcionamiento de los
  sistemas de comunicación seriales del
  microcontrolador PIC 16F877.
• Aprender los procesos de configuración
  y administración del puerto serial
  sincrónico.
• Aprender los procesos de configuración
  y administración del USART.
Preguntas generadoras
• ¿cómo se desarrollan los procesos de
  comunicación seriales en el Mcu PIC
  16F877?
• ¿cuáles son las características mas
  importantes de los sistemas SSP y
  USART?
• ¿cómo se configuran y administran
  estos sistemas?
Interfaz Serial Sincrónica
Maestra MSSP
Sistema sincrónico
Características generales
Transferencia sincrónica de tres hilos Full duplex
anillo.
Configurable como maestro o esclavo.
Operación en dos modos.
   Interfaz serial periférica (SPI)
   Circuito Inter-integrado (I2C)
Formato de la secuencia de comunicación
programable.
Posibilidad de solicitud de interrupciones.
Detección de errores de comunicación por
colisión.
Modo de operación SPI
Este modo posibilita la comunicación
sincrónica de datos de 8 bits, utilizando
dos registros de cambio que en conjunto
transmisor-receptor forman un registro de
anillo que posibilita la comunicación sobre
4 líneas físicas, gobernadas por la
sincronía de una señal de reloj.
Dirección
Entrada     Primaria
            De datos
Salida
            * TRIS

            * Modulo
Habilitar




  Reloj
Registros de administración en modo SPI

 •   Registro de datos
        Donde se envían o reciben los datos
        (SSPBUF : 0x13 banco 0)
 •   Registro de estado
        Permite conocer el estado de la comunicación del
         subsistema.
        (SSPSTAT : 0x14 banco 1)
 •   Registro de configuración
        Permite configurar el subsistema
        (SSPCON : 0x14 banco 0)
 •   Registros TRIS
Registro SSPSTAT
Registro SSPCON
Modo de operación I2C
•   Este modo permite comunicar múltiples
    dispositivos en un único bus utilizando el
    protocolo de Circuito inter-integrado, que fue
    desarrollado por Philips Inc. Para la
    transferencia de datos entre circuitos
    integrados, la cual se lleva a cabo sobre dos
    líneas físicas una para la sincronía (SCL) y la
    otra para los datos (SDA).
•   El sistema I2C permite soportar un maestro y
    múltiples esclavos o bien muchos maestros,
    los cuales tienen la responsabilidad de
    controlar la señal de sincronía.
Secuencia de operación I2C
• Transmisor Maestro
     1) Configurar parámetros
     2) Iniciar secuencia de comunicación
      (Start) y verificar su inicio
     3) Enviar dirección del esclavo y verificar
      su recepción (Read/Write)
     4) Enviar dato/datos al esclavo y verificar
      su recepción (Read/Write)
     5) Terminar secuencia de comunicación
      (Stop) y verificar su finalizacion
Secuencia de operación I2C
•   Receptor Maestro
       1) Configurar parámetros
       2) Iniciar secuencia de comunicación (Start) y
        verificar su inicio
       3) Enviar dirección del esclavo y verificar su
        recepción (Read/Write)
       4) Activar la recepción y esperar por un dato
        recibido (RCEN)
       5) Confirmar o no el dato recibido (NACK/ACK) y
        verificar su envio
       6) Terminar secuencia de comunicación (Stop) y
        verificar su finalizacion
       7) Leer el dato e iniciar una nueva secuencia si se
        requiere
Secuencia de operación I2C
•   Receptor Esclavo
       1) Configurar parámetros
       2) Esperar inicio secuencia de comunicación
        (Start)
       3) Recibir dirección, si coincide con la configurada
        continuar la secuencia de lo contrario ignorarla
       4) Esperar bandera de recepción de datos
       5) Leer el dato recibido y limpiar la bandera de
        recepción, y esperar por nuevo dato.
       6) Esperar por terminación secuencia de
        comunicación (Stop)
Secuencia de operación I2C
•   Transmisor Esclavo
       1) Configurar parámetros
       2) Esperar inicio secuencia de comunicación
        (Start)
       3) Recibir dirección, si coincide con la configurada
        continuar la secuencia de lo contrario ignorarla
       4) Retener la señal de reloj para cargar el dato a
        transmitir (CKP)
       5) Cargar el dato a transmitir y liberar la señal de
        reloj. (repetir la secuencia para cada dato a
        transmitir)
       6) Esperar por terminación secuencia de
        comunicación (Stop)
Registros de administración en modo I2C
 Registro de datos
     Donde se envían o reciben los datos
     (SSPBUF : 0x13 banco 0)
 Registro de estado
     Permite conocer el estado de la comunicación del subsistema.
     (SSPSTAT : 0x14 banco 1)
 Registros de configuración
     Permite configurar el subsistema
     (SSPCON : 0x14 banco 0)
     (SSPCON2 : 0x11 banco 1)
 Registro de dirección y baud rate (maestro) (SSPADD)
  – Controlan la velocidad del subsistema y el ID del mismo
Registro SSPSTAT
Registro SSPCON
Registros SSPCON2
Formas de onda del modo
        esclavo
Formas de onda del modo
        Maestro
Transmisor/receptor universal
sincrónico y asincrónico
USART
Características generales
Formato de comunicación NRZ compatible con el
estándar RS232.
Métodos de detección de error.
Operación en Full duplex en modo asincrónico
(SCI)
Operación en Half duplex en modo sincrónico
Velocidad de comunicación programable
Longitud de la trama variable
Posibilidad de disparar solicitud de interrupción
Transmisión en modo
          asincrónico
Configurar la velocidad (SPBGR).
Habilitar el modo asincrónico y el
subsistema USART.
Configurar la longitud de trama
Habilitar el transmisor
Si utiliza tramas largas poner el noveno bit
en el bit TX9D.
Cargar el dato en el registro TXREG para
iniciar la transmisión.
Diagrama del transmisor SCI
Recepción en modo asincrónico
• Configurar la velocidad (SPBGR).
• Habilitar el modo asincrónico y el subsistema
    USART.
•   Configurar la longitud de trama
•   Habilitar el receptor
•   Esperar el indicador de trama recibida.
•   Leer el noveno bit si se configuro trama larga
•   Leer el dato recibido en RCREG para iniciar la
    transmisión.
•   Verificar errores en la comunicación y hacer los
    ajustes necesarios
Diagrama del receptor SCI
Modo sincrónico
• El modo sincrónico funciona en
  halfduplex lo que implica que
  únicamente necesita de dos líneas una
  para la señal de reloj y la otra para los
  datos, los cuales no pueden enviarse y
  recibirse al mismo tiempo, con lo que el
  subsistema puede tener 4 posibles
  estados. TXMaster, RXMaster, TXSlave y
  RXSlave
Transmisor maestro
•   Configurar la velocidad
•   Configurar el modo sincrónico maestro.
•   Configurar la longitud de trama
•   Habilitar la transmisión.
•   Escribir el noveno bit si se enviara una trama
    larga.
•   Iniciar la transmisión escribiendo en el
    registro TXREG.
•   Esperar que la transmisión de complete para
    enviar un nuevo dato
Receptor maestro
•   Configurar la velocidad
•   Configurar el modo sincrónico maestro.
•   Configurar la longitud de trama
•   Configurar la admisión de un noveno bit en caso de
    recibir tramas largas.
•   Habilitar la recepción.
•   Esperar la bandera de recepción completa.
•   Leer el noveno bit si se uso trama largas
•   Leer el registro de recepción RCREG.
•   Verificar que no se desarrollo ningún error durante la
    recepción.
•   Esperar la siguiente trama
Transmisor esclavo
•   Configurar el modo sincrónico esclavo.
•   Configurar la longitud de trama
•   Habilitar la transmisión.
•   Escribir el noveno bit si se enviara una trama
    larga.
•   Iniciar la transmisión escribiendo en el
    registro TXREG.
•   Esperar que la transmisión de complete para
    enviar un nuevo dato
Receptor esclavo
•   Configurar el modo sincrónico esclavo.
•   Configurar la longitud de trama
•   Configurar la admisión de un noveno bit en caso de
    recibir tramas largas.
•   Habilitar la recepción.
•   Esperar la bandera de recepción completa.
•   Leer el noveno bit si se uso trama largas
•   Leer el registro de recepción RCREG.
•   Verificar que no se desarrollo ningún error durante la
    recepción.
•   Esperar la siguiente trama
Registros para administrar el
               USART
Registro de datos
   Donde se envían o reciben los datos
   (TXREG : 0x19 banco 0), (RCREG : 0x1A banco 0)
Registro de estado y control
   Permite configurar y administrar el estado de la
    comunicación del subsistema .
   (TXSTAT : 0x18 banco 1), (RCSTAT : 0x18 banco 0)
Registro de Baud Rate
   Permite configurar la velocidad del subsistema .
   (SPBRG : 0x19 banco 1).
Registros de estado y control
Registros de estado y control
Lecturas recomendadas
• Capítulos 17 y 18 del manual de
  referencia del PIC16F877
• Capítulos 9 y 10 del manual técnico del
  PIC16F877

comunicacion pic

  • 1.
  • 2.
    Objetivos • Conocer elfuncionamiento de los sistemas de comunicación seriales del microcontrolador PIC 16F877. • Aprender los procesos de configuración y administración del puerto serial sincrónico. • Aprender los procesos de configuración y administración del USART.
  • 3.
    Preguntas generadoras • ¿cómose desarrollan los procesos de comunicación seriales en el Mcu PIC 16F877? • ¿cuáles son las características mas importantes de los sistemas SSP y USART? • ¿cómo se configuran y administran estos sistemas?
  • 4.
    Interfaz Serial Sincrónica MaestraMSSP Sistema sincrónico
  • 5.
    Características generales Transferencia sincrónicade tres hilos Full duplex anillo. Configurable como maestro o esclavo. Operación en dos modos. Interfaz serial periférica (SPI) Circuito Inter-integrado (I2C) Formato de la secuencia de comunicación programable. Posibilidad de solicitud de interrupciones. Detección de errores de comunicación por colisión.
  • 6.
    Modo de operaciónSPI Este modo posibilita la comunicación sincrónica de datos de 8 bits, utilizando dos registros de cambio que en conjunto transmisor-receptor forman un registro de anillo que posibilita la comunicación sobre 4 líneas físicas, gobernadas por la sincronía de una señal de reloj.
  • 7.
    Dirección Entrada Primaria De datos Salida * TRIS * Modulo Habilitar Reloj
  • 8.
    Registros de administraciónen modo SPI • Registro de datos  Donde se envían o reciben los datos  (SSPBUF : 0x13 banco 0) • Registro de estado  Permite conocer el estado de la comunicación del subsistema.  (SSPSTAT : 0x14 banco 1) • Registro de configuración  Permite configurar el subsistema  (SSPCON : 0x14 banco 0) • Registros TRIS
  • 9.
  • 10.
  • 11.
    Modo de operaciónI2C • Este modo permite comunicar múltiples dispositivos en un único bus utilizando el protocolo de Circuito inter-integrado, que fue desarrollado por Philips Inc. Para la transferencia de datos entre circuitos integrados, la cual se lleva a cabo sobre dos líneas físicas una para la sincronía (SCL) y la otra para los datos (SDA). • El sistema I2C permite soportar un maestro y múltiples esclavos o bien muchos maestros, los cuales tienen la responsabilidad de controlar la señal de sincronía.
  • 12.
    Secuencia de operaciónI2C • Transmisor Maestro  1) Configurar parámetros  2) Iniciar secuencia de comunicación (Start) y verificar su inicio  3) Enviar dirección del esclavo y verificar su recepción (Read/Write)  4) Enviar dato/datos al esclavo y verificar su recepción (Read/Write)  5) Terminar secuencia de comunicación (Stop) y verificar su finalizacion
  • 13.
    Secuencia de operaciónI2C • Receptor Maestro  1) Configurar parámetros  2) Iniciar secuencia de comunicación (Start) y verificar su inicio  3) Enviar dirección del esclavo y verificar su recepción (Read/Write)  4) Activar la recepción y esperar por un dato recibido (RCEN)  5) Confirmar o no el dato recibido (NACK/ACK) y verificar su envio  6) Terminar secuencia de comunicación (Stop) y verificar su finalizacion  7) Leer el dato e iniciar una nueva secuencia si se requiere
  • 14.
    Secuencia de operaciónI2C • Receptor Esclavo  1) Configurar parámetros  2) Esperar inicio secuencia de comunicación (Start)  3) Recibir dirección, si coincide con la configurada continuar la secuencia de lo contrario ignorarla  4) Esperar bandera de recepción de datos  5) Leer el dato recibido y limpiar la bandera de recepción, y esperar por nuevo dato.  6) Esperar por terminación secuencia de comunicación (Stop)
  • 15.
    Secuencia de operaciónI2C • Transmisor Esclavo  1) Configurar parámetros  2) Esperar inicio secuencia de comunicación (Start)  3) Recibir dirección, si coincide con la configurada continuar la secuencia de lo contrario ignorarla  4) Retener la señal de reloj para cargar el dato a transmitir (CKP)  5) Cargar el dato a transmitir y liberar la señal de reloj. (repetir la secuencia para cada dato a transmitir)  6) Esperar por terminación secuencia de comunicación (Stop)
  • 17.
    Registros de administraciónen modo I2C Registro de datos  Donde se envían o reciben los datos  (SSPBUF : 0x13 banco 0) Registro de estado  Permite conocer el estado de la comunicación del subsistema.  (SSPSTAT : 0x14 banco 1) Registros de configuración  Permite configurar el subsistema  (SSPCON : 0x14 banco 0)  (SSPCON2 : 0x11 banco 1) Registro de dirección y baud rate (maestro) (SSPADD) – Controlan la velocidad del subsistema y el ID del mismo
  • 18.
  • 19.
  • 20.
  • 21.
    Formas de ondadel modo esclavo
  • 22.
    Formas de ondadel modo Maestro
  • 23.
  • 24.
    Características generales Formato decomunicación NRZ compatible con el estándar RS232. Métodos de detección de error. Operación en Full duplex en modo asincrónico (SCI) Operación en Half duplex en modo sincrónico Velocidad de comunicación programable Longitud de la trama variable Posibilidad de disparar solicitud de interrupción
  • 25.
    Transmisión en modo asincrónico Configurar la velocidad (SPBGR). Habilitar el modo asincrónico y el subsistema USART. Configurar la longitud de trama Habilitar el transmisor Si utiliza tramas largas poner el noveno bit en el bit TX9D. Cargar el dato en el registro TXREG para iniciar la transmisión.
  • 26.
  • 27.
    Recepción en modoasincrónico • Configurar la velocidad (SPBGR). • Habilitar el modo asincrónico y el subsistema USART. • Configurar la longitud de trama • Habilitar el receptor • Esperar el indicador de trama recibida. • Leer el noveno bit si se configuro trama larga • Leer el dato recibido en RCREG para iniciar la transmisión. • Verificar errores en la comunicación y hacer los ajustes necesarios
  • 28.
  • 29.
    Modo sincrónico • Elmodo sincrónico funciona en halfduplex lo que implica que únicamente necesita de dos líneas una para la señal de reloj y la otra para los datos, los cuales no pueden enviarse y recibirse al mismo tiempo, con lo que el subsistema puede tener 4 posibles estados. TXMaster, RXMaster, TXSlave y RXSlave
  • 30.
    Transmisor maestro • Configurar la velocidad • Configurar el modo sincrónico maestro. • Configurar la longitud de trama • Habilitar la transmisión. • Escribir el noveno bit si se enviara una trama larga. • Iniciar la transmisión escribiendo en el registro TXREG. • Esperar que la transmisión de complete para enviar un nuevo dato
  • 31.
    Receptor maestro • Configurar la velocidad • Configurar el modo sincrónico maestro. • Configurar la longitud de trama • Configurar la admisión de un noveno bit en caso de recibir tramas largas. • Habilitar la recepción. • Esperar la bandera de recepción completa. • Leer el noveno bit si se uso trama largas • Leer el registro de recepción RCREG. • Verificar que no se desarrollo ningún error durante la recepción. • Esperar la siguiente trama
  • 32.
    Transmisor esclavo • Configurar el modo sincrónico esclavo. • Configurar la longitud de trama • Habilitar la transmisión. • Escribir el noveno bit si se enviara una trama larga. • Iniciar la transmisión escribiendo en el registro TXREG. • Esperar que la transmisión de complete para enviar un nuevo dato
  • 33.
    Receptor esclavo • Configurar el modo sincrónico esclavo. • Configurar la longitud de trama • Configurar la admisión de un noveno bit en caso de recibir tramas largas. • Habilitar la recepción. • Esperar la bandera de recepción completa. • Leer el noveno bit si se uso trama largas • Leer el registro de recepción RCREG. • Verificar que no se desarrollo ningún error durante la recepción. • Esperar la siguiente trama
  • 34.
    Registros para administrarel USART Registro de datos  Donde se envían o reciben los datos  (TXREG : 0x19 banco 0), (RCREG : 0x1A banco 0) Registro de estado y control  Permite configurar y administrar el estado de la comunicación del subsistema .  (TXSTAT : 0x18 banco 1), (RCSTAT : 0x18 banco 0) Registro de Baud Rate  Permite configurar la velocidad del subsistema .  (SPBRG : 0x19 banco 1).
  • 35.
  • 36.
  • 37.
    Lecturas recomendadas • Capítulos17 y 18 del manual de referencia del PIC16F877 • Capítulos 9 y 10 del manual técnico del PIC16F877