Introducción al I2C Bus

Introducción al I²C-bus. (Actualizada)

Hablar del I2C bus, en nuestros días es, poco menos que arriesgado, hay que afinar mucho en lo que se dice, ya que cualquiera ha realizado su descripción y creo realmente que hay muy buenas descripciones y de esas, se bebe el conocimiento, por parte de muchos aficionados a la electrónica, cuando tiene que utilizar esta técnica de transmisión de datos como es el I2C-bus. I2C es un acrónimo de “Inter-Integrated Circuit”. En esta ocasión, espero exponer mi puntual experiencia y dar un poco de luz a los que estén interesados en conocer los pasos a seguir para utilizar con éxito esta técnica de transmisión I2C.

Hace ya muchos años cuando tuve conocimiento del sistema I2C bus, en aquellos momentos mi trabajo estaba relacionado directamente con la electrónica más puntera de la época, lo que se conocía como, “la cresta de la ola”. Ciertamente que no estaba en mi camino el hacer prácticas (por motivos que no vienen al caso) de esta novedosa técnica que, presentó la firma “Philips Semiconductors” (ahora NXP) a principios de los 80s, sin embargo, si puse en manos de bastantes ingenieros de la época y las Universidades de la zona, la extensa información que proveía la mencionada empresa. Sigue leyendo

EEPROM con I²C-BUS

Como utilizar una memoria EEPROM desde Arduino

El Arduino es una pequeña maravilla, en esto estarán de acuerdo con migo los que ya la conocen. Yo tuve que hacer un proyecto para un amigo, con el Arduino. Me comentó sobre la necesidad de usar algún tipo de almacenaje externo, para guardar los últimos datos, en caso de perdida de la alimentación.

En la actualidad, hay muchas opciones de almacenaje disponibles y pensé en el uso de una 24LC256 (a todas luces, con una capacidad demasiado grande para lo que iba a utilizar), parece ser una opción muy popular, pero no podía sacrificar 4 pines I/O sólo para almacenar unos pocos bytes. Entonces, me puse a indagar, el modo de guardar dichos datos en un lugar accesible utilizando el mínimo de pines de la tarjeta de Arduino y partí de la información del Atmega168.

Según la documentación del Atmega168, el Arduino equipado con éste microcontrolador, tiene una memoria interna EEPROM (No Volátil) de tan sólo 512 bytes (ver referencia), que puede ser insuficiente en algunos casos. Finalmente, en el proyecto utilicé unos pocos bytes de la propia memoria NV del Atmega168 con el que hice el proyecto. Sin embargo en mi cabeza, rondaba la idea inicial del uso de una EEPROM adicional y así empezó este tutorial, voy a usar una EEPROM serie 24LC64 ya que se trata de un elemento bastante utilizado en TV y otros elementos del mercado. Sigue leyendo

Práctico reloj DS1307

PRACTICO RELOJ.

En el tutorial ds1307reloj ya puse de manifiesto las características y algunas capacidades de este pequeño y práctico dispositivo, en el que documenté el código que permitía poner en hora el reloj que soporta el dispositivo DS1307.

Ahora, trataré de llevar a cabo un proyecto en el que podamos dar cierta utilidad a las posibilidades que ofrece esta pequeña maravilla (es cierto que el mismo fabricante, dispone de productos más especializados con los que, se puede disponer de más opciones de lectura de los registros que pone a nuestro servicio, alarmas, cronómetros y más), sin embargo como el único que tengo a mano es el DS1307A (*), es con el que voy a realzar esta práctica.

Partiendo del montaje que se desarrolló en el mencionado ds1307reloj, voy a introducir unas variables y rutinas en el código descrito allí para mejorar las prestaciones que nos proporciona y podemos aprovechar a nuestra voluntad. Sigue leyendo