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

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

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

Внешняя 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 КБ) 35 скачиваний
24C32_write_read_v3.rar
Перезалито 15.02.2018
(592.82 КБ) 199 скачиваний
24C32_write_read.rar
Перезалито 15.02.2018
(24.11 КБ) 163 скачивания
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

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

#61

Сообщение Sancho » 06.03.2019{, 16:10}

fsergei70 писал(а):
06.03.2019{, 15:53}
давай на часовых у меня просто макетка есть с часами впаянными я на ней все тестю,
Ок.
Оевреивайте. ( толерантность, однако. :) )
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

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

#62

Сообщение Sancho » 07.03.2019{, 17:51}

valand, Очепятка вышла при копипасте :)
Вложения
тест внешней еепром на часах вар3 2004лсд_v03.flp
(594.26 КБ) 4 скачивания
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

valand
Рядовой
Сообщения: 39
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 8
Имя: Андрей

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

#63

Сообщение valand » 08.03.2019{, 01:16}

Что то все равно не то. Я правильно понимаю что стирать должно полностью всю память в не зависимости от того, что в этот момент подано на вход нумблок?
Я беру вход hour, там константа "3" и пишу эту тройку в блоки с номером от 0 до 130, дальше устал кнопки нажимать))
Потом кнопкой подаю единицу на блок стирания (подавал кратковременно, и держать сек 10 пробовал тоже)
В итоге стирает только номера 0-3, 24-27, 48-51, 72-75, 96-99, 120-123, т.е. по четыре подряд с пропуском по 20

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

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

#64

Сообщение Sancho » 08.03.2019{, 08:48}

valand, Ещё раз сори - у меня микруха другая...
Обновил, проверил на памяти от часов :)
Вложения
тест внешней еепром на часах вар3 2004лсд_v04.flp
(611.97 КБ) 4 скачивания
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
fsergei70
Лейтенант
Сообщения: 380
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 27

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

#65

Сообщение fsergei70 » 08.03.2019{, 09:40}

Sancho, Сань привет. Со String ничего не получилось?

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

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

#66

Сообщение Sancho » 08.03.2019{, 10:50}

fsergei70, Серёга, затести так.
На вход при записи:
000 ТекстТекстТекстТекст... первые четыре символа не пишутся в память, а служат для выборки страницы, потом ещё 32 символа текста. Запись по write.
Буфер i2c увеличить до 35 минимум!!!
Вложения
UART-EEPROM_06.flp
(352.23 КБ) 4 скачивания
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

valand
Рядовой
Сообщения: 39
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 8
Имя: Андрей

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

#67

Сообщение valand » 08.03.2019{, 12:21}

Sancho писал(а):
08.03.2019{, 08:48}
Обновил, проверил
Спасибо. Вроде все работает, проверил пока только до 200. буду тестить более детально.

Аватара пользователя
fsergei70
Лейтенант
Сообщения: 380
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 27

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

#68

Сообщение fsergei70 » 09.03.2019{, 05:50}

Sancho писал(а):
08.03.2019{, 10:50}
затести так.
Спасибо Сань. В понедельник до железа доберусь попробую

Mining
Рядовой
Сообщения: 52
Зарегистрирован: 31.10.2016{, 15:01}
Репутация: 1
Имя: Алексей

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

#69

Сообщение Mining » 09.03.2019{, 14:11}

Sancho, Вы тут часто упоминали о добавлении в стандартные блоки MODULO.
И вот здесь я увидел Ваш пример где применен уже блок пользователя MODULO.
Это будет работать что скажите?

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

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

#70

Сообщение Sancho » 09.03.2019{, 16:09}

Есть ошибка :)
Часы получают делением на 1024, не остаток. Остаток - остальное :)

Отправлено спустя 30 секунд:
Блок пользователя - лишние переменные.

