Ventajas del BUS I2C

Ejemplos-Interface I2C: TC74 BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC TC74: Termómetro digital Microcontroladores PIC ©Fernando

45 downloads 264 Views 570KB Size

Recommend Stories


VENTAJAS PROPIEDADES DEL PRODUCTO
FICHA TÉCNICA TODO PINTURA ANTIMANCHAS Fecha de revisión: 12/04/2015 Pag. 01/04 DESCRIPCIÓN DEL PRODUCTO Pintura aislante de manchas, a base de res

Ventajas del Sistema TERA
SIEMON DICE... Ventajas del Sistema TERA  Introducción TERA®1 es la solución de cableado balanceado Clase FA /categoría 7A a 1000

VENTAJAS
HOJA TÉCNICA Sikaflex® PRO-3 Sellante Elástico de poliuretano monocomponente para juntas especiales DESCRIPCIÓN DEL PRODUCTO Sikaflex® PRO-3 es un s

Bus AGP (Accelerated Graphics Port)
Placas base. Estructura de computadores

Story Transcript

Ejemplos-Interface I2C: TC74

BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC TC74: Termómetro digital

Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

1

Ejemplos-Interface I2C: TC74

Ventajas del BUS I2C • Definido inicialmente a mediados de los 80 para trabajar a 100kbit/s y en 1995 se definió un modo rápido de funcionamiento que permitía transferencias de hasta 400kbit/s (esas frecuencias se han superado hoy en día y algunos dispositivos llegan a 4MHz). • Presenta una transferencia “lenta” en comparación con el modo SPI y mucho más con la lectura/escritura directa de los puertos de un microcontrolador • Es útil y se emplea en muchas aplicaciones en las que la velocidad de transferencia es mucho mayor de lo que el caso requiere (p.e. Medida de temperaturas con constantes de tiempo de segundos) • Su principal ventaja, es que una vez disponible el microcontrolador con sus funciones de interface con bus I2C, la inclusión de un dispositivo I2C adicional sólo necesitaría su conexión a las dos líneas del bus (SDA y SCL que son las mismas para todos) y asignarle una dirección. Los intercambios se realizarían utilizando los mismos subprogramas para todos • La tensión de funcionamiento va de 2,5V a 5,5V y no es necesaria la presencia de “drivers” de adaptación de tensión externos (integración en los propios dispositivos) Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

2

Ejemplos-Interface I2C: TC74

Algunos C.I. con bus I2C: • Convertidores D/A: MAX518 (DIP8 ó SO-8) de Maxim • Convertidores A/D y D/A: PCF8591 (DIP16 ó SO-16) de Philips • Sensores de Temperatura: TC74 (TO-220 ó SOT-23) de Microchip • EEPROM serie: 24Cxx ó 24LCxx (DIP8 ó SO-8) de Microchip • Reloj/Calendario de tiempo real (RTC): X1288 (SOIC-14) de Xicor, DS1629 • LCD con Driver: TTR6030 (PCB con 4 pines) • Otros Microcontroladores: PCA8516 de Philips para LCDs Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus registros internos, sus comandos, sus estados, etc. que será preciso conocer en sus hojas de características funcionales particulares Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

3

Ejemplos-Interface I2C: TC74

Sensor de Temperatura (TC74) • Combinación de sensor de Tª, conversor A/D de 8 bits e interface I2C en un solo C.I. • Siempre será dispositivo esclavo y estará recibiendo o emitiendo datos cuando se lo solicite el Maestro del bus • Dirección asignada en I2C como esclavo: 1-0-0-1-1-0-1

(hay otras 7 direcciones distintas que se podrían asignar bajo pedido a Microchip)

Tipos de encapsulados y pines de conexión En TO-220 la cápsula exterior está conectada a masa (GND) Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

4

Ejemplos-Interface I2C: TC74

C.I. Sensor de Temperatura TC74 1. Funcionalidad: ¿Qué puede hacer y para qué puede servir? Medida de temperatura: de -65ºC a 127ºC Precisión de ±2ºC de +25ºC a 85ºC y ±3ºC de 0ºC a 125ºC Resolución de 8 bits: 1ºC Proporciona valor en binario y valores negativos en complemento a 2 Tensión de alimentación: 2,7V a 5,5V Consumo “en operación” de 200 µA y “en standby” de 5 µA 2. Interface: ¿Cómo nos comunicamos con él desde un microcontrolador? Es esclavo de un bus I2C Tiene una dirección asignada en el bus Tramas de lectura y escritura en I2C Comandos admitidos y formatos conocidos especificados a continuación

Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

5

Ejemplos-Interface I2C: TC74

TC74: Diagrama de Bloques Funcional

No precisa de componentes externos para funcionar (Sólo la tensión de alimentación)

Microcontroladores PIC

