Date post: | 24-Jan-2016 |
Category: |
Documents |
Upload: | oscar-sandoval-fuentes |
View: | 232 times |
Download: | 0 times |
Sistemas Digitales IIClase 13: Protocolo de Comunicación I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Antes de ComenzarAntes 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,
I2C, I2S, …
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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Agenda para la claseAgenda para la clase
11Introducción al Protocolo I2C Conocer las características del protocolo
22Hardware y Términos Consideraciones sobre el protocolo
33Funcionamiento del Protocolo Entender como opera el protocolo para desarrollar el SW
44Manipulación del I2C Escritura y lectura datos mediante este módulo
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
¿Puedo ser autodidacta?¿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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
A continuación…A continuación…
Funcionamiento del Protocolo
Hardware y Términos Protocolo I2C
Introducción al Protocolo I2CIntroducción al Protocolo I2C
Manipulación del I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Inter-Integrated Circuit I2CInter-Integrated Circuit I2C
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).
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Inter-Integrated Circuit I2CInter-Integrated Circuit I2C
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.
P1MCU, MPU,
DSP …
P2MCU, MPU, LCD, MEM,
RTC …
SCL o señal de Reloj
SDA o señal de Datos
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Inter-Integrated Circuit I2CInter-Integrated Circuit I2C
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.
P1MAESTRO
P1MAESTRO
P2ESCLAVO
P2ESCLAVO
SCL o señal de Reloj
SDA o señal de Datos
Señal generada por el Maestro…
Señal generada por el Maestro…
Dirección de los datos dada por
el Maestro
Dirección de los datos dada por
el Maestro
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
P2MAESTROESCLAVO
P2MAESTROESCLAVO
P1MAESTROESCLAVO
P1MAESTROESCLAVO
P3SOLO
ESCLAVO
P3SOLO
ESCLAVO
P4SOLO
ESCLAVO
P4SOLO
ESCLAVO
Varios periféricos conectados al BUS. Algunos pueden ser Maestro/Esclavo, otros solo son esclavos.
SCL
SDA
Bus inactivo, ambas líneas a 5VBus inactivo, ambas líneas a 5V
Inter-Integrated Circuit I2CInter-Integrated Circuit I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
P2MAESTROESCLAVO
P2MAESTROESCLAVO
P1MAESTROESCLAVO
P1MAESTROESCLAVO
P3SOLO
ESCLAVO
P3SOLO
ESCLAVO
P4SOLO
ESCLAVO
P4SOLO
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
P2MAESTROESCLAVO
P2MAESTROESCLAVO
P1ESCLAVO
P1ESCLAVO
P3ESCLAVO
P3ESCLAVO
P4ESCLAVO
P4ESCLAVO
Inter-Integrated Circuit I2CInter-Integrated Circuit I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
P2MAESTROESCLAVO
P2MAESTROESCLAVO
P1MAESTROESCLAVO
P1MAESTROESCLAVO
P3SOLO
ESCLAVO
P3SOLO
ESCLAVO
P4SOLO
ESCLAVO
P4SOLO
ESCLAVO
Caso 1: El periférico P2 (Maestro) establece comunicación con P4 (Esclavo) enviando n tramas.
SCL
SDA
P2MAESTROESCLAVO
P2MAESTROESCLAVO
P1ESCLAVO
P1ESCLAVO
P3ESCLAVO
P3ESCLAVO
P4ESCLAVO
P4ESCLAVO
P4ESCLAVO
P4ESCLAVO
Inter-Integrated Circuit I2CInter-Integrated Circuit I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
P2MAESTROESCLAVO
P2MAESTROESCLAVO
P1MAESTROESCLAVO
P1MAESTROESCLAVO
P3SOLO
ESCLAVO
P3SOLO
ESCLAVO
P4SOLO
ESCLAVO
P4SOLO
ESCLAVO
Caso 2: El periférico P2 (Maestro) establece comunicación con P4 (Esclavo) recibiendo n tramas.
SCL
SDA
P2MAESTROESCLAVO
P2MAESTROESCLAVO
P1ESCLAVO
P1ESCLAVO
P3ESCLAVO
P3ESCLAVO
P4ESCLAVO
P4ESCLAVO
P4ESCLAVO
P4ESCLAVO
Inter-Integrated Circuit I2CInter-Integrated Circuit I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
P2MAESTROESCLAVO
P2MAESTROESCLAVO
P1MAESTROESCLAVO
P1MAESTROESCLAVO
P3SOLO
ESCLAVO
P3SOLO
ESCLAVO
P4SOLO
ESCLAVO
P4SOLO
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
P2MAESTROESCLAVO
P2MAESTROESCLAVO
P1ESCLAVO
P1ESCLAVO
P3ESCLAVO
P3ESCLAVO
P4ESCLAVO
P4ESCLAVO
Inter-Integrated Circuit I2CInter-Integrated Circuit I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Inter-Integrated Circuit I2CInter-Integrated Circuit I2C
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.
Todos los dispositivos deben cumplir esta
velocidad.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
¿Zona de Preguntas?¿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 I2C pueden trabajar en el modo rápido?
¿Cómo se llaman las líneas del I2C? ¿Que ventajas y desventajas puede tener el hecho de
que solo se utilicen dos líneas?
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
A continuación…A continuación…
Funcionamiento del Protocolo
Hardware y Términos Protocolo I2C
Introducción al Protocolo I2C
Hardware y Términos Protocolo I2C
Manipulación del I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Hardware y TérminosHardware 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 5V, el transistor no conduce???
Para poner 0V, el transistor conduce...
Para poner 0V, el transistor conduce...
Los 5V son dados por la fuente Vcc, siempre que todos los Trans.
estén en corte…
Los 5V son dados por la fuente Vcc, siempre que todos los Trans.
estén en corte…
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Periférico 1
SCL_RX
SDA_RX
SCL_TX
SDA_TX
SCL
SDA
VDD
Hardware y TérminosHardware 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…
Si los pines no son Open Drain, es bueno colocar una pequeña resistencia en serie…
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Hardware y TérminosHardware y Términos
Conexión de Periféricos
DEVICE 1DEVICE 1 DEVICE 2DEVICE 2 DEVICE nDEVICE n…
VDD
SCLSDA
10k-47k
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Hardware y TérminosHardware 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).
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Hardware y TérminosHardware 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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Hardware y TérminosHardware 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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
¿Zona de Preguntas?¿Zona de Preguntas?
Explique que ocurre si un dispositivo I2C trata de establecer un ‘1’ en la línea SCL mientras otro está estableciendo un ‘0’ en la misma
El bus I2C está desocupado siempre que … ¿Qué ocurre si la línea SDA cambia de estado
mientras SCL está a ‘1’ lógico?
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
A continuación…A continuación…
Funcionamiento del Protocolo
Hardware y Términos Protocolo I2C
Introducción al Protocolo I2C
Funcionamiento del Protocolo
Manipulación del I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
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.
D7 D6 D5 D4 D3 D2 D1 D0 ACKSDA
SCL
MSB LSB
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
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
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
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.
A6 A5 A4 A3 A2 A1 A0 R/W ACKSDA
SCL
MSB LSB
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
Selección y Escritura (Un solo dato)
SDA
SCL
A6 A5 A4 A3 A2 A1 A0 0 ACK
Generado porEsclavo
MSB LSB
Generado por Maestro
SDA
SCL
D7 D6 D5 D4 D3 D2 D1 D0 ACK
START
STOP
Generado porEsclavo
MSB LSB
Generado por Maestro
Si el esclavo envía ACK = ‘0’, entonces pueden enviarse n tramas de 8 bits…
Si el esclavo envía ACK = ‘0’, entonces pueden enviarse n tramas de 8 bits…
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
Selección y Lectura (Un solo dato)
SDA
SCL
A6 A5 A4 A3 A2 A1 A0 1 ACK
Generado porEsclavo
MSB LSB
Generado por Maestro
SDA
SCL
D7 D6 D5 D4 D3 D2 D1 D0 ACK
START
STOP
Generado porMaestro
MSB LSB
Generado por Esclavo
Si el esclavo envía ACK = ‘0’, entonces
pueden leerse n tramas de 8 bits…
Si el esclavo envía ACK = ‘0’, entonces
pueden leerse n tramas de 8 bits…
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Funcionamiento del I2CFuncionamiento del I2C
¿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?
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
¿Zona de Preguntas?¿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?
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
A continuación…A continuación…
Funcionamiento del Protocolo
Hardware y Términos Protocolo I2C
Introducción al Protocolo I2C
Manipulación del I2CManipulación del I2C
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Módulo I2C de un PICMó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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Manipulación del I2CManipulación del I2C
Configuración genérica del I2C:
#USE I2C (opciones)
Esta directiva permite configurar varios parámetros del I2C: Modo Pines utilizados Dirección Velocidad
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Manipulación del I2CManipulación del I2C
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ÓN DESCRIPCIÓN
MULTI_MASTER Establece modo Multimaestro
MASTER Establece modo maestro
SLAVE Establece modo esclavo
RESTART_WDT Borra el WDT mientras espera lectura
SCL = pin Especifica el pin SCL
SDA = pin Especifica el pin SDA
ADDRESS = n Especifica la dirección en modo esclavo
FAST Utiliza velocidad alta
SLOW Utiliza velocidad baja
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
EstablecimientoEstablecimiento
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
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
EscrituraEscritura
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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
LecturaLectura
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)
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
DirecciónDirección
Dirección del dispositivo modo Slave
I2C_SlaveAddr();
Función que especifica la dirección del dispositivo cuando se ha configurado como esclavo.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
EjemplosEjemplos
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.
2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales IIISistemas Digitales II Universidad Santo Tomás
Fin de la Clase!!!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?
Sistemas Digitales IIFin de la clase 13