La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Clase 13: Protocolo de Comunicación I 2 C. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos.

Presentaciones similares


Presentación del tema: "Clase 13: Protocolo de Comunicación I 2 C. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos."— Transcripción de la presentación:

1 Clase 13: Protocolo de Comunicación I 2 C

2 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Antes de Comenzar  Protocolo entre periféricos: conjunto de reglas o normas para el intercambio de información.  Protocolos  Serial UART, SPI (Interfaz de periféricos serie), USB, I 2 C, I 2 S, …  Objetivo de la Clase: Conocer un protocolo común y hacer el diseño del software encargado de gestionarlo.  Al finalizar el tema: Usted estará en capacidad de emplear el protocolo mediante el software, para comunicarse con periféricos que lo soporten.

3 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Agenda para la clase 11 Introducción al Protocolo I 2 C Conocer las características del protocolo 22 Hardware y Términos Consideraciones sobre el protocolo 33 Funcionamiento del Protocolo Entender como opera el protocolo para desarrollar el SW 44 Manipulación del I2C Escritura y lectura datos mediante este módulo

4 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás ¿Puedo ser autodidacta?  Bibliografía para la clase  Jonathan Valvano, Developing Embedded Software in C Using ICC11/ICC12/Hiware.  C for Embedded Systems. Academia Freescale Semiconductor para Profesores 2004.  Documentación sobre los diferentes periféricos: LCDs, Serial, I2C, TIMERs.

5 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás A continuación… Funcionamiento del Protocolo Hardware y Términos Protocolo I 2 C Introducción al Protocolo I2C Manipulación del I2C

6 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Inter-Integrated Circuit I 2 C  Protocolo diseñado para comunicar diferentes circuitos que trabajan a velocidades relativamente bajas.  Desarrollado por Phillips originalmente para la comunicación entre diferentes dispositivos dentro de los TV.  Es un bus de solo dos líneas, donde los dispositivos se comunican de manera serial y sincronizada (Bus Síncrono).

7 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Inter-Integrated Circuit I 2 C  Líneas de Comunicación.  SCL: Línea de reloj para sincronización.  SDA: Línea por donde van los datos.  Línea de referencia. P1 MCU, MPU, DSP … P2 MCU, MPU, LCD, MEM, RTC … SCL o señal de Reloj SDA o señal de Datos

8 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Inter-Integrated Circuit I 2 C  Dispositivos  El bus permite tener varios dispositivos conectados.  Configuración Maestro/Esclavo.  Maestro Genera señal de sincronismo. Transferencia de datos: hacia/desde esclavo.  Esclavo Comandado por el Maestro. Envía o recibe datos cuando el Maestro lo solicita. P1 MAESTRO P1 MAESTRO P2 ESCLAVO P2 ESCLAVO SCL o señal de Reloj SDA o señal de Datos Señal generada por el Maestro… Dirección de los datos dada por el Maestro

9 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás P2 MAESTRO ESCLAVO P2 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P3 SOLO ESCLAVO P3 SOLO ESCLAVO P4 SOLO ESCLAVO P4 SOLO ESCLAVO Varios periféricos conectados al BUS. Algunos pueden ser Maestro/Esclavo, otros solo son esclavos. SCL SDA Bus inactivo, ambas líneas a 5V Inter-Integrated Circuit I 2 C

10 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás P2 MAESTRO ESCLAVO P2 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P3 SOLO ESCLAVO P3 SOLO ESCLAVO P4 SOLO ESCLAVO P4 SOLO ESCLAVO El periférico P2 (Maestro) se apodera del Bus, desde ahora él es quien genera la señal de reloj. Los demás son Esclavos. SCL SDA P2 MAESTRO ESCLAVO P2 MAESTRO ESCLAVO P1 ESCLAVO P1 ESCLAVO P3 ESCLAVO P3 ESCLAVO P4 ESCLAVO P4 ESCLAVO Inter-Integrated Circuit I 2 C

11 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás P2 MAESTRO ESCLAVO P2 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P3 SOLO ESCLAVO P3 SOLO ESCLAVO P4 SOLO ESCLAVO P4 SOLO ESCLAVO Caso 1: El periférico P2 (Maestro) establece comunicación con P4 (Esclavo) enviando n tramas. SCL SDA P2 MAESTRO ESCLAVO P2 MAESTRO ESCLAVO P1 ESCLAVO P1 ESCLAVO P3 ESCLAVO P3 ESCLAVO P4 ESCLAVO P4 ESCLAVO P4 ESCLAVO P4 ESCLAVO Inter-Integrated Circuit I 2 C

12 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás P2 MAESTRO ESCLAVO P2 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P3 SOLO ESCLAVO P3 SOLO ESCLAVO P4 SOLO ESCLAVO P4 SOLO ESCLAVO Caso 2: El periférico P2 (Maestro) establece comunicación con P4 (Esclavo) recibiendo n tramas. SCL SDA P2 MAESTRO ESCLAVO P2 MAESTRO ESCLAVO P1 ESCLAVO P1 ESCLAVO P3 ESCLAVO P3 ESCLAVO P4 ESCLAVO P4 ESCLAVO P4 ESCLAVO P4 ESCLAVO Inter-Integrated Circuit I 2 C

13 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás P2 MAESTRO ESCLAVO P2 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P1 MAESTRO ESCLAVO P3 SOLO ESCLAVO P3 SOLO ESCLAVO P4 SOLO ESCLAVO P4 SOLO ESCLAVO P2 Libera el Bus. P1 vuelve a ser un Maestro potencial. P3 y P4 esperan a que P1 o P2 los seleccionen. SCL SDA P2 MAESTRO ESCLAVO P2 MAESTRO ESCLAVO P1 ESCLAVO P1 ESCLAVO P3 ESCLAVO P3 ESCLAVO P4 ESCLAVO P4 ESCLAVO Inter-Integrated Circuit I 2 C

14 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Inter-Integrated Circuit I 2 C  Detección de Errores.  El protocolo ofrece una forma sencilla de determinar errores. Bit de Acknowledgment o Reconocimiento.  Otras especificaciones del protocolo.  Velocidad de Transmisión:  Modo Estándar: 100khz ó 100kbps.  Modo Rápido: 400khz ó 400kbps.  Modo de Alta Velocidad: 3.4MHz ó 3.4Mbps.  Consideraciones!!! Todos los dispositivos deben cumplir esta velocidad.

15 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás ¿Zona de Preguntas?  ¿Un maestro puede llegar a convertirse en un esclavo?  ¿Un dispositivo que actúa en determinado momento como esclavo jamás puede convertirse en maestro?  ¿Todos los periféricos I 2 C pueden trabajar en el modo rápido?  ¿Cómo se llaman las líneas del I 2 C?  ¿Que ventajas y desventajas puede tener el hecho de que solo se utilicen dos líneas?

16 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás A continuación… Funcionamiento del Protocolo Hardware y Términos Protocolo I 2 C Introducción al Protocolo I2C Hardware y Términos Protocolo I2C Manipulación del I2C

17 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Hardware y Términos  Las líneas SDA y SCL son del tipo drenador abierto (Open-Drain).  Equivalente a Colector Abierto (Open- Colector).  Es necesario conectar sus Drenadores al voltaje positivo de la fuente.  Se requiere de resistencias de Pull-Up (10k) para garantizar nivel alto. Para poner 5V, el transistor no conduce??? Para poner 0V, el transistor conduce... Los 5V son dados por la fuente Vcc, siempre que todos los Trans. estén en corte…

18 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Periférico 1 SCL_RX SDA_RX SCL_TX SDA_TX SCL SDA VDD Hardware y Términos  Nadie hace uso del bus:  Los suiches permanece abiertos.  Si nadie usa el bus, cada línea tendrá voltaje VDD.  P1 toma el Bus y pone SDA en 0V. Observe el Suiche.  Lo mismo para SCL.  Ahora, P1 pondrá 5V en SCL. Observe el suiche.  Si otro periférico pone 0V en SCL, no hay corto. Si los pines no son Open Drain, es bueno colocar una pequeña resistencia en serie…

19 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Hardware y Términos  Conexión de Periféricos DEVICE 1 DEVICE 2 DEVICE n … VDD SCL SDA 10k-47k

20 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Hardware y Términos  Maestro (Master)  Establece la señal de reloj SCL.  Establece la dirección de los datos.  Controla a los esclavos.  Esclavo (Slave)  Incapaz de generar la señal de SCL.  Recibe instrucciones y reloj del maestro.  Bus Desocupado (Bus Free)  Las líneas SDA y SCL están inactivas (nivel alto).

21 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Hardware y Términos  Dato Válido (Valid Data)  El dato puesto en SDA debe ser estable mientras SCL está en nivel lógico alto.  Comienzo (Start)  Ocupación del bus por parte del maestro, haciendo uso de SDA y SCL.  Parada (Stop)  Liberación del bus por parte del maestro que lo está utilizando.