Conversor A/D

©Fernando Nuño-ATE-Universidad de Oviedo

Líneas de datos (SDA) y de reloj (SCL) del bus I2C

6

Ejemplos-Interface I2C: TC74

Funcionamiento: MEDIDA DE LA TEMPERATURA • El integrado realiza la adquisición y conversión de temperaturas mediante un sensor de estado sólido con una resolución de ±1ºC • En modo de operación normal, se toman y convierten 8 muestras por segundo y el resultado de la conversión se almacena en un registro interno al que se puede acceder en cualquier momento vía serie mediante el bus I2C • El C.I. se puede situar en modo de bajo consumo (Stand-by) en el que se suspende la adquisición de temperatura y queda retenido en el registro interno el resultado de la última conversión. • Internamente existe un registro de configuración (CONFIG) donde hay un bit (SHDN) que establece el modo de trabajo: normal (SHDN a 0) o de bajo consumo (SHDN a 1) • El registro de configuración interno se puede escribir y se puede leer, mientras que el registro de temperatura sólo puede ser leído • Las lecturas y escrituras siguen las tramas típicas en un bus I2C Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

7

Ejemplos-Interface I2C: TC74

Interface I2C del TC74 • Esclavo de un bus I2C con una dirección preestablecida: 1001101, no podrían convivir más de un TC74 en el mismo bus salvo que le encarguemos a Microchip sensores con otras direcciones bajo pedido: 1001xxx posibles direcciones • Interface a dos hilos: SCL entrada del reloj generado por el Maestro del bus y SDA entrada o salida de datos en función del sentido establecido por el maestro tras un byte de control inicial • La máxima frecuencia de reloj de entrada admitida por el dispositivo es de 100kHz • Las tramas de comunicación siempre se inician de manera idéntica: ‰ Bit de START ‰ Byte de Control con la dirección del TC74 seguido de bit 0 (escritura) ó 1 (lectura) ‰ Bit de ACK por parte del TC74 … lo que sigue ya depende del comando en particular

Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

8

Ejemplos-Interface I2C: TC74

Tramas: Escritura de un byte en registro SDA: S

1

0 0

bit de Start

SDA:

1

1

0

1

0 ACK C7 C6 C5 C4 C3 C2 C1 C0 ACK

Dirección del TC74 como Esclavo en I2C

R/W

Los bits del COMANDO (sólo hay 2 posibles)

D7 D60 D5 0 D41 D31 D20 D11 D00 ACK P D7 bit de Stop

Dato a escribir en el registro indicado por el comando

COMANDOS POSIBLES: RTR=0x00 Leer Registro Temperatura RWCR=0x01 Leer/Escribir Configuración

En “amarillo” lo que tiene que poner el Maestro: el microcontrolador En azul lo que pondrá el Esclavo: TC74 En este caso sólo tendría sentido ESCRIBIR CONFIGURACIÓN (comando RWCR=0x01) Microcontroladores PIC

9

©Fernando Nuño-ATE-Universidad de Oviedo

Ejemplos-Interface I2C: TC74

Tramas: Lectura de un byte de un registro SDA: S

1

0 0

bit de Start

SDA:

Sr

bit de Restart

1

1

0

1

0 ACK C7 C6 C5 C4 C3 C2 C1 C0 ACK

Dirección del TC74 como Esclavo en I2C 1

0 0

1

1

0

Dirección del TC74 como Esclavo en I2C

1

R/W 1

Los bits del COMANDO (sólo hay 2 posibles)

ACK b7 b6 b5 b4 b3 b2 b1 b0 R/W

ACK P

Dato presente en el registro especificado por el comando

En “amarillo” lo que tiene que poner el Maestro: el microcontrolador En azul lo que pondrá el Esclavo: TC74

Stop

bit de NOACK

Con la primera parte de la trama (línea superior) se indica a qué registro se desea acceder (dependerá del comando: RTR ó RWCR) y con la segunda parte de la trama (segunda línea) se realiza la lectura del byte Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

10

Ejemplos-Interface I2C: TC74

Tramas: Otra posible Lectura de un registro Existe una manera “más corta” de leer un determinado registro, siempre y cuando el registro a leer sea al que se hizo referencia en el último comando que se escribió en el TC74: SDA:

S

1

0 0

1

1

0

Dirección del TC74 como Esclavo en I2C

bit de Start

1

1

ACK b7 b6 b5 b4 b3 b2 b1 b0 R/W

ACK P

Dato presente en el registro Stop especificado en el último comando que se bit de utilizó NOACK

Si se desean recoger sucesivos valores de temperatura, sería suficiente con haber “escrito” al principio un comando de lectura de temperatura (RTR = 0x00) y luego se podría proceder a leer los valores almacenados en el registro enviando sucesivas tramas como la mostrada arriba Microcontroladores PIC