Отправлено спустя 4 минуты 47 секунд:
Вот.
Test_led_eeprom_v06.flp
(1.82 МБ) 3 скачивания
Отправлено спустя 1 минуту 20 секунд:
Описание
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

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

#71

Сообщение AVGN » 09.03.2019{, 20:56}

Sancho писал(а):
09.03.2019{, 16:16}
Часы получают делением на 1024, не остаток. Остаток - остальное :)
Sancho, число.месяц.Год и время как записать в память ?
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн

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

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

#72

Сообщение Sancho » 09.03.2019{, 21:47}

берём и определяемся, чего надо для ентого:
минуты 6 бит, до 64
часы - 5 бит, до 32
день - 5 бит, до 32
месяц - 4 бита, до 16
год - 3-4 бита максимум :)
итого 24 бита, 3 байта
далее.
По нормальному, из-за формата страниц, у AT24Cxx, имеем ячейки по 4, 8, 16..., поэтому вопрос в размерности доп данных.
Всё, далее делаем дело :)

Отправлено спустя 53 секунды:
Уже делал блок, недавно "ремонтировал" :)
Тут где-то, сверху
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Ivan_Kornege
Сержант
Сообщения: 129
Зарегистрирован: 29.04.2017{, 08:24}
Репутация: 5
Имя: Ivan

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

#73

Сообщение Ivan_Kornege » 11.03.2019{, 13:54}

Sancho писал(а):
09.03.2019{, 21:48}
поэтому вопрос в размерности доп данных.
а вот если происходили события в момент, когда часы DS3231 выдали время:
1-е событие: 2019г 11апреля 10ч22м33сек
2-е событие: 2019г 11апреля 22ч59м44сек
3-е событие: 2019г 14апреля 11ч22м22сек
4-е событие: 2019г 14апреля 21ч55м44сек
5-е событие: 2019г 09мая 10ч22м33сек
6-е событие: 2019г 09мая 22ч59м45сек

Как в память на плате DS3231 записать?
Если так, например 1-е событие 20191104102233 то можно затолкнуть в 48бит (6байт)
а
Типу <Unsigned long Integer> соответствуют целые числа от: 0 до: 4294967295 . т.е 4 байта.

Аватара пользователя
fsergei70
Лейтенант
Сообщения: 380
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 27

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

#74

Сообщение fsergei70 » 12.03.2019{, 12:24}

Sancho писал(а):
08.03.2019{, 10:50}
Серёга, затести так.
Сань немного блок не подходит. Нужно чтоб у блока записи был вход разрешения записи вход адрес и вход строка а тут у блока вход Byte. Ну и у блока чтения были вход разрешения чтения вход адрес и выход строка. Кнопки все эти и другие входы выходы мне не нужны.

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

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

#75

Сообщение Sancho » 12.03.2019{, 12:29}

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

Аватара пользователя
fsergei70
Лейтенант
Сообщения: 380
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 27

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

#76

Сообщение fsergei70 » 12.03.2019{, 13:28}

Sancho, Пока с UART. Но мне нужно чтоб к данным принятым с UART добавлялось еще дата когда эти данные были переданы. Так же если будет вход STRING можно будет текст длиной больше 1 страница записывать в следующую ячейку. А как твой блок использовать чтоб записывал больше одной страницы мне не понятно, нужно ведь каждый раз адрес передавать К тому же в том варианте что ты скинул куча входов которые мне не нужны да и текст на выходе делится на 3 части адрес и два фрагмента по 16 для дисплея.

Аватара пользователя
fsergei70
Лейтенант
Сообщения: 380
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 27

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

#77

Сообщение fsergei70 » 13.03.2019{, 15:10}

Sancho,Сань вот тут нашел код в сообщении №92 попытался запихнуть в блоки эти функции как дальше допилить не знаю https://esp8266.ru/forum/threads/zapis- ... prom.1493/
Вложения
eeprom.flp
(25.12 КБ) 0 скачиваний

Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость