Страница 3 из 5

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

Добавлено: 02 июл 2018, 14:54
Sancho
Golan писал(а): 02 июл 2018, 14:17Сань, а для 24С64 можно такой блок забабахать?
Этот работает от 32 и выше.

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

Добавлено: 02 июл 2018, 16:51
Golan
Понял, спасибо.

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

Добавлено: 05 мар 2019, 20:08
valand
Sancho писал(а): 09 янв 2018, 11:16о результатах и пожеланиях
Спасибо за блоки. Планирую сочинить нечто вроде логгера для домашней сигнализации, соответственно хочу сохранять дату время срабатывания и номер\имя датчика который сработал. (в принципе это надо пока только на этапе отладки, выявить датчики которые неудачно установлены и дают ложные срабатывания) Порылся в архиве, выбрать есть из чего, и мне в принципе достаточно. Но в процессе выявил некорректную работу одного набора блоков. их название на скрине ниже
[spoiler]
блок записи времени глюк.png
блок записи времени параметры.png
[/spoiler]
Суть в чем, входы\выходы sec, minute и rezerv работают корректно.
входы\выходы hour и day умножают на 2 поданное на вход число, т.е. подал-1 считал-2. подал-12 считал-24.
а вход\выход month не сохраняет\читает вообще ничего.
Ну и в процессе разных проб, было выявлено, что блок стирания стирает только 0,1,2 и иногда 3 (на разных блоках по разному) адреса ячеек Numblock.

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

Добавлено: 05 мар 2019, 20:28
Sancho
[ref]valand[/ref], Можно тестовый проект?

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

Добавлено: 05 мар 2019, 21:12
valand
он очень тестовый, я его уже сто раз переделывал с разными блоками, вот собрал примерно обратно. (экран нестандарт)
тест внешней еепром на часах вар3 2004лсд.flp

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

Добавлено: 06 мар 2019, 09:57
Sancho
[ref]valand[/ref], А так?
Сори :)

Отправлено спустя 25 минут 16 секунд:
Очистку делал под раскачанный буфер. Переделаю чуть позже...

Отправлено спустя 13 минут 33 секунды:
Резерв - максимум 63

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

Добавлено: 06 мар 2019, 13:05
valand
Вроде всё ок, пишет\читает. Отличий между v01 и v02 не уловил.
Если v2 это с доработанным стиранием, то изменений нет, все так же от 0 до 3 блока трет.

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

Добавлено: 06 мар 2019, 13:18
fsergei70
[ref=#ff8000]Sancho[/ref], Сань пытаюсь записать и считать String c UART что то не особо выходит. Вот проект взгляни одним глазком если не трудно

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

Добавлено: 06 мар 2019, 14:05
Sancho
[ref]fsergei70[/ref], Серёга, это чего такое в loop?

Код: Выделить всё

    byte lng = EEPROM.read(Addr);
    char* buf = new char[Legh];
    Addr++;
    for(byte i = 0; i < lng; i++) buf[i] = char(EEPROM.read(i+Addr));
    buf[lng] = '\x0';
    Out = ((char*)buf);
   

 return buf;
Отправлено спустя 2 минуты 4 секунды:
Ты со стрингами хочешь работать из памяти ардуинки?
Какая задача? Записи не вижу вообще...

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

Добавлено: 06 мар 2019, 14:07
fsergei70
Sancho писал(а): 06 мар 2019, 14:03 Серёга, это чего такое в loop
Да это я пример в нете откапал и пробовал в блок впихнуть

Отправлено спустя 1 минуту 1 секунду:
Код не правильный или в функцию впихнуть надо?

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

Добавлено: 06 мар 2019, 14:07
Sancho
:)
Вопрос о какой памяти идёт речь остаётся открыт

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

Добавлено: 06 мар 2019, 14:12
fsergei70
Ну вообще пример был для флеш памяти ESP а я хотел в EEProm переделать

Отправлено спустя 50 секунд:
Я I2c не проинициализировал

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

Добавлено: 06 мар 2019, 14:15
Sancho
Давай до конца определимся - какая память, тип?

Отправлено спустя 1 минуту 5 секунд:
Задача, главное описать чего надо получить в результате.

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

Добавлено: 06 мар 2019, 14:19
fsergei70
24с32 с часов. Надо чтоб писало весь String а в идеале в отдельную ячейку еще и длинну этого Stringa/ Чтоб при считывании считать сначало длинну слова ну а потом само слово. Длинна слова максимум может быть 60 символов

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

Добавлено: 06 мар 2019, 15:16
Sancho
[ref]fsergei70[/ref], Серёга, у микросхем 24Схх есть особенность - страничная организация память.
Можно читать в один заход только с одной страницы. С двух, даже если это будет всего два байта, в два захода.
Размечать области как думаешь, где будешь хранить "оглавление"?
По мне - стандартные размеры или кратные.
[spoiler=Кратко о линейке]
Atmel_24СХХ.png
[/spoiler]

Отправлено спустя 2 минуты 47 секунд:
Поэтому для 32-ой - две страницы на одну запись, 64 ячейки.
Всего 64 записи.

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

Добавлено: 06 мар 2019, 15:34
fsergei70
Предлагаю алгоритм примерно такой. Пусть тогда будут странички по 32 байта первая ячейка в страничке будет длинна строки. Если в первой ячейке записано длинна больше 31 тогда у блока сделать 2 выхода на одном будет длинна первоначальной строки которую мы писали в начале странички -31, а на другой первоначальный адрес ячейки + 32. Тогда блоки можно будет прикрутить последовательно.

Отправлено спустя 2 минуты 45 секунд:
может есть вариант проще.

Отправлено спустя 4 минуты 26 секунд:
Можно и проще. Сделать блоки по одной страничке 32 байта а адреса сам в проекте считать буду. Тут главное пример хоть какой то дальше может сам додумаюсь.

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

Добавлено: 06 мар 2019, 15:38
Sancho
И как изменить страницу или заменить.
Как обратиться к записи 19, 33,... - как их искать, найти.
Сделать все записи по 64 и всё. Или 128, или ...
Стоимость 256 памяти, в чиподипе, 26 руб, 512 - 42 :)

Отправлено спустя 3 минуты 22 секунды:
Пример давно есть - для работы с телефонной книгой делал, UART_to_EEPROM.

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

Добавлено: 06 мар 2019, 15:41
fsergei70
Тогда уж странички по 32 делать а при приеме с уарт буду отбрасывать первые 32 байта и писать в следующую. вход и выход у блока должен быть просто String. А то у меня твои блоки с встроенным Uart есть только редактировать для меня их пока сложно.

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

Добавлено: 06 мар 2019, 15:44
Sancho
[ref]fsergei70[/ref], нет, Серёга, вход будет из Uart. Не стринг.
:)
Можно и стринг. Ок.

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

Добавлено: 06 мар 2019, 15:53
fsergei70
давай на часовых у меня просто макетка есть с часами впаянными я на ней все тестю, не люблю я проводки эти, вечно где то что то отвалится ищешь потом. Печатку не так сложно от утюжить по нашим временам. Она правда для ардуино ну потом блок под ESP переделать ведь несложно I2C только завести и ноги указать
[spoiler]
макетка.jpg
[/spoiler]