2016/04/22

Aprendiendo I2C con el DS1621.

Luego de dos semanas de mucha lectura, prueba y ensayo creo que ya entiendo lo básico de este interesante bus de comunicación I2C y lo comparto con ustedes, como siempre queridos amigos cualquier ayuda, corrección o aporte usar los comentarios o los enlaces de contacto del blog.

Simulador Proteus.
El esquema de simulación Figura-01


El DS1621 (Figura-02) es un termómetro digital y termóstato con interfaz I2C con rango de temperatura desde los -55.0 °C hasta los 125.0 °C con incremento de 0.5 °C.

DS1621
El DS1621 Figura-02


Podemos configurar hasta 8 dispositivos, mediante el uso de los pines A2, A1, A0 (figura-02) de la dirección, como vemos en el ejemplo de la tabla-01, los primero 4 dígitos son fijos y depende del DS1621.

Dirección del DS1621
Binario.
Hexadecimal.
SET
A2
A1
A0
W/R
1001
0
0
0
0
0x90
Tabla-01.

Como cerebro tenemos un PIC18F452 (Figura-03), simulado mediante Proteus ISIS y el código compilado con PIC-C CCS.

PIC18F452
El PIC18F452 Figura-03


El ejercicio comprende el PIC18F452 como maestro y cuatros DS1621 como esclavos, se fija la temperatura máxima y mínima del termostato y la lectura de la temperatura, la cual se muestra en una LCD (Figura-01).

Simulación.
Corriendo la simulación Figura-04


Uso la Terminal virtual para la depuración del código, pero lo deje para que muestre información de cada dispositivo DS1621 (Figura-04).

La característica de la simulación son las siguientes:

  • PIC18F452 corriendo a 4 Mhz.
  • En I2C se usa los módulos del PIC con force_hw y se fija la velocidad en Fast.
  • Se usa los pin SDA y SDL por defecto del PIC.
  • Para lo demás FUSES consulte el archivo main.h.

No voy entrar en detalle en la explicación del código, en el ejercicio que anexo trate de ser lo más meticuloso en describir cada detalle, tiene disponible el archivo de la simulación en Proteus y el código fuente.
  • I2C DS2116 V0.4 [MF] [MG].

Pero antes les recomiendo la lectura de estos dos libros:

  • Comunicación I2C [MF] [MG].
  • Libros de PIC-C CCS y Proteus ISIS para principiantes [22XD].

Luego el datasheet del DS1621 [MF] [MG].

Pero por favor enfóquese en el siguiente diagrama (Figura-05), que se debela como comunicarse con el DS1621.

Diagrama de lectura y escritura del DS1621 Figura-05


Ahora si a revisar el código del ejemplo y simularlo, pero como siempre este es un ejercicio práctico para aprender el concepto, varios pines de los dispositivos se obvian en la simulación, pero se debe tener presente en una practica real, así que agrego los siguiente datasheet:

También te puede interesar:

  • I2C [Wikipedia-es].
  • Todos mis ejemplos [22XD].
  • Como crear un proyecto en PIC-C CCS y Simularlo en Proteus ISIS [22XD].

Actualización: En PIC-C se cuenta con el Driver DS1621.C y DS1621M.C para varios dispositivos.


5 22XD: Aprendiendo I2C con el DS1621. Luego de dos semanas de mucha lectura, prueba y ensayo creo que ya entiendo lo básico de este interesante bus de comunicación I2C y lo comp...
< >