Например TDA7294

Форум РадиоКот • Просмотр темы - Arduino и энергонезависимая память
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс дек 28, 2025 17:42:19

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 86 ]  1, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 00:25:11 
Открыл глаза

Зарегистрирован: Сб ноя 04, 2017 19:21:12
Сообщений: 77
Рейтинг сообщения: 0
Приветствую всех.

Хотел бы посоветоваться. Проектирую устройство на Ардуине. Столкнулся с необходимостью записывать в энергонезависимую память раз в минуту несколько байт данных по одним и тем же адресам. Казалось бы, есть EEPROM, однако одни сутки - это 1440 минут, а заявленное число циклов записи в EEPROM - 100 000. Соответственно, при таком режиме эксплуатации память буквально вылетит за несколько месяцев. Сейчас думаю, есть ли какие-либо доступные альтернативные аналоги EEPROM, или может проще писать данные в переменную, обеспечив Ардуину бесперебойным питанием? Энергонезависимая память используется именно в расчете на пропадание электропитания, чтобы при его включении быстро восстановить значение переменной и подкорректировать поведение устройства. Заранее спасибо за советы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 00:27:48 
Собутыльник Кота

Карма: 36
Рейтинг сообщений: 808
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2906
Рейтинг сообщения: 1
пишите в разные адреса. писать в одни и те же - это надуманная проблема.
Ну, если это по каким-то причинам всё-таки не изменить, то повесьте мелкий мк, который будет разбрасывать по разным адресам, а для одурины выглядеть как еепром с одним адресом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 00:30:09 
Открыл глаза

Зарегистрирован: Сб ноя 04, 2017 19:21:12
Сообщений: 77
Рейтинг сообщения: 0
Вот не приходит мне в голову, а как тогда при восстановлении питания определить, из какого адреса нужные данные хватать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 00:53:28 
Собутыльник Кота

Карма: 36
Рейтинг сообщений: 808
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2906
Рейтинг сообщения: 0
ну дык по маркеру какому-нибудь.
например, нам надо записать 2 байта. ну пишем 4 байта, только последние два - сигнатура-счётчик, что это последние. два байта - это уже 65 с лишним тыщ вариантов.

Или же найдите еепром не 100к, например: M95M04-DR

Добавлено after 12 minutes 20 seconds:
Можно вообще круто сделать, например, создать нормальный формат записи, типа:
2 байта - сигнатура, а-ля 0хAFAF -означает, что это начало записи,
2 байта - размер данных
8 байт - юникс-время (по нему узнаем и последние данные и когда ваще был сбой)
N байтов - данные, количество которых определено выше
1 байт (по адресу N+13) - контрольная сумма данных

И тогда получится не только распределение по памяти, но и логирование полноценное, за некий период


Вложения:
dm00401794-1799051.pdf [681.64 KiB]
Скачиваний: 316
Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 07:00:10 
Открыл глаза

Зарегистрирован: Сб ноя 04, 2017 19:21:12
Сообщений: 77
Рейтинг сообщения: 0
Цитата:
ну дык по маркеру какому-нибудь.
например, нам надо записать 2 байта. ну пишем 4 байта, только последние два - сигнатура-счётчик, что это последние. два байта - это уже 65 с лишним тыщ вариантов.

Надо будет прикинуть временные затраты на такое чтение и такую запись - это важно для устройства.

Цитата:
Или же найдите еепром не 100к, например: M95M04-DR

Вот это более интересный вариант, правда его придется детально изучить. Библиотек под ардуино на него нет, но даташит расписан очень подробно - можно попробовать написать библиотеку самому, хотя по правде говоря, я этим раньше никогда не занимался. Впрочем, попробовать интересно.

Цитата:
8 байт - юникс-время (по нему узнаем и последние данные и когда ваще был сбой)