11

©Fernando Nuño-ATE-Universidad de Oviedo

Ejemplos-Interface I2C: TC74

Registros internos: Registro de Configuración b7

b6

b5

b4

b3

b2

b1

Bit de Standby

Data Ready

Reservados (se leen como 0)

Lect./Escrit.

Sólo lectura

N/A

b0

Bit de Standby:

si está a 1 sitúa al C.I. en bajo consumo, sin realizar conversiones, si a 0 en modo normal

Data Ready:

valor de temperatura disponible en el registro si está a 1 el bit estará a cero al alimentar el C.I. antes de que se haga la primera conversión y también cuando está en modo standby

Tras un “Power On Reset”, el registro arranca con el valor 0x00, por tanto en modo normal

Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

12

Ejemplos-Interface I2C: TC74

Registros internos: Registro de temperatura b7

b6

b5

b4

b3

b2

b1

b0

Nos proporciona el valor en binario resultante de la última conversión A/D, cada unidad representa un grado centígrado Tras un POR, se carga con 0x00 hasta que finalice la primera conversión, se sabe porque el bit DataReady del registro CONFIG pasa a 1 El formato de representación es el de complemento a 2 00011001 bit más significativo a 0: nº positivo valor: 00011001 -> 25

11100111 bit más significativo a 1: nº negativo módulo: complemento a 2 del nº 00011001 -> 25 Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

13

Ejemplos-Interface I2C: TC74

Posición del Sensor de Temperatura TC74 en PICDEM2 plus

Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

14

Ejemplos-Interface I2C: TC74

Propuesta de EJERCICIO: Realizar un programa que reciba la temperatura medida por el TC74 y la muestre en la primera línea del LCD conectado a la placa de prácticas PICDEM2 plus 4MHz

LCD con driver HD44780 T = 23 º C

PORTD

PIC16F877

RC3

RC4

SCL

E RW RS

RA3 RA2 RA1

Se necesitarán: • Subprogramas de interface con el LCD S2_LCD4B_P2P.ASM

SDA

• Subprogramas de interface I2C MSSP_I2C.ASM

TC74

• Subpr. de conversión de binario a BCD Microcontroladores PIC

15

©Fernando Nuño-ATE-Universidad de Oviedo

Ejemplos-Interface I2C: TC74

Trama para Lectura de la Temperatura SDA: S

1

0 0

bit de Start

SDA:

Sr

bit de Restart

1

1

0

1

0 ACK

Dirección del TC74 como Esclavo en I2C 1

0 0

1

1

0

Dirección del TC74 como Esclavo en I2C

1

R/W 1

0

0

0

0

0

0

0

0

Los bits del COMANDO

ACK b7 b6 b5 b4 b3 b2 b1 b0 R/W

ACK

ACK P

Dato en el registro de temperatura

Stop bit de NOACK

En “amarillo” lo que tiene que poner el Maestro: el microcontrolador PIC En azul lo que pondrá el Esclavo: TC74

Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

16

Ejemplos-Interface I2C: TC74

Trama de Lectura de Temperatura : Lectura de Temperatura con secuencia de subprogramas a llamar para I2C

• Generación de bit de start

B_START

• Envío de dirección de esclavo con bit R/W=0

TX

• Envío del comando RTR = 0x00

TX

• Envío de bit de restart

B_RESTART

• Envío de dirección de esclavo y bit R/W=1 • Recoger byte del bus

RX

• Generar bit de NOACK

B_NOACK

• Generar bit de STOP

Microcontroladores PIC

TX

B_STOP

©Fernando Nuño-ATE-Universidad de Oviedo

17

Ejemplos-Interface I2C: TC74

Trama: Otra posible Lectura de Temperatura

SDA: bit de Start

S

1

0 0

1

1

0

Dirección del TC74 como Esclavo en I2C

1

1

ACK b7 b6 b5 b4 b3 b2 b1 b0 R/W

ACK P

Dato presente en el registro Stop de temperatura (si fue el último bit de al que se accedió) NOACK

Si se desean recoger sucesivos valores de temperatura, sería suficiente con haber “escrito” al principio un comando de lectura de temperatura (RTR = 0x00) y luego se podrían leer los valores de temperatura enviando sucesivas tramas como la mostrada arriba Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

18

Ejemplos-Interface I2C: TC74

Ejemplo de Trama: Lectura “corta” de Temperatura con secuencia de subprogramas a llamar para I2C

• Generación de bit de start

B_START

• Envío de dirección de esclavo y bit R/W=1 • Recoger byte del bus • Generar bit de NOACK • Generar bit de STOP

Microcontroladores PIC

©Fernando Nuño-ATE-Universidad de Oviedo

TX

RX B_NOACK B_STOP

19

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.