Внешняя EEPROM I2C 24C32, 64....

Внешняя I2C EEPROM 24C32, на плате с часами DS3231, а также другие с интерфейсом I2C

Пользовательские блоки дающие дополнительные возможности при работе с EEPROM и SD картами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Внешняя EEPROM I2C 24C32, 64....

#1

Сообщение Sancho » 09.01.2018{, 11:16}

Тестовые образцы. Архив rar.
Запись и чтение по два байта и три интегера = восемь байт.
Итого 512 блоков (0-511) для 24С32.
Тестируем, отписываемся.
Возможно сделать блоки "общим весом" 2,4,8,16 и 32, 64 байта.
Единичные байты пока не рассматриваются - медленно.
Тема в разделе форума "Железо".

UPD. Диапазон адресов 24C32 - 0х50 - - 0х57.
Отсутствие перемычек на указанной плате- 1,
получаем на новой 0х57(стоит по умолчанию)

UPD. 14.08 Добавлен в архив блок для записи в память текста, номеров - тел. книга описание .
UPD. 19.08 (14.02мск) Предыдущий блок обновлён - добавилась функция поиска по номеру. На 24С32 - 127 записей по 32 символа.
UPD. 04.09 Добавил блоки с записью Float. Конструируйте любые варианты, необходимые в каждом конкретном случае. Незабывайте о размерности в 2,4,8,16 и 32 байта.
После переезда наведу порядок. Чуть погодя :)
UPD.31.01.2018. Добавлены два тестовых блока для 24С16. Запись и чтение по два байта и три интегера = восемь байт. 256 блоков.(0-255).
Перемычки адреса в микросхеме(внутри) 24С16 не подключены. На шине только одна!
Отпишитесь о результатах и пожеланиях.
UPD 05.02.2018. Добавлены несколько примеров. Добавил промежуточные варианты - для самостоятельной модификации.
UPD 13.02.2018 Добавлены блоки чтения / записи 4 байт

UPD 30.01.2019 Отдельно всё из папки. Для творчества, для идей. Почти всё :)
Вложения
I2C Memory.ubl
30.01.2019
(612.79 КБ) 252 скачивания
24C32_write_read_v3.rar
Перезалито 15.02.2018
(592.82 КБ) 414 скачиваний
24C32_write_read.rar
Перезалито 15.02.2018
(24.11 КБ) 334 скачивания
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Ivan_Kornege
Лейтенант
Сообщения: 304
Зарегистрирован: 29.04.2017{, 08:24}
Репутация: 24
Откуда: гАндурас
Имя: Ivan

Внешняя EEPROM I2C 24C32, 64....

#2

Сообщение Ivan_Kornege » 29.01.2018{, 17:48}

Выдрал из телика 24LC16B.
Подключил по схеме
СпойлерПоказать
24LC16B Sxema.JPG
24LC16B Sxema.JPG (17.51 КБ) 4372 просмотра
Залил проект
EEPROM I2C Flprog.flp
(134.45 КБ) 250 скачиваний
И почему -то в EEPROM не пишет ардуина.
Люди подскажите куда копать :moil:

Отправлено спустя 4 минуты 14 секунд:
Во внутреннюю EEPROM пишет.
Шину I2C просканировал через flprog.
Адреса 50, 51, 52, 53, 54, 55, 56, 57
Последний раз редактировалось Ivan_Kornege 29.01.2018{, 19:03}, всего редактировалось 2 раза.

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Внешняя EEPROM I2C 24C32, 64....

#3

Сообщение Sancho » 29.01.2018{, 18:53}

Ivan_Kornege,
Завтра сделаю блок для 16 кбит.
Указанная микросхема может быть только одна на шине, из микросхем памяти. У неё другая адресация.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Ivan_Kornege
Лейтенант
Сообщения: 304
Зарегистрирован: 29.04.2017{, 08:24}
Репутация: 24
Откуда: гАндурас
Имя: Ivan

Внешняя EEPROM I2C 24C32, 64....

#4

Сообщение Ivan_Kornege » 29.01.2018{, 19:06}

Sancho, две одинаковые 24LC16B поставить нельзя?

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Внешняя EEPROM I2C 24C32, 64....

#5

Сообщение Sancho » 31.01.2018{, 15:37}

Нет.
Ivan_Kornege, пробуйте 24С16.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Ivan_Kornege
Лейтенант
Сообщения: 304
Зарегистрирован: 29.04.2017{, 08:24}
Репутация: 24
Откуда: гАндурас
Имя: Ivan

Внешняя EEPROM I2C 24C32, 64....

#6

Сообщение Ivan_Kornege » 01.02.2018{, 17:26}