Задача несколько не та - само время возникновения сбоя хранить не требуется.
Тем не менее, спасибо большое за интересные идеи - есть над чем подумать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 07:53:46 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
DS1302 с батарейкой. У нее есть несколько байт ОЗУ, которые могут использоваться для подобных дел. Лучше не придумаешь.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 07:55:03 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 2114
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7059
Откуда: Сердце Пармы
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (2)
воспользуйся тем, что в пустой памяти записано FF:
или примени маркер отличный от FF, или в данных не допускай этой комбинации...
пишешь по порядку, как всё заполнилось - всё стираешь и пишешь по новой.
начало записи (запись делай постоянной величины или сам маркер пусть указывает на размер идущей за ним записи) находишь по отличию от FF записанной в ячейку информации.

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 08:50:11 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 621
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3764
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Используйте FRAM память вместо EEPROM.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 08:51:42 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1314
Рейтинг сообщения: 0
Ivanoff-iv, подтверждаю. Писал в еепром каждую секунду. Однако, довольно муторно.)
RTC, FRAM избыточны.


Вернуться наверх
 
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 15:44:50 
Хотел бы посоветоваться.

Если использовать внешнюю EEPROM то советую посмотреть в сторону 24LC32, у которой первые 4 Кбит (512 байт) имеют повышенную долговечность (10 000 000 запись/стирание).
Или можно использовать SRAM и встроенную EEPROM, а при исчезновении питания данные из SRAM переписывать в EEPROM. Как уже говорилось ранее, данные лучше записывать в новые ячейки по круговому принципу…


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Пт авг 28, 2020 17:58:30 
Открыл глаза

Зарегистрирован: Сб ноя 04, 2017 19:21:12
Сообщений: 77
Рейтинг сообщения: 0
DS1302 с батарейкой. У нее есть несколько байт ОЗУ, которые могут использоваться для подобных дел. Лучше не придумаешь.

Увы, не пойдет. В качестве RTC в этой схеме я использую DS3231 в связи с довольно высокими требованиями к точности хода часов. Хотя ХЗ, может в ней свое ОЗУ есть. Посмотрю даташит.

Цитата:
воспользуйся тем, что в пустой памяти записано FF:
или примени маркер отличный от FF, или в данных не допускай этой комбинации...

Мне надо хранить uint16_t в определенном диапазоне. Можно, конечно, попробовать как-то поиграть битами и видоизменить число с последующим обратным перекодированием. Как раньше шутили, только с появлением компьютеров был найден ответ на извечный вопрос To be or not to be, и имя ему FF. Попробую этот вариант взять в работу и провести расчеты.
Всем спасибо. Идей масса, можно повыбирать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Сб авг 29, 2020 09:24:38 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15331
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Стандартно использовал DS1307 (при питании устройства от +6 вольт).
(3-х вольтовый аналог - DS1338 пока в живом виде не попадалась
Вложение:
DS1338.pdf [242.33 KiB]
Скачиваний: 215
:( )
:hunger: :hunger: :hunger:
Там 56 байт ОЗУ (именно статическое ОЗУ, а не ЕЕПРОМ!) - вполне достаточно для небольшого блокнотика.
Можно еще найти старинные ОЗУ с батарейкой серий М41/M48
Вложение:
CD00001544_M41T56.pdf [478.2 KiB]
Скачиваний: 231

Вложение:
M48T35.pdf [472.44 KiB]
Скачиваний: 216

Или на крайний случай
Вложение:
FM18L08_ds.pdf [132.33 KiB]
Скачиваний: 236

:beer:


Последний раз редактировалось BOB51 Сб авг 29, 2020 09:30:17, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Сб авг 29, 2020 09:27:33 
Открыл глаза

Зарегистрирован: Сб ноя 04, 2017 19:21:12
Сообщений: 77
Рейтинг сообщения: 0
Что касается DS1307 - имел опыт и больше не хочу. У меня их точность плавала до +-10 секунд в сутки - это совсем перебор.

Еще такой момент, возвращаясь к EEPROM. Может кто-то анализировал штатные Ардуиновские исходники методов записи в ее EEPROM? Может ли быть так, что данные в память контроллера пишутся не побайтно, а постранично - то есть, при попытке записи счетчик записи/стирания относится ко всем ячейкам страницы памяти?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Сб авг 29, 2020 09:35:57 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15331
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Точность зависит от алгоритма прожки обращения к кристаллу.
Для бытовых целей с возможностью коррекции хода - вполне удовлетворительный результат.
8)
Но то под ассемблером на самолапно написанной прожке - как под Си (тем более адуринкой со "штатными библиотеками") не проверял.
Относительно встроенной ЕЕПРОМ адуринки - весьма недоволен остался.
Может вина библиотеки, может "поджаренный кристалл"...
:dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Сб авг 29, 2020 09:45:08 
Открыл глаза

