ESP8266 - registrador de datos EEPROM I2C externa - AT24C32/64 controlador (3 / 4 paso)

Paso 3: Implementación del controlador

Implementación del controlador

Para poder acceder y operar correctamente con cualquier tipo de dispositivos de memoria necesita al menos 3 funciones básicas implementadas: atender, leer y escribir. Además de la correcta inicialización de comunicación bus I2C, por supuesto.

1. Init I2C bus o interfaz:

 address = 0x50, -- A2, A1, A0 = 0 id = 0 init = function (self, sda, scl) self.id = 0 i2c.setup(self.id, sda, scl, i2c.SLOW) end 

Abordar:

La EEPROM de 32K necesita una palabra de dirección de 8 bits dispositivo después de una condición de inicio para activar el chip para leer o escribir la operación. Utiliza los bits de la dirección del tres dispositivo A2, A1, A0, para permitir que hasta ocho dispositivos en el mismo bus. Estas brocas deben comparar a sus correspondientes pines de entrada de cableado. Los pines A2, A1 y A0 utilizan un circuito interno de propiedad que les predispone a una condición baja lógica si los pasadores se permitieron flotar.

El octavo bit de la dirección del dispositivo es la lectura y escritura operación select. Una operación de lectura se inicia si este bit es alto y se inicia una operación de escritura si este bit es baja.

2. Lea la función

Una lectura al azar requiere un byte "dummy" escribir secuencia de cargar en la dirección de palabra de datos. Una vez que el dispositivo datos y palabra palabra dirección entrado y reconocido por la EEPROM, el microcontrolador debe generar otra condición de inicio.

El microcontrolador inicia ahora una dirección actual leer mediante el envío de una dirección de dispositivo con la

alto seleccione bit de lectura/escritura. La EEPROM reconoce la dirección del dispositivo y en serie relojes

la palabra de datos. El microcontrolador no responde con un cero sino generar un siguiente

condición de parada

 read_EEPROM = function (self, devadr, memadr, length) adrh=bit.rshift(memadr, 8) adrl=bit.band(memadr,0xff) i2c.start(self.id) i2c.address(self.id, self.address, i2c.TRANSMITTER) i2c.write(self.id, adrh) i2c.write(self.id, adrl) i2c.stop(self.id) i2c.start(self.id) i2c.address(self.id, self.address, i2c.RECEIVER) c=i2c.read(self.id, length) i2c.stop(self.id) print(c) return c end 

3. escribir la función

Una operación de escritura requiere dos datos de 8 bits direcciones siguiendo la palabra de dirección de dispositivo y el reconocimiento de la palabra. Tras la recepción de esta dirección, la EEPROM nuevo responderá con un cero y luego el reloj en la primera palabra de datos de 8 bits. Después de recibir la palabra de datos de 8 bits, la EEPROM es la salida de un cero y el dispositivo de direccionamiento, tales como un microcontrolador, debe terminar la secuencia de escritura con una condición de parada.

En este momento la EEPROM entra en un ciclo de escritura programados internamente, tWR, a la memoria no volátil. Todas las entradas se desactivan durante este ciclo de la escritura y la EEPROM no responderá hasta que la escritura esté completa

 write_EEPROM = function (self, devadr, memadr, edata) i = 1 length = string.len(edata) adrh=bit.rshift(memadr, 8) adrl=bit.band(memadr,0xff) i2c.start(self.id) i2c.address(self.id, self.address, i2c.TRANSMITTER) i2c.write(self.id, adrh) i2c.write(self.id, adrl) --print(edata) --debug only --print(string.byte(edata,1)) --debug only while i<=length do tmr.wdclr() i2c.write(self.id,string.byte(edata,i)) i = i+1 end i2c.stop(self.id) end 

Artículos Relacionados

ESP8266 - registrador de datos de temperatura WIFI - MCP9808

ESP8266 - registrador de datos de temperatura WIFI - MCP9808

En este proyecto construiremos una simple, alta precisión, temperatura registrador WIFI basado en el módulo de ESP8266 y el MCP9808 chip, un ±0. 5 ° C máxima precisión Sensor de temperatura Digital.Características• Exactitud:-±0.25 (típico) de-40 ° C
Registrador de datos de energía solar

Registrador de datos de energía solar

¿Siempre quiso saber cuánta energía solar podría generar al poner células fotovoltaicas en un lugar específico en o alrededor de tu casa?Este Instructable muestra cómo construir un registrador de datos basado en un Arduino (o Genuino) Uno con data-lo
Cómo construir un registrador de datos GPS de peso ligero para aplicaciones de cohete modelo

