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