Зарегистрирован: Сб ноя 04, 2017 19:21:12
Сообщений: 77
Рейтинг сообщения: 0
Точность зависит от алгоритма прожки обращения к кристаллу.
Для бытовых целей с возможностью коррекции хода - вполне удовлетворительный результат.
8)

Не очень понял. Часы идут себе и идут, а контроллер лишь обращается к RTC за данными. Или не так?
У меня не чисто бытовые цели, поэтому мой выбор - DS3231. Проверено временем, его точность меня полностью устраивает. Но дополнительной памяти у него, увы, нет.

Цитата:
Относительно встроенной ЕЕПРОМ адуринки - весьма недоволен остался.
Может вина библиотеки, может "поджаренный кристалл"...
:dont_know:

А в чем недовольство, если не секрет? Проблемы с целостностью данных?
За ссылки на микросхемы спасибо, хотя схему это заметно усложняет.

Добавлено after 2 minutes 1 second:
Набрел сейчас на вот это. Посмотрю цену и попробую приобрести для опытов.
https://static.chipdip.ru/lib/046/DOC003046482.pdf


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Сб авг 29, 2020 09:53:27 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15331
Откуда: ДОНЕЦК
Рейтинг сообщения: 1
Программа считывает данные только при запуске и коррекции - остальное время тикает внутренний таймер в МК.
Непрерывные циклы чтения вполне вероятный источник отклонений (как и схемотехника монтажа).
Проверять с адуринкой - пока особо не приходилось (тем более с ее платками - там топология схемы принимается "как есть" - разве что "лишние детальки" можно выкусить, да платок с различной разводкой в продаже много встречается - это не самоделка с выверенной схемотехникой).
Касательно ЕЕПРОМ - простейший контроль чистоты ЕЕПРОМ у АВРок программатором и то не всегда "чистое" выдает, а закладка данных в простой термостат под адуринкой меня весьма огорчила. Правда та адуринка была малость "поджаренная", так что не факт.
8)

Есть еще поинтереснее у микрощипа:
Вложение:
23A256_23K256.pdf [587.27 KiB]
Скачиваний: 236

Вложение:
23A512_23LC512.pdf [620.38 KiB]
Скачиваний: 248

Вложение:

Вложение:

:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Сб авг 29, 2020 10:08:32 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1314
Рейтинг сообщения: 1
Внешний чип для одного uint16_t? Оригинально-с!(((
Кольцевой буфер в ЕЕПРОМ всего делов то.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Сб авг 29, 2020 11:01:44 
Открыл глаза

Зарегистрирован: Сб ноя 04, 2017 19:21:12
Сообщений: 77
Рейтинг сообщения: 0
Цитата:
Кольцевой буфер в ЕЕПРОМ всего делов то.

Склоняюсь пока к этому варианту.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Сб авг 29, 2020 13:08:10 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1314
Рейтинг сообщения: 0
Не благодарите.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino и энергонезависимая память
СообщениеДобавлено: Ср сен 02, 2020 00:23:43 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1661
Рейтинг сообщения: 0
У меня не чисто бытовые цели, поэтому мой выбор - DS3231. Проверено временем, его точность меня полностью устраивает. Но дополнительной памяти у него, увы, нет.
Замените его на что-то из линейки FM31T372/374/376/378. И будет вам и RTC с погрешностью не более 2.5 минут за год (встроенный уже на заводе температурно-компенсированный кварц) и + несколько Кб FRAM. И всё это счастье в одном флаконе корпусе. И никакой мороки с кольцевыми буферами - можно писать в одни и те же адреса хоть до посинения!
Ну или FM31276/FM31278 - из той же оперы, только кварц внешний и калибровать нужно самостоятельно.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 86 ]  1, , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y