Cómo construir un registrador de datos GPS de peso ligero para aplicaciones de cohete modelo

de febrero de 2009ResumenHe estado soñando de la construcción de un equipo de vuelo que no sólo controlan la secuencia de vuelo, sino también registrar datos a bordo de un cohete modelo. Pero necesito a caminar antes de puedo correr, así que empecé c
Registrador de datos de tarjeta SD con LinkitOne

Registrador de datos de tarjeta SD con LinkitOne

En este tutorial veremos cómo utilizar la funcionalidad de tarjeta SD incorporada en el MediaTek LinkitOne super impresionante!El LinkitOne ofrece 10MB de almacenamiento flash y hasta 32 GB almacenamiento ampliables mediante la ranura para tarjetas m
Registrador de datos GPS bricolaje para le próximo disco/sendero

Registrador de datos GPS bricolaje para le próximo disco/sendero

Se trata de un registrador de datos GPS que puede utilizar para múltiples fines, digamos si usteddesea iniciar su largo viaje que tomó el fin de semana para comprobar hacia fuera los colores del otoño.o tienes un sendero favorito que visites durante
Registrador de datos GPS para corredores del camino de

Registrador de datos GPS para corredores del camino de

Yo soy un corredor del camino (a pie), y me gustan los números y matemáticas así (como un estudiante de ingeniería). La idea de seguimiento /marcando mi camino corriente para el post-análisis siempre me ha fascinado, pero siempre enfrento un problema
Registrador de datos discreto

Registrador de datos discreto

hay mejor manera de ocultar un dispositivo secreto que to lo pegan dentro de un dispositivo visible más grande.Dijo... Esencialmente, esta es una guía para hacer un sistema de registro de datos para uso con el micrófono de la alcoholemia.Para lograr
Registrador de datos geo: Arduino + GPS + SD + acelerómetro para registrar, sello de tiempo y datos del sensor geo-tag

Registrador de datos geo: Arduino + GPS + SD + acelerómetro para registrar, sello de tiempo y datos del sensor geo-tag

versiones17 de octubre de 2013: he publicado una guía sobre el uso de tu teléfono Android para llevar a cabo una tarea similar al aprovechar tu Android dispositivo de construido en GPS y sensores.06 de febrero de 2013: Aparece en GeoAwesomeness http:
Registradores de datos para su uso por los participantes de ciencia ciudadana

Registradores de datos para su uso por los participantes de ciencia ciudadana

hay registradores de datos para los alimentos industria naval que registrar temperatura y humedad y son relativamente baratas y muy fácil de usar. Una descripción de los productos es aquí: http://bit.ly/UdVImh.  Que son del tamaño de una pequeña pila
Registrador de datos GPS

Registrador de datos GPS

aunque esto no es la primera basados en Arduino GPS registrador de datos hacia fuera allí, puede ser el más versátil. Este dispositivo tiene un montón de características y usos más posibles.Comenzó con la gran inspiración de Mikal Hart "Reverse Geoca
Crear usted mismo registrador de datos de temperatura USB con ATMEGA128

Crear usted mismo registrador de datos de temperatura USB con ATMEGA128

Hola chicos,Quiero presentarles mi proyecto de fin de semana que utiliza ATMEGA128En este proyecto que vamos a utilizar RTC, LCD, USART, FT232RL y USB cable macho a machoPaso 1: Preparar todos los componentes que necesitamos 1. ATMEGA128A2. PCB placa
Registrador de datos de Sensor de luz y temperatura

Registrador de datos de Sensor de luz y temperatura

En este tutorial hago una temperatura y registrador de datos de sensor de luz con un Arduino para que puedo probar diferentes ubicaciones para plantas o lugares para dormir afuera en el verano que no se llega a mucho solPaso 1: Lo que se necesita1 pl
Registrador de datos de carreras $8

Registrador de datos de carreras $8

Hoy en día muchas empresas producen sistemas de registro de datos para aplicaciones de carreras. Sin embargo, estos sistemas suelen comenzar alrededor $200-$300 y subirán desde allí. Hoy te voy a mostrar cómo construir un registrador de datos de acel
Registrador de datos de temperatura (DS18B20) de bajo costo WIFI basado en ESP8266 con conectividad a thingspeak.com

Registrador de datos de temperatura (DS18B20) de bajo costo WIFI basado en ESP8266 con conectividad a thingspeak.com

Registrador de temperatura basado en sensor de temperatura 1-Wire ESP8266 y DS18B20.Sólo $5 ESP-01 Junta y sensor DS18B20.El software está escrito en lenguaje LUA y se ejecuta directamente en ESP8266.Ningún otro MCU necesitada!Paso 1: ListaESP-01 Jun