ventajas del bus i2c - iglona.eu5.orgiglona.eu5.org/i2c_practico_tc74.pdf · al margen de su...

10
1 Ejemplos-Interface I2C: TC74 Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC TC74: Termómetro digital 2 Ejemplos-Interface I2C: TC74 Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo 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)

Upload: buithien

Post on 04-Oct-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

1

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

BUS I2C:IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC

TC74: Termómetro digital

2

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Ventajas del BUS I2C• Definido inicialmente a mediados de los 80 para trabajar a 100kbit/s y en 1995se definió un modo rápido de funcionamiento que permitía transferencias de hasta400kbit/s (esas frecuencias se han superado hoy en día y algunos dispositivosllegan 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 transferenciaes 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 funcionesde interface con bus I2C, la inclusión de un dispositivo I2C adicional sólo necesitaríasu conexión a las dos líneas del bus (SDA y SCL que son las mismas para todos) yasignarle una dirección. Los intercambios se realizarían utilizando los mismossubprogramas 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)

Page 2: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

3

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

• 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

Algunos C.I. con bus I2C:

Al margen de su compatibilidad con el bus I2C, cada dispositivotiene su propia configuración, con sus registros internos, sus comandos,

sus estados, etc. que será preciso conocer en sus hojas de característicasfuncionales particulares

4

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

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 encapsuladosy pines de conexión

En TO-220 la cápsula exterior está conectada a masa (GND)

Page 3: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

5

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

C.I. Sensor de Temperatura TC74

1. Funcionalidad: ¿Qué puede hacer y para qué puede servir?

Medida de temperatura: de -65ºC a 127ºCPrecisión de ±2ºC de +25ºC a 85ºC y ±3ºC de 0ºC a 125ºCResolución de 8 bits: 1ºCProporciona valor en binario y valores negativos en complemento a 2Tensión de alimentación: 2,7V a 5,5VConsumo “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 I2CTiene una dirección asignada en el busTramas de lectura y escritura en I2CComandos admitidos y formatos conocidos especificados a continuación

6

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

TC74: Diagrama de Bloques Funcional

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

No precisade

componentesexternos

para funcionar

(Sólo la tensiónde alimentación)

Conversor A/D

Page 4: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

7

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Funcionamiento: MEDIDA DE LA TEMPERATURA

• El integrado realiza la adquisición y conversión de temperaturas mediante un sensorde 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 accederen 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 laadquisició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 elregistro de temperatura sólo puede ser leído

• Las lecturas y escrituras siguen las tramas típicas en un bus I2C

8

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Interface I2C del TC74

• Esclavo de un bus I2C con una dirección preestablecida: 1001101, no podríanconvivir más de un TC74 en el mismo bus salvo que le encarguemos a Microchipsensores 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 maestrotras 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 STARTByte 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

Page 5: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

9

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Tramas: Escritura de un byte en registro

S bit deStart Dirección del TC74

como Esclavo en I2C R/W

ACKSDA: 1 0 0 1 1 0 1 0 ACK C7 C6 C5 C4 C3 C2 C1 C0

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

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

Dato a escribiren el registro indicado

por el comando

SDA: D7 0 0 1 1 0 1 0 ACK P D7 D6 D5 D4 D3 D2 D1 D0

bit deStop

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

En este caso sólo tendría sentido ESCRIBIR CONFIGURACIÓN(comando RWCR=0x01)

10

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Tramas: Lectura de un byte de un registro

S bit deStart Dirección del TC74

como Esclavo en I2C R/W

ACKSDA: 1 0 0 1 1 0 1 0 ACK C7 C6 C5 C4 C3 C2 C1 C0

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

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

SDA:

Con la primera parte de la trama (línea superior) se indica a qué registro sedesea acceder (dependerá del comando: RTR ó RWCR)

y con la segunda parte de la trama (segunda línea) se realiza la lectura del byte

Sr

Dirección del TC74como Esclavo en I2C R/W

1 0 0 1 1 0 1 1 ACK

bit deRestart

b7 b6 b5 b4 b3 b2 b1 b0 ACK

Dato presente en el registroespecificado por el comando

P

Stop

bit de NOACK

Page 6: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

11

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Tramas: Otra posible Lectura de un registro

SDA: S

Dirección del TC74como Esclavo en I2C R/W

1 0 0 1 1 0 1 1 ACK

bit deStart

b7 b6 b5 b4 b3 b2 b1 b0 ACK

Dato presente en el registroespecificado en el

último comando que seutilizó

P

Stop

bit de NOACK

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:

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

12

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Registros internos: Registro de Configuración

N/ASólo lecturaLect./Escrit.Reservados (se leen como 0)Data ReadyBit de Standby

b0b1b2b3b4b5b6b7

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 1el 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

Page 7: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

13

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Registros internos: Registro de temperatura

b0b1b2b3b4b5b6b7

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

11100111

bit más significativo a 1: nº negativomódulo: complemento a 2 del nº

00011001 -> 25

00011001

bit más significativo a 0: nº positivovalor: 00011001 -> 25

14

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Posición del Sensor de Temperatura TC74 en PICDEM2 plus

Page 8: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

15

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Propuesta de EJERCICIO:

Realizar un programa que reciba la temperatura medida por el TC74 y lamuestre en la primera línea del LCD conectado a la placa de prácticas

PICDEM2 plus

PIC16F877

T = 23 º C

LCD con driver HD44780

PORTD

RA3RA2RA1

E RW RS

TC74

SCL SDA

RC3 RC4

Se necesitarán:

• Subprogramas de interface con el LCDS2_LCD4B_P2P.ASM

• Subprogramas de interface I2CMSSP_I2C.ASM

• Subpr. de conversión de binario a BCD

4MHz

16

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Trama para Lectura de la Temperatura

S bit deStart Dirección del TC74

como Esclavo en I2C R/W

ACKSDA: 1 0 0 1 1 0 1 0 ACK 0 0 0 0 0 0 0 0

Los bits del COMANDO

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

SDA: Sr

Dirección del TC74como Esclavo en I2C R/W

1 0 0 1 1 0 1 1 ACK

bit deRestart

b7 b6 b5 b4 b3 b2 b1 b0 ACK

Dato en el registrode temperatura

P

Stop

bit de NOACK

Page 9: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

17

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

• 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 TX

• Recoger byte del bus RX

• Generar bit de NOACK B_NOACK

• Generar bit de STOP B_STOP

Trama de Lectura de Temperatura :

Lectura de Temperatura con secuencia de subprogramas a llamar para I2C

18

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

Trama: Otra posible Lectura de Temperatura

SDA: S

Dirección del TC74como Esclavo en I2C R/W

1 0 0 1 1 0 1 1 ACK

bit deStart

b7 b6 b5 b4 b3 b2 b1 b0 ACK

Dato presente en el registrode temperatura(si fue el últimoal que se accedió)

P

Stop

bit de 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

Page 10: Ventajas del BUS I2C - iglona.eu5.orgiglona.eu5.org/I2C_PRACTICO_TC74.pdf · Al margen de su compatibilidad con el bus I2C, cada dispositivo tiene su propia configuración, con sus

19

Ejemplos-Interface I2C: TC74

Microcontroladores PIC ©Fernando Nuño-ATE-Universidad de Oviedo

• Generación de bit de start B_START

• Envío de dirección de esclavo y bit R/W=1 TX

• Recoger byte del bus RX

• Generar bit de NOACK B_NOACK

• Generar bit de STOP B_STOP

Ejemplo de Trama:

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