ESP8266 - enregistreur de données EEPROM I2C externe - AT24C32/64 pilote (3 / 4 étapes)

Étape 3: Mise en œuvre pilote

Mise en œuvre pilote

Pour pouvoir accéder et fonctionner avec tout type d’unités de stockage, il faut au moins 3 fonctions de base mis en œuvre : traiter, lire et écrire. De plus, l’initialisation de communication de bus I2C bonne, bien sûr.

1. Init I2C interface/bus:

 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 

S’adressant:

32K EEPROM nécessite un mot d’adresse de périphérique 8 bits suite à une condition de démarrage pour activer la puce pour une lecture ou d’opération d’écriture. Il utilise les bits d’adresse trois appareil A2, A1, A0 pour permettre jusqu'à huit appareils sur le même bus. Ces bits doivent comparer à leurs broches d’entrée câblé. Les broches A0, A1 et A2 utilisent un circuit exclusif, qui eux préjugés à une condition peu logique si les broches sont autorisés à flotter.

Le huitième bit de l’adresse du périphérique est le bit de sélection opération lecture/écriture. Une opération de lecture est lancée si ce bit est élevé, et une opération d’écriture est enclenchée si ce bit est faible.

2. fonction de lecture

Une lecture aléatoire requiert un octet « factice » écrire la séquence pour charger l’adresse mot de données. Une fois l’adresse du périphérique adresse word et données mot sont cadencées et reconnu par l’EEPROM, le microcontrôleur doit produire une autre condition de départ.

Le microcontrôleur lance maintenant une adresse actuelle lire en envoyant une adresse de périphérique avec le

lecture/écriture sélectionnez peu élevé. L’EEPROM reconnaît l’adresse du périphérique et des horloges en série

le mot de données. Le microcontrôleur ne répond pas avec un zéro mais génère une suite

condition d’arrêt

 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. écrire la fonction

Une opération d’écriture nécessite deux 8 bits de données mot adresses suivant le mot d’adresse de périphérique et l’accusé de réception. Dès réception de cette adresse, l’EEPROM répondra à nouveau avec un zéro et puis horloge dans le premier mot de 8 bits de données. Après avoir reçu le mot de 8 bits de données, l’EEPROM va afficher un zéro, et l’adressage périphérique, comme un microcontrôleur, doit mettre fin à la séquence d’écriture avec une condition d’arrêt.

En ce moment l’EEPROM pénètre dans un cycle d’écriture en interne cadencées, tWR, à la mémoire non volatile. Toutes les entrées sont désactivées au cours de ce cycle d’écriture et de l’EEPROM ne répondra pas jusqu'à la fin de l’écriture

 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 

Articles Liés

ESP8266 - enregistreur de données de température WIFI - MCP9808

ESP8266 - enregistreur de données de température WIFI - MCP9808

Dans ce projet, nous allons construire une simple, de haute précision, enregistreur de données de température de WIFI basée sur le module de ESP8266 et de la puce MCP9808, un ± 0,5 ° C précision maximale capteur numérique de température.Caractéristiq
Faible coût enregistreur de données de température (DS18B20) WIFI basé sur ESP8266 avec une connectivité à thingspeak.com

Faible coût enregistreur de données de température (DS18B20) WIFI basé sur ESP8266 avec une connectivité à thingspeak.com

Enregistreur de données de température basé sur le capteur de température 1-Wire DS18B20 et de ESP8266.À seulement $5 ESP-01 Conseil et DS18B20 capteur.Le logiciel est écrit en langage LUA et s'exécute directement dans ESP8266.Aucun autre MCU nécessa
Enregistreur de données de l’énergie solaire

Enregistreur de données de l’énergie solaire

Vous avez toujours voulu savoir combien d'énergie solaire vous pourriez rapporter en mettant des cellules PV à un emplacement particulier sur ou autour de votre maison ?Ce Instructable vous montre comment construire un enregistreur de données basé su
Construire un enregistreur de données de « boîte noire » pour ajouter sur les jauges d’affichage écran à vos vidéos

