Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Подключение I2C EEPROM к Arduino

Подключить внешнюю EEPROM память к Arduino довольно просто, и проще всего сделать это через шину I2C. Есть много EEPROM, но 24LS256 или 24LC256 хороши простотой в использовании и относительной дешевизной (85 евро центов у моего поставщика). Емкость 24LC256 - 256 килобит данных (то есть 32 килобайта). 24LS256 также может работать на 3.3В, что удобно при использовании Lilypad или Pro Mini 3.3V. В 24LS256 3 вывода используется для выбора его адреса, так что вы можете использовать до восьми микросхем на одной шине.

Адрес 24LS256: 1010A2A1A0. Если вы работаете только с 1 EEPROM, проще всего подключить A2-A0 к земле. Это дает адрес 1010000, 0 × 50 Hex. При чтении и записи в EEPROM надо понимать, что его емкость 32 Кб (фактически 32767) и одного байта не достаточно для адресации всей памяти.

Так, когда кто-то хочет послать запросы чтения и/или записи, необходимо отправить два байта - один MSB или верхнюю часть адреса (8 бит слева направо), а следующий LSB или нижнюю часть адреса (последние 8 бит слева направо).

Если, например, кто-то хочет использовать адрес 21000, это делается так: в двоичной системе 21000 это 0101001000001000. Разбейте его на части 01010010 и 00001000, а затем преобразуйте двоичные значения обратно в десятичное для отправки Wire.send ().

Это звучит сложно, но на самом деле все очень просто. Есть два оператора, чтобы сделать это. Первый >>, также известный как "сдвиг вправо". Эта команда берет высшую (левую) часть байта и убирает нижнюю часть, оставляя только первые 8 бит. Чтобы получить нижний (правый) конец адреса, можно использовать оператор &, также известный как ”побитовое И”. Этот оператор при использовании с 0xFF даст нижний бит.

Запись данных на 24LS256

Запись данных довольно проста. Для начала инициализируем шину I2C:
Wire.beginTransmission(0x50); // пины A0~A2 сажаем на GND

Затем отправляем данные. Первым делом отправляем два байта адреса (25000), куда мы хотим записать данные.
Wire.send(21000 >> 8); // посылаем старший байт MSB адреса
Wire.send(21000 & 0xFF); // посылаем младший байт LSB адреса

Затем отправляем байт для хранения по адресу 21000, а затем закрываем соединение:
Wire.send(15); // посылаем число 15
Wire.endTransmission();

Чтение данных из 24LS256

Чтение более менее похоже. Для начала, инициализируйте соединение и укажите адрес данных для чтения:
Wire.beginTransmission(0x50); // выбор адреса
Wire.send(21000 >> 8); // посылаем старший байт MSB адреса
Wire.send(21000 & 0xFF); // посылаем младший байт LSB адреса
Wire.endTransmission();

Затем установите номер байтов данных, для чтения начиная с текущего адреса:
Wire.beginTransmission(0x50); // выбор адреса
Wire.requestFrom(0x50,1); // считываем один байт данных
Wire.receive(inbyte);

Здесь “inbyte” является переменной, выбранной для хранения данных, извлеченных из EEPROM.

Шина I2C подразумевает, что разные устройства могут быть подключены к одной линии. Верхний рисунок показывает это с двумя EEPROM. Ключевую роль играет то, что каждый из них имеет свой собственный адрес. На рисунке я решил использовать адреса 0 × 50 и 0 × 51. Первый получается при подключении A0-A2 одной микросхемы на землю, но при подключении A0 второй микросхемы к Vcc (Высокий) для второго чипа. В результате адрес 1010001 = 0x51 


C этой схемой также часто просматривают:

Подключение телефонной линии к звуковой карте
Сплитер (подключение 4-х мониторов)
ПОДКЛЮЧЕНИЕ ТРЕХФАЗНЫХ ПОТРЕБИТЕЛЕЙ К ОДНОФАЗНОЙ СЕТИ
Подключение монитора "Электроника 32 ВТЦ-202" к компьютеру семейства IBM.
Светодиодный куб 5х5х5 на Arduino
Волномер 88-108 МГц
Схема подключения стартера автомобиля
Простой стабилизированный БП на супердоступных деталях
Лабораторный блок питания с управлением на микроконтроллере

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU


Последние поступления

Графический семиполосный эквалайзер-радуга на Arduino Nano и MSGEQ7

Часы реального времени для Arduino

Старинные часы-метеостанция

Блок питания для Arduino из ATX

ATX блок питания управляемый Arduino

Arduino своими руками с USB портом

Подключение монетоприемника к Arduino

Подключение PS/2 клавиатуры к Arduino

Пробуждение ПК по сети на Arduino

Запись/чтение на SD-карту с Arduino


Live-ставки на регби союз || видеоконференцсвязь

© 2003—2024 «KAZUS.RU - Электронный портал»