Перейти к содержанию
    

Учет времени наработки

Возникла проблемка - в девайсе необходимо считать время наработки.

Куча параметров системы хранится в AT45DBxxx, добавить еще один не проблема.

Однако....

По условиям девайс может работать меньше часа и короткие фрагменты могут сложиться в солидную неучтенку, поэтому время придеться писать поминутно.

Исходя из количества циклов флэши, писать хватит менее чем на год.

Вижу два выхода:

1. Хранить наработку в ОЗУ и писать по пропаданию питания, снабдив девайс солидным кондером.

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

2.Писать в десяток ячеек памяти попеременно - благо памяти с избытком.

Не хочеться из-за достаточно морочного алгоритма - очевидно придеться писать в разные страницы.

М.б кто-н. посоветует третий путь?

Изменено пользователем beer_warrior

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возникла проблемка - в девайсе необходимо считать время наработки.

1. Хранить наработку в ОЗУ и писать по пропаданию питания, снабдив девайс солидным кондером.

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

2.Писать в десяток ячеек памяти попеременно - благо памяти с избытком.

Не хочеться из-за достаточно морочного алгоритма - очевидно придеться писать в разные страницы.

М.б кто-н. посоветует третий путь?

 

Память FRAM - не боится ограничений на число циклов перезаписи.

По поводу алгоритма эмуляции EEPROMа - полностью у NEC, а у меня на сайте только часть переведена и оформлена в статью.

Удачи!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 способ. Сопровождайте каждую запись в DataFlash датой/временем. При включении ищите последнюю валидную дату/время.

Нюансы: алгоритм усложняется (проверка валидности записи), могут быть проблемы с поиском/восстановлением последней даты (особенно если отдельного RTC нет).

2 способ. В качестве ОЗУ для хранения времени наработки используйте один из буферов DataFlash. При пропадании питания запись одной страницы много времени не займет.

Нюансы: нужен узел сигнализации аварии питания, который ничего сложного не представляет - грубо говоря, TL431+оптрон в цепи первичного (сетевого) выпрямителя. Также нужен запас по времени при аварии питания. Если БП импульсный, то опять же это не проблема - при необходимости увеличить номинал электролита сетевого выпрямителя.

 

Память FRAM - не боится ограничений на число циклов перезаписи.

Фраза звучит довольно забавно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 способ. Сопровождайте каждую запись в DataFlash датой/временем. При включении ищите последнюю валидную дату/время.

Нюансы: алгоритм усложняется (проверка валидности записи), могут быть проблемы с поиском/восстановлением последней даты (особенно если отдельного RTC нет).

2 способ. В качестве ОЗУ для хранения времени наработки используйте один из буферов DataFlash. При пропадании питания запись одной страницы много времени не займет.

Нюансы: нужен узел сигнализации аварии питания, который ничего сложного не представляет - грубо говоря, TL431+оптрон в цепи первичного (сетевого) выпрямителя. Также нужен запас по времени при аварии питания. Если БП импульсный, то опять же это не проблема - при необходимости увеличить номинал электролита сетевого выпрямителя.

 

Память FRAM - не боится ограничений на число циклов перезаписи.

Фраза звучит довольно забавно :)

 

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

 

проще действительно поставить изделие фирмы ramtron, которое представляет и энергонезависимую память на НЕОГРАНИЧЕННОЕ количество перезаписей + часы реального времени + некоторые дополнительные вкусности и стоит недорого. и главное всего 1 микросхема =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А мне вот любопытно, у кого-либо из советующих FRAM серия изделий (скажем сотня штук), имеющая в составе FRAM хотя бы года три-четыре безаварийно и безглюкаво уже отработала? Или, как обычно, все советуют чисто теоретис-с-ски? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А мне вот любопытно, у кого-либо из советующих FRAM серия изделий (скажем сотня штук), имеющая в составе FRAM хотя бы года три-четыре безаварийно и безглюкаво уже отработала? Или, как обычно, все советуют чисто теоретис-с-ски? ;)

 

мне микросхемки с FRAM очень понравились, правда применить их негде было =) так что сразу скажу - не использовал, но и отрицательных отзывов не слышал о них.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не использовал, но и отрицательных отзывов не слышал о них.

А я положительных :) Только восторженные. О том, как "это здорово" и что "в следующей разработке я их обязательно применю". А вот о результатах применения почему-то умалчивают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

beer_warrior

раз у вас есть RTC так может применить с внутренней RAM к примеру DS1306 и тд - 96 байт внутр памяти пользователя если мало то можно взять DS1670 ,DS1680 и тд - управление и аварийное питание внешней RAM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

SRAM с внутренней батареей - ножек правда до черта

SRAM + внешняя батарея - то же

SRAM с SPI или 1-Wire интерфейсом - относительно очень небольшой обьем памяти,

но если фиксировать только количество минут то вполне...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1.Хм, FRAM.

Дело в том что уже используеться 45DB, слеплена под нее файловая система, да и доставаема она на 2 порядка лучше.

2.RTC у меня нет, просто считаються тики системного таймера.

Мне ж не даты нужны, а относительное время.

3.Возникла идея навенная постами,

А что если действительно использовать один из буферов 45-й как внешнее ОЗУ, и держать ее на ионисторе например?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что если действительно использовать один из буферов 45-й как внешнее ОЗУ, и держать ее на ионисторе например?

В принципе можно. AT45 в stand-by единицы микроАмпер потребляет. Но все же лучше, если буфер успеть записать в DataFlash перед выключением :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наверное попробую и так и эдак, а о результатах доложу :)

 

 

А может так:

1)При начале работы девайса пишется время начала.

2)При завершении - время завершения

3)Вычитаем одно из другого и получаем длительность работы.

4)Считываем из памяти сколько проработали за всю жизнь

5)Прибавляем туда полученое время.

6)Записываем обратно результат.

 

Т.е. за каждый цикл включения выключения тратиться только 1 запись в память.

 

В eeprom естессно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1)При начале работы девайса пишется время начала.

2)При завершении - время завершения

3)Вычитаем одно из другого и получаем длительность работы.

4)Считываем из памяти сколько проработали за всю жизнь

5)Прибавляем туда полученое время.

6)Записываем обратно результат.

При аварийном выключении такой довольно длительный алгоритм может не прокатить. Обычно время между возникновением сигнала об аварии питания и пропаданием питания рассчитывают порядка 10-20 мс. Конечно при использовании ИБП это время бывает и больше, но расчитывают на самый худший случай.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1)При начале работы девайса пишется время начала.

2)При завершении - время завершения

3)Вычитаем одно из другого и получаем длительность работы.

4)Считываем из памяти сколько проработали за всю жизнь

5)Прибавляем туда полученое время.

6)Записываем обратно результат.

При аварийном выключении такой довольно длительный алгоритм может не прокатить. Обычно время между возникновением сигнала об аварии питания и пропаданием питания рассчитывают порядка 10-20 мс. Конечно при использовании ИБП это время бывает и больше, но расчитывают на самый худший случай.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...