26
Ing. Guillermo Murcia [email protected] Ing. Jorge Luis Strack [email protected]

Ing. Guillermo Murcia [email protected] Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

  • Upload
    ngodien

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 2: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Lecto-grabadora de SDcard

2

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

- Se comunica con Arduino a través del protocolo de comunicación SPI.

- Se comanda a través de la librería SD.h

Page 3: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

SPI bus (Serial Peripheral Interface)

3

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Desarrollado por Motorola en 1980.

• Sus ventajas lo convirtieron en un bus standard en electrónica.

• Tiene una arquitectura del tipo maestro-esclavo.

• Permite la comunicación serie sincrónica entre un microcontrolador

(maestro o master) y uno o más periféricos (esclavo o slave) en forma rápida

(~8Mbits/s) a corta distancia.

• También permite comunicación entre dos microcontroladores, pero no entre

dos esclavos en forma directa.

Fuente: Luis Llamas. Ingeniería, Informática y Diseño.

Page 4: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

SPI bus (Serial Peripheral Interface)

4

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Hay tres líneas comunes entre todos los dispositivos:

- MISO (Master In Slave Out): por la cuál el esclavo envía datos al maestro,

- MOSI (Master Out Slave In): por la cuál el maestro envía datos al esclavo,

- SCK (Serial Clock): línea de pulsos de clock emitidos por el maestro que

sincronizan la transmisión de datos.

• Y una línea específica para cada periférico o esclavo:

- SS (Slave Select): pin a través del cuál el maestro habilita o deshabilita la

comunicación.

Page 5: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

SPI bus (Serial Peripheral Interface)

5

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• La comunicación de datos entre maestro y esclavo se realiza en dos líneas

independientes, una del maestro a los esclavos, y otra de los esclavos al

maestro. Por tanto la comunicación es Full Duplex, es decir, el maestro puede

enviar y recibir datos simultáneamente.

Page 6: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Funcionamiento del SPI bus (Serial Peripheral Interface)

6

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Por defecto el maestro mantiene en estado HIGH todas las líneas SS. Cuando

el maestro quiere establecer comunicación con esclavo pone a LOW la

línea SS correspondiente, lo que indica al esclavo que debe iniciar la

comunicación.

Page 7: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Funcionamiento del SPI bus (Serial Peripheral Interface)

7

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• En cada pulso de la señal de reloj, normalmente en el flanco de subida, el

dispositivo maestro envía un bit al esclavo a la vez que puede recibir un

bit del esclavo seleccionado.

Page 8: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Funcionamiento del SPI bus (Serial Peripheral Interface)

8

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• La trama (los datos enviados) no sigue ninguna regla, es decir, se puede

enviar cualquier secuencia arbitraria de bits. Esto hace que los dispositivos

conectados necesiten tener pre-acordado la longitud y significado de lo que

van a enviar y recibir.

Page 9: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

SPI bus (Serial Peripheral Interface)

9

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Ventajas:

- Alta velocidad de trasmisión (hasta 8 Mhz en Arduino) y Full Duplex

- Integrado en muchos dispositivos.

- Permite enviar secuencias de bit de cualquier tamaño.

• Desventajas:

- Se requieren 3 cables (SCK, MOSI y MISO) + 1 cable adicional (SS) por

cada dispositivo esclavo.

- Solo es adecuado a corta distancias (hasta 30cm)

- No se dispone de ningún mecanismo de control que permita saber si el

mensaje ha sido recibido correctamente.

- La longitud de los mensajes enviados y recibidos tiene que ser conocida

por ambos dispositivos.

Page 10: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

SPI bus (Serial Peripheral Interface)

10

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

Page 11: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Real Time Clock o Reloj de Tiempo Real (RTC)

11

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

- Se comunica con Arduino a través del protocolo I2C.

- Se comanda a través de la librería DS1307RTC.h

Page 12: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

• Desarrollado por Philips en 1982.

• También conocido como TWI (Two Wired Interface)

• Se ha convertido en un standard para la comunicación de periféricos.

• Permite la comunicación serie sincrónica entre un microcontrolador

(maestro o master) y uno o más periféricos (esclavo o slave) a baja velocidad

(~100-400 kbits/s) y en distancias cortas. También permite comunicación

entre dos microcontroladores.

Fuente: Luis Llamas. Ingeniería, Informática y Diseño.

I2C bus (Inter-Intergrated Circuit)

12

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

Page 13: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

• Hay dos líneas comunes entre todos los dispositivos:

-SDA (Serial Data): línea de datos semibidireccional.

-SCL (Serial Clock): línea de pulsos de clock generados por el maestro

que sincronizan la transmisión de datos.

• Cada esclavo tiene una dirección única de 7 bits que lo identifica. La

misma se puede configurar por hardware o por software.

I2C bus (Inter-Intergrated Circuit)

13

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

Page 14: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

• El bus I2C tiene una arquitectura de tipo maestro-esclavo. El dispositivo

maestro inicia la comunicación con los esclavos, y puede mandar o recibir

datos de los esclavos. Los esclavos no pueden iniciar la comunicación (el

maestro tiene que preguntarles), ni hablar entre si directamente.

• Es posible disponer de más de un maestro, pero solo uno puede ser el