Construire un enregistreur de données de « boîte noire » pour ajouter sur les jauges d’affichage écran à vos vidéos

Ce projet inclut des instructions sur la façon de construire le dispositif ainsi qu'un lien vers le code de projet sur github qui devront être téléchargées pour s'exécuter.Un Arduino fonction enregistreur de données aux fins de la synchronisation des
Construire un enregistreur de données pour votre réseau de capteurs sans fil

Construire un enregistreur de données pour votre réseau de capteurs sans fil

nous avions besoin d'un enregistreur de données qui a fourni un timestamp, et qui seraient des 2 dernières semaines dans les bois. À l'aide d'un ordinateur portable exigerait un générateur ou un gigantesque batterie. Ce Instructable montre comment fa
Comment construire un enregistreur de données GPS léger pour les Applications de fusée modèle

Comment construire un enregistreur de données GPS léger pour les Applications de fusée modèle

février 2009Vue d'ensembleJ'ai toujours rêvé de construire un ordinateur de vol qui sera non seulement contrôler la séquence de vol, mais aussi enregistrer des données à bord d'une fusée modèle. Mais j'ai besoin de marcher avant que je peux courir, a
Projet d’enregistreur de données

Projet d’enregistreur de données

il s'agit d'un enregistreur de données, j'ai fait pour ma classe. Je ne pouvais pas trouver toutes les instructions que je pourrais utiliser pour faire de l'Arduino enregistrer l'éclat de lumière et la température. Affichage de la température et la v
Enregistreur de données de carte SD avec LinkitOne

Enregistreur de données de carte SD avec LinkitOne

Dans ce tutoriel, nous allons voir comment utiliser la fonctionnalité de carte SD intégrée dans le MediaTek LinkitOne super génial !Le LinkitOne offre 10MB à bord de stockage flash et jusqu'à 32 Go de stockage extensible via le slot pour carte microS
Enregistreur de données GPS pour les coureurs de route

Enregistreur de données GPS pour les coureurs de route

Je suis un coureur de route (à pied), moi-même, et j'aime les chiffres et les mathématiques aussi bien (comme un étudiant en génie). L'idée du suivi /marquage mon chemin en cours d'exécution pour post-analyse m'a toujours fasciné, mais j'ai toujours
Enregistreur de données GPS Arduino

Enregistreur de données GPS Arduino

vous voulez vous connecter à des données GPS sur une carte SD en utilisant votre Arduino ? Possédez-vous déjà un bouclier microSD Sparkfun et module GPS ? Avez-vous essayé le Adafruit Sheild (bien que c'est génial et pas cher), mais il a volé toutes
Enregistreur de données discrète

Enregistreur de données discrète

il n'y a pas de meilleure façon de cacher un dispositif secrète qu'afin de le coller à l'intérieur d'un dispositif bien plus grand.Cela dit... Essentiellement, c'est un guide pour faire un système d'enregistrement de données pour une utilisation avec
Enregistreur de données de température

Enregistreur de données de température

un enregistreur de données est un dispositif qui peut être utilisé pour stocker des données. Cela inclut de nombreux matériels d'acquisition de données tels que des cartes enfichables ou des systèmes de communication série qui utilisent un ordinateur
Expedier un enregistreur de données pour un électricité Kamstrup / compteur avec Raspberry Pi de gaz !

Expedier un enregistreur de données pour un électricité Kamstrup / compteur avec Raspberry Pi de gaz !

Sur Pi framboiseOui enfin j'ai reçu mon nouveau Pi de framboise. Il s'agit d'une Conseil de linux ARM doté d'une carte ethernet, 2 ports USB et même un port HDMI full-HD pour un simple $30 à puissance ultra-faible, petite!. Consultez www.raspberrypi.
Enregistreur de données de capteur de luminosité et de température

Enregistreur de données de capteur de luminosité et de température

Dans ce tutoriel, je fais une température et un enregistreur de données de capteur de lumière avec un Arduino pour que je peux tester les différents endroits des plantes ou des endroits pour dormir à l'extérieur durant l'été qui n'obtiennent pas de b