22 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Hardware y Términos  Formato de Datos (Data Format)  Relacionado con la forma de enviar datos de maestro a esclavo y viceversa.  Dirección (Address)  Relacionado con la forma en que el maestro puede dirigirse a un esclavo.  Lectura/Escritura (Bit de R/W)  Es un bit dentro de la dirección usado para indicarle al esclavo que el maestro va a escribir/leer datos en/de él.

23 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás ¿Zona de Preguntas?  Explique que ocurre si un dispositivo I 2 C trata de establecer un ‘1’ en la línea SCL mientras otro está estableciendo un ‘0’ en la misma  El bus I 2 C está desocupado siempre que …  ¿Qué ocurre si la línea SDA cambia de estado mientras SCL está a ‘1’ lógico?

24 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás A continuación… Funcionamiento del Protocolo Hardware y Términos Protocolo I 2 C Introducción al Protocolo I2C Funcionamiento del Protocolo Manipulación del I2C

25 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  Se utilizan las dos líneas SDA y SCL.  Por SDA van los datos.  Por SCL va el reloj de sincronización.  La transmisión se hace en tramas de 8 Bits con 1 Bit adicional para el reconocimiento o Acknowledgment.  El protocolo define la forma en que el maestro inicia y finaliza la transmisión.

26 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  Formato de Transmisión  Trama de 8 bits para datos con un noveno bit de ACK. El ACK lo hace el Esclavo si el Maestro escribe los 8 bits. El ACK lo hace el Maestro si el Esclavo escribe los 8 bits.  Dicha trama va sobre la línea SDA y podrá tenerse una transición siempre que SCL esté en ‘0’ lógico. D7D6D5D4D3D2D1D0ACK SDA SCL MSBLSB

27 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  Condiciones de START y STOP  Propiamente son violaciones a la condición de Dato Válido. El START se hace en el momento en que el Maestro selecciona un Esclavo. El STOP se lleva a cabo cuando el Maestro va a liberar el Bus. SCL SDA Condición de START SCL SDA Condición de STOP

28 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  Seleccionando un periférico:  Cada periférico tiene una dirección de 7 ó 10 bits.  Estando el bus libre, el maestro genera un START.  A continuación envía la dirección junto con el bit R/W. R/W = 0, Maestro va a escribir datos en Esclavo. R/W = 1, Maestro va a leer datos desde el Esclavo. A6A5A4A3A2A1A0R/WACK SDA SCL MSBLSB

29 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  Seleccionando un periférico:  Si el periférico está en el bus debe responder con un ACK en ‘0’.  Causas de no respuesta:  El periférico no está en el Bus.  El periférico está ocupado (EEPROM escribiendo).  El periférico tiene problemas.  Si no hay respuesta, el Maestro finaliza con condición de STOP.

30 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  Si el Esclavo respondió con ACK = ‘0’ y el Maestro va a escribir en el Esclavo (R/W = ‘0’)  Se escriben n tramas de 8 bits, esperando en cada una, reconocimiento del esclavo ACK = ‘0’.  Cuando se quiera finalizar, el Maestro envía condición de STOP.  El Maestro puede generar una nueva condición de START sin condición de STOP: Escoger otro periférico. Cambiar R/W sobre el periférico.

31 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  Selección y Escritura (Un solo dato) SDA SCL A6A5A4A3A2A1A00ACK Generado por Esclavo MSBLSB Generado por Maestro SDA SCL D7D6D5D4D3D2D1D0ACK START STOP Generado por Esclavo MSBLSB Generado por Maestro Si el esclavo envía ACK = ‘0’, entonces pueden enviarse n tramas de 8 bits…

32 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  Si el Esclavo respondió con ACK = ‘0’ y el Maestro va a leer desde el Esclavo (R/W = ‘1’)  Se leen n tramas de 8 bits, generando en cada una el bit de reconocimiento ACK = ‘0’.  Cuando se quiera finalizar, el Maestro envía condición de STOP con el ACK previo en ‘1’.  El Maestro puede generar una nueva condición de START sin condición de STOP: Escoger otro periférico. Cambiar R/W sobre el periférico.

33 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  Selección y Lectura (Un solo dato) SDA SCL A6A5A4A3A2A1A01ACK Generado por Esclavo MSBLSB Generado por Maestro SDA SCL D7D6D5D4D3D2D1D0ACK START STOP Generado por Maestro MSBLSB Generado por Esclavo Si el esclavo envía ACK = ‘0’, entonces pueden leerse n tramas de 8 bits…