maestro cada vez. El cambio de maestro supone una alta complejidad, por

lo que no es algo frecuente.

• El bus I2C es síncrono. El maestro proporciona una señal de reloj, que

mantiene sincronizados a todos los dispositivos del bus. De esta forma, se

elimina la necesidad de que cada dispositivo tenga su propio reloj, de tener

que acordar una velocidad de transmisión y mecanismos para mantener la

transmisión sincronizada (como en UART).

I2C bus (Inter-Intergrated Circuit)

14

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

Page 15: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

• Para poder realizar la comunicación con solo un cable de datos, el bus I2C

emplea una trama (formato de los datos enviados) amplia. La comunicación

costa de:

- 7 bits con la dirección del dispositivo esclavo a comunicar,

- 1 bit de sentido (indica si el maestro quiere enviar o recibor datos),

- 1 bit de validación,

- 1 o más bytes de datos enviados o recibidos del esclavo,

- 1 bit de validación.

Funcionamiento del I2C bus (Inter-Intergrated Circuit)

15

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

Page 16: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

• Con estos 7 bits de dirección es posible acceder a 112 dispositivos en un

mismo bus (16 direcciones de las 128 direcciones posibles se reservan para

usos especiales)

• Este incremento de los datos enviados (18bits por cada 8bits de datos) supone

que, en general, la velocidad del bus I2C es reducida. La velocidad estándar

de transmisión es de 100khz, con un modo de alta velocidad de 400khz.

Funcionamiento del I2C bus (Inter-Intergrated Circuit)

16

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

Page 17: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

I2C bus (Inter-Intergrated Circuit)

17

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Ventajas:

- Requiere menos cables que el SPI bus.

- Dispone de mecanismos para chequear que la información ha llegado.

• Desventajas:

- Su velocidad es media o baja en comparación con otros buses.

- La comunicación no es full duplex, sino half duplex.

- No hay verificación de que el contenido del mensaje sea correcto.

Page 18: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

I2C bus (Inter-Intergrated Circuit)

18

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Arduino dispone de soporte I2C por hardware vinculado físicamente a ciertos

pines. También es posible emplear cualquier otro grupo de pines como bus I2C

a través de sofware, pero en ese caso la velocidad será mucho menor.

• Los pines a los que está asociado varían de un modelo a otro. La siguiente

tabla muestra la disposición en alguno de los principales modelos.

Page 19: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

LCD (Liquid Crystal Display) 20x4

19

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

- Se comunica con Arduino a través del protocolo I2C.

- Se comanda a través de la librería LiquidCrystal_I2C.h

Adaptador paralelo/I2C

LCD 20x4

Page 20: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

LCD (Liquid Crystal Display) 20x4

20

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

LCD 20x4

Adaptador paralelo/I2C SCL

SDA

VCC

GND

Page 21: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Sensor de temperatura LM 35

21

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

- Opera con una tensión de 4 a 30 V.

- Entrega una tensión de salida linealmente proporcional a la temperatura

en grados Celsius: 10mV/˚C.

- Exactitud a 25˚C de 0.5˚C.

- Rango de medición: -55˚C a 150˚C

Page 22: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Sensor de temperatura LM 35

22

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Sensor de temperatura LM 35

Page 23: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Shields disponibles

23

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Ethernet shield

Tensión de alimentación 5V (se alimenta

directamente desde la tarjeta Arduino).

Controlador ethernet: chip Wiznet W5100 con

memoria flash de 16K.

Proporciona una red IP con capacidad de

comunicación TCP y UDP.

Puede operar como cliente o servidor.

Hasta 4 conexiones simultáneas.

Velocidad: 10/100Mbps

Conexión con Arduino a través del Puerto SPI (pines 10, 11, 12, 13).

El pin 10 es para seleccionar la conexión Ethernet.

Provista con lecto-grabadora de memoria micro-SD (pin 4 para seleccionar la memoria).

Comando desde librería SPI.h Ethernet.h y SD.h.

Se monta arriba de una Arduino UNO, Mega o compatibles y permite que se apilen otros

shields sobre ella.

Page 24: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Shields disponibles

24

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Datalogger shield

Tensión de alimentación 5V (se alimenta

directamente desde la tarjeta Arduino).

Reloj de Tiempo Real (RTC) basado en el chip

DS1307.

Pila de litio para mantener el chip en hora

cuando el Arduino está sin alimentación.

Lecto-grabadora de memoria SD.

Conexión con Arduino a través del bus SPI

(pines 10, 11, 12, 13).

El pin 10 es el pin de selección para utilizar la memoria SD.

El RTC se controla a través de los pines SCL y SDA (bus I2C).

Comando desde librería DS1307RTC.h, Time.h , y SD.h.

Dispone de un área experimental para soldar conectores, componentes y sensores.

Se monta arriba de una Arduino UNO, o se conecta con cables a una Arduino Mega.

Page 25: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Circuito a realizar: (Arduino MEGA + Shield Ethernet)

25

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

LM 35

RTC DS 1307

Page 26: Ing. Guillermo Murcia gjmurcia@fi.mdp.edu.ar Ing. … · • El bus I2C tiene una ... También es posible emplear cualquier otro grupo de pines como bus I2C ... El pin 10 es el pin

Guía de

Ejercicios

N° 12

26