Sancho, ого как моного входов и выходов в блоках. Не понял как их воткнуть в мой тестовый проект. К какому входу, выходу подключаться?

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Внешняя EEPROM I2C 24C32, 64....

#7

Сообщение Sancho » 01.02.2018{, 17:46}

Ivan_Kornege,
Посмотрел Ваш проект - особо не понял назначение, но мне кажется, в таком формате должно хватать встроенной поддержки. Поштучной.
Кстати, установлен двух-секундный интервал записи: один день более 40 тысяч раз. Или это тестовый вариант?
Блоки, выложенные здесь рассчитаны на запись сразу блока информации разного рода и типа, переделать легко, и последующее чтение.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Ivan_Kornege
Лейтенант
Сообщения: 304
Зарегистрирован: 29.04.2017{, 08:24}
Репутация: 24
Откуда: гАндурас
Имя: Ivan

Внешняя EEPROM I2C 24C32, 64....

#8

Сообщение Ivan_Kornege » 01.02.2018{, 18:01}

Проект тестовый. Просто проверить микросхему - запись и чтение что записано . Хочу потом сделать счетчик наработки мотоблока.

Отправлено спустя 23 минуты 46 секунд:
Sancho писал(а):
01.02.2018{, 17:46}
Блоки, выложенные здесь рассчитаны на запись сразу блока информации разного рода и типа, переделать легко, и последующее чтение.
Для радиста это темный лес :unsure:

Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03.02.2017{, 12:23}
Репутация: 56

Внешняя EEPROM I2C 24C32, 64....

#9

Сообщение AVGN » 04.02.2018{, 15:43}

Sancho, примеры flp для Ваших блоков были бы наглядней. Работу то Вы проделал не малую ... и раз выложили сюда то намерение помочь присутствующим.
Тут в основном не программисты.
Ivan_Kornege, а так пробовал
EEPROM I2C Flprog_Sancho_unit.flp
(345.58 КБ) 195 скачиваний
?
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Внешняя EEPROM I2C 24C32, 64....

#10

Сообщение Sancho » 05.02.2018{, 09:23}

AVGN писал(а):
04.02.2018{, 15:43}
Sancho, примеры flp для Ваших блоков были бы наглядней.
Добавил.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03.02.2017{, 12:23}
Репутация: 56

Внешняя EEPROM I2C 24C32, 64....

#11

Сообщение AVGN » 05.02.2018{, 16:57}

Sancho писал(а):
05.02.2018{, 09:23}
Добавил.
Для первых двух блоков не увидел примера
СпойлерПоказать
SANCHO.JPG
в описании блока назначения вход - выход блока не увидел...
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Внешняя EEPROM I2C 24C32, 64....

#12

Сообщение Sancho » 05.02.2018{, 17:10}

AVGN писал(а):
05.02.2018{, 16:57}
Для первых двух блоков не увидел примера
Примеры аналогичны 24С32. Test_led_eeprom....
в описании блока назначения вход - выход блока не увидел...
Не понял вопроса.
24С16 имеет памяти 2кбайта. Блочная запись/чтение сразу 8 байт. Получается блоков 256, адреса 0-255.
На вход Numblock надо подать нужный номер(адрес) блока, по фронту на Record данные запишутся(для блока записи),
При 1 на входе Reading - данные прочитаются (для блока чтения).

Отправлено спустя 2 минуты 31 секунду:
Размер блока можно изменить, для 24С16 макс 16.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03.02.2017{, 12:23}
Репутация: 56

Внешняя EEPROM I2C 24C32, 64....

#13

Сообщение AVGN » 05.02.2018{, 17:26}

Sancho писал(а):
05.02.2018{, 17:12}
Не понял вопроса.
да все просто Вы сделали блоки и привинтили входы-выходы. В описании их назначения нет
блок16.JPG
блок16.JPG (19.56 КБ) 4137 просмотров
блок16_описание.JPG
блок16_описание.JPG (20.22 КБ) 4137 просмотров
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн

Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03.02.2017{, 12:23}
Репутация: 56

Внешняя EEPROM I2C 24C32, 64....

#14

Сообщение AVGN » 06.02.2018{, 19:21}

Ivan_Kornege,
Никто, кроме нас. :moil:

Пример работы блоков чтения и запись энергонезависимая память 24LC16B

Тестовая программа для ARDUINO UNO с KEYPAD LCD 1602
EEPROM_24LC16B_I2C_Flprog_UNO_test.flp
(389.66 КБ) 162 скачивания
Генерит каждую секунду и записывает в 24LC16B.
Обнуление 24LC16B – Замкнуть pin A2 на общий провод ( в проекте обозначен " RESET A2").
На дисплей выводится:
-верхняя строка – количество секунд считанные из 24LC16B и плюсуется каждая секунда которую генерим.
-нижняя строка - количество секунд считанных из 24LC16B
Настройки блока чтения памяти.
Входы:
Reading – разрешение считывания если "true"
Numblock - номера блока от 0 до 255 , т.е. всего блоков 256. Можно организовать поблочное чтение.
Выходы: не известен замысел автора. Подключил int_out_1 –вроде считал что записал в память.
int_out_1 ???
int_out_2 ???
int_out_3 ???

