Laboratorio: I2C y 1-Wire

1. Introducción

Marco teórico

Cuando dos dispositivos, conectados por un bus a puertos push-pull, desean transmitir simultáneamente símbolos opuestos se producirá una situación de baja impedancia entre Vcc y masa. Esto puede acarrear desde un reinicio de los dispositivos hasta el daño de los puertos o fuente de alimentación.

(Application Note Microchip Technology Inc. AN2658)

Por eso en protocolos en los que más de un dispositivo puede transmitir por el mismo bus (half-duplex) se suele utilizar el mecanismo de Open-drain / open-collector. En este tipo de configuración los dispositivos solo pueden poner el bus a 0. En el estado de reposo el bus toma un valor de Vcc a través de resistores pull-up. internos del dispositivo.

Si el bus presenta una capacitancia significativa los transitorios hasta que se establezca el nivel alto pueden perjudicar la transmisión.

Objetivo

Visualizar las tramas correspondientes a los protocolos serie I2C y 1-Wire, y comprender el
efecto de la longitud del conductor sobre la calidad de la señal.

Requisitos

  • Arduino Mega 2560
  • Sensor TMP101; MAX31820, DS18(B)20 u otro dispositivo 1-wire.
  • Arduino IDE
  • Librería para DS18B20 y TMP101
  • Osciloscopio RIGOL DS1102E / OWON DS 5032E o similar
  • Medidor RLC GWINSTEK.
  • Varios metros de cable par trenzado

Aclaración

En las versiones más nuevas de IDE se pueden instalar las librerías en cuestión directamente desde el administrador de librerías