34 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Funcionamiento del I 2 C  ¿Cómo se realiza la escritura de múltiples datos?  ¿Cómo se realiza la lectura de múltiples datos?  ¿Cómo se pasa de escritura a lectura sin condición de STOP?  ¿Cómo se selecciona otro periférico desde el mismo Maestro sin utilizar STOP?

35 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás ¿Zona de Preguntas?  ¿Cómo se genera la condición de START y de STOP?  Una comunicación entre periféricos: P1, P2 y P3. P2 envía condición de START junto con la trama de datos $A1. P1 tiene la dirección $50 y P3 la dirección $73.  ¿Con quién se comunica P2?  ¿La transmisión es para escritura o para lectura de datos?

36 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás A continuación… Funcionamiento del Protocolo Hardware y Términos Protocolo I 2 C Introducción al Protocolo I2C Manipulación del I2C

37 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Módulo I2C de un PIC  El nombre genérico de los pines de E/S es:  SDA (Línea de Datos).  SCL (Línea de Reloj).  Las líneas de E/S están compartidas con pines de los puertos:  RC3/SCL (PIC16F887)  RC4/SDA (PIC16F887)  Al habilitar la Tx/Rx, los pines TxD/RxD se convierten en pines del módulo I2C.

38 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Manipulación del I 2 C  Configuración genérica del I2C: #USE I2C (opciones)  Esta directiva permite configurar varios parámetros del I2C:  Modo  Pines utilizados  Dirección  Velocidad

39 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Manipulación del I 2 C  Ejemplos:  #use I2C (master, scl=PIN_C3, sda=PIN_C4)  #use I2C (slave, scl=PIN_C3, sda=PIN_C4, address=0xA0)  #use I2C (master, scl=PIN_C3, sda=PIN_C4, fast=450000) OPCIÓNDESCRIPCIÓN MULTI_MASTEREstablece modo Multimaestro MASTEREstablece modo maestro SLAVEEstablece modo esclavo RESTART_WDTBorra el WDT mientras espera lectura SCL = pinEspecifica el pin SCL SDA = pinEspecifica el pin SDA ADDRESS = nEspecifica la dirección en modo esclavo FASTUtiliza velocidad alta SLOWUtiliza velocidad baja

40 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Establecimiento  Las funciones asociadas al comienzo y finalización de la comunicación I2C:  I2C_START(); En modo master, esta función inicializa la transmisión. El reloj es puesto a nivel bajo hasta que se escribe.  I2C_STOP(); Finaliza la transmisión

41 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Escritura  Escritura de datos Master↔Slave I2C_WRITE (dato);  dato es un entero de 8 bits que envía por el bus.  Modo maestro: genera la señal de reloj que marca la velocidad de transmisión del dato.  Modo esclavo: espera la señal de reloj del maestro.  ACK: Devuelve el bit de reconocimiento (0 indica ACK, 1 indica un NO ACK y 2 indica una colisión en modo multimaster)  LSB: El bit de menor peso del primer dato transmitido tras un START indica el sentido de la comunicación.

42 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Lectura  Lectura de datos Master ↔ Slave dato=I2C_READ(ACK);  dato es un entero de 8 bits leído del bus.  Modo maestro: genera la señal de reloj que marca la velocidad de transmisión del dato.  Modo esclavo: espera la señal de reloj del maestro.  ACK: Elemento opcional de reconocimiento (1 indica ACK 1 y 0 indica NO ACK)

43 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Dirección  Dirección del dispositivo modo Slave I2C_SlaveAddr();  Función que especifica la dirección del dispositivo cuando se ha configurado como esclavo.

44 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Ejemplos  Desarrollar un programa que:  Guardar y leer datos en las 10 primeras posiciones de memoria de un EEPROM  Siguiente clase: se darán más detalles.

45 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III Sistemas Digitales II Universidad Santo Tomás Fin de la Clase!!!  Lecturas propuestas próxima clase  Lectura sobre memorias EEPROM. Motivación para la próxima clase.  Conocer como trabaja un protocolo de datos y emplearlo para establecer comunicación entre CPU y periféricos.  ¿Preguntas por parte de ustedes?

46 Fin de la clase 13


Descargar ppt "Clase 13: Protocolo de Comunicación I 2 C. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos."

Presentaciones similares


Anuncios Google