Настройки блока записи памяти.
Входы:
Record – разрешение записи при поступлении "true" в этом цикле происходит запись. Встроен R триггер. Что-бы не протереть дырку в памяти.
Numblock - номера блока от 0 до 255 , т.е. всего блоков 256. Можно организовать поблочную запись.
byte_in_1 ???
byte_in_2 ???
int1 ???
int2 ???
int3 ???
Последний раз редактировалось AVGN 07.02.2018{, 17:36}, всего редактировалось 1 раз.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Внешняя EEPROM I2C 24C32, 64....

#15

Сообщение Sancho » 06.02.2018{, 21:53}

В архиве проект, который записывает каждые 5 секунд температуру, влажность и время записи. Блоком, за один раз.
Сразу с просмотром архива.
AVGN, Сарказм уместен к месту.
В самом первом посте есть ссылка.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03.02.2017{, 12:23}
Репутация: 56

Внешняя EEPROM I2C 24C32, 64....

#16

Сообщение AVGN » 07.02.2018{, 17:42}

Sancho, примеры видел. Сделал попроще и протестировал в железе. Иван просил - я сделал. Решил выложить здесь. Вдруг еще кому пригодится.
В чем сарказм? Ну, неизвестен мне Ваш замысел с входами-выходами, Вы молчите, я и поставил знаки вопроса.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн

Аватара пользователя
Ivan_Kornege
Лейтенант
Сообщения: 304
Зарегистрирован: 29.04.2017{, 08:24}
Репутация: 24
Откуда: гАндурас
Имя: Ivan

Внешняя EEPROM I2C 24C32, 64....

#17

Сообщение Ivan_Kornege » 09.02.2018{, 12:55}

AVGN писал(а):
06.02.2018{, 19:21}
Пример работы блоков чтения и запись энергонезависимая память 24LC16B

Тестовая программа для ARDUINO UNO с KEYPAD LCD 1602

EEPROM_24LC16B_I2C_Flprog_UNO_test.flp
Заработало :yahoo:
Sancho писал(а):
06.02.2018{, 21:53}

В архиве проект, который записывает каждые 5 секунд температуру, влажность и время записи. Блоком, за один раз.
Просто он с большим количеством датчиков и с часами. Не у всех бывает столько железячек чтоб протестить проект. Я уже думал у меня микруха выдранная из телика перестала работать.
Но теперь буду двигаться дальше.
ВсСпасибо!

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Внешняя EEPROM I2C 24C32, 64....

#18

Сообщение Sancho » 09.02.2018{, 14:22}

Зачем Вам мои блоки, если Вам достаточно встроенной в программу FLProg поддержки???
Для того, что-бы Вам стало понятно, раз Вы не удосуживаетесь немного почитать, что написанно в ветке обсуждения, по ссылке, находящейся в первом посте:
Блоки предназначены для одновременной записи и последующего считывания нескольких переменных. При этом также, в отличии от встроенной поддержки, адресом выступает номер блока, а не имя.
Данный функционал может быть полезен при архивировании данных(логгер), при установки сразу нескольких параметров( например рецепт 1(х,х,х...) рецепт 2(х.х.х..), при индикации заранее записаных текстов и т.д.
Также, как уже было написано, данные блоки легко могут быть переделаны под любой тип и количество переменных для одновременной записи/чтения.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Ivan_Kornege
Лейтенант
Сообщения: 304
Зарегистрирован: 29.04.2017{, 08:24}
Репутация: 24
Откуда: гАндурас
Имя: Ivan

Внешняя EEPROM I2C 24C32, 64....

#19

Сообщение Ivan_Kornege » 10.02.2018{, 10:57}

Sancho писал(а):
09.02.2018{, 14:22}
Зачем Вам мои блоки, если Вам достаточно встроенной в программу FLProg поддержки???
Штатные блоки FLProg не работают с моей микрушкой 24LC16B.

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Внешняя EEPROM I2C 24C32, 64....

#20

Сообщение Sancho » 10.02.2018{, 11:14}

Ivan_Kornege,
Странно, я даже не пробовал.
Надеюсь, в предыдущем посте я подробно изложил идею и возможности блоков?
Вам необходимо сохранять одну переменную один раз, или несколько? Т.е. сколько ячеек нужно и каких?
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Ответить

Вернуться в «EEPROM и SD карты»