beer_warrior 0 19 мая, 2006 Опубликовано 19 мая, 2006 (изменено) · Жалоба Возникла проблемка - в девайсе необходимо считать время наработки. Куча параметров системы хранится в AT45DBxxx, добавить еще один не проблема. Однако.... По условиям девайс может работать меньше часа и короткие фрагменты могут сложиться в солидную неучтенку, поэтому время придеться писать поминутно. Исходя из количества циклов флэши, писать хватит менее чем на год. Вижу два выхода: 1. Хранить наработку в ОЗУ и писать по пропаданию питания, снабдив девайс солидным кондером. Не хочеться из-за усложнения схемы и занятости выводов прерываний. 2.Писать в десяток ячеек памяти попеременно - благо памяти с избытком. Не хочеться из-за достаточно морочного алгоритма - очевидно придеться писать в разные страницы. М.б кто-н. посоветует третий путь? Изменено 19 мая, 2006 пользователем beer_warrior Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба Возникла проблемка - в девайсе необходимо считать время наработки. 1. Хранить наработку в ОЗУ и писать по пропаданию питания, снабдив девайс солидным кондером. Не хочеться из-за усложнения схемы и занятости выводов прерываний. 2.Писать в десяток ячеек памяти попеременно - благо памяти с избытком. Не хочеться из-за достаточно морочного алгоритма - очевидно придеться писать в разные страницы. М.б кто-н. посоветует третий путь? Память FRAM - не боится ограничений на число циклов перезаписи. По поводу алгоритма эмуляции EEPROMа - полностью у NEC, а у меня на сайте только часть переведена и оформлена в статью. Удачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба 1 способ. Сопровождайте каждую запись в DataFlash датой/временем. При включении ищите последнюю валидную дату/время. Нюансы: алгоритм усложняется (проверка валидности записи), могут быть проблемы с поиском/восстановлением последней даты (особенно если отдельного RTC нет). 2 способ. В качестве ОЗУ для хранения времени наработки используйте один из буферов DataFlash. При пропадании питания запись одной страницы много времени не займет. Нюансы: нужен узел сигнализации аварии питания, который ничего сложного не представляет - грубо говоря, TL431+оптрон в цепи первичного (сетевого) выпрямителя. Также нужен запас по времени при аварии питания. Если БП импульсный, то опять же это не проблема - при необходимости увеличить номинал электролита сетевого выпрямителя. Память FRAM - не боится ограничений на число циклов перезаписи. Фраза звучит довольно забавно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба 1 способ. Сопровождайте каждую запись в DataFlash датой/временем. При включении ищите последнюю валидную дату/время. Нюансы: алгоритм усложняется (проверка валидности записи), могут быть проблемы с поиском/восстановлением последней даты (особенно если отдельного RTC нет). 2 способ. В качестве ОЗУ для хранения времени наработки используйте один из буферов DataFlash. При пропадании питания запись одной страницы много времени не займет. Нюансы: нужен узел сигнализации аварии питания, который ничего сложного не представляет - грубо говоря, TL431+оптрон в цепи первичного (сетевого) выпрямителя. Также нужен запас по времени при аварии питания. Если БП импульсный, то опять же это не проблема - при необходимости увеличить номинал электролита сетевого выпрямителя. Память FRAM - не боится ограничений на число циклов перезаписи. Фраза звучит довольно забавно :) с монитором питания и конденсаторами не стоит заморачиваться.... проще действительно поставить изделие фирмы ramtron, которое представляет и энергонезависимую память на НЕОГРАНИЧЕННОЕ количество перезаписей + часы реального времени + некоторые дополнительные вкусности и стоит недорого. и главное всего 1 микросхема =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба А мне вот любопытно, у кого-либо из советующих FRAM серия изделий (скажем сотня штук), имеющая в составе FRAM хотя бы года три-четыре безаварийно и безглюкаво уже отработала? Или, как обычно, все советуют чисто теоретис-с-ски? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба А мне вот любопытно, у кого-либо из советующих FRAM серия изделий (скажем сотня штук), имеющая в составе FRAM хотя бы года три-четыре безаварийно и безглюкаво уже отработала? Или, как обычно, все советуют чисто теоретис-с-ски? ;) мне микросхемки с FRAM очень понравились, правда применить их негде было =) так что сразу скажу - не использовал, но и отрицательных отзывов не слышал о них. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба не использовал, но и отрицательных отзывов не слышал о них. А я положительных :) Только восторженные. О том, как "это здорово" и что "в следующей разработке я их обязательно применю". А вот о результатах применения почему-то умалчивают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
m16 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба beer_warrior раз у вас есть RTC так может применить с внутренней RAM к примеру DS1306 и тд - 96 байт внутр памяти пользователя если мало то можно взять DS1670 ,DS1680 и тд - управление и аварийное питание внешней RAM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OlegIvanov 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба SRAM с внутренней батареей - ножек правда до черта SRAM + внешняя батарея - то же SRAM с SPI или 1-Wire интерфейсом - относительно очень небольшой обьем памяти, но если фиксировать только количество минут то вполне... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
beer_warrior 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба 1.Хм, FRAM. Дело в том что уже используеться 45DB, слеплена под нее файловая система, да и доставаема она на 2 порядка лучше. 2.RTC у меня нет, просто считаються тики системного таймера. Мне ж не даты нужны, а относительное время. 3.Возникла идея навенная постами, А что если действительно использовать один из буферов 45-й как внешнее ОЗУ, и держать ее на ионисторе например? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба А что если действительно использовать один из буферов 45-й как внешнее ОЗУ, и держать ее на ионисторе например? В принципе можно. AT45 в stand-by единицы микроАмпер потребляет. Но все же лучше, если буфер успеть записать в DataFlash перед выключением :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
beer_warrior 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба Наверное попробую и так и эдак, а о результатах доложу :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ps1x 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба Наверное попробую и так и эдак, а о результатах доложу :) А может так: 1)При начале работы девайса пишется время начала. 2)При завершении - время завершения 3)Вычитаем одно из другого и получаем длительность работы. 4)Считываем из памяти сколько проработали за всю жизнь 5)Прибавляем туда полученое время. 6)Записываем обратно результат. Т.е. за каждый цикл включения выключения тратиться только 1 запись в память. В eeprom естессно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба 1)При начале работы девайса пишется время начала. 2)При завершении - время завершения 3)Вычитаем одно из другого и получаем длительность работы. 4)Считываем из памяти сколько проработали за всю жизнь 5)Прибавляем туда полученое время. 6)Записываем обратно результат. При аварийном выключении такой довольно длительный алгоритм может не прокатить. Обычно время между возникновением сигнала об аварии питания и пропаданием питания рассчитывают порядка 10-20 мс. Конечно при использовании ИБП это время бывает и больше, но расчитывают на самый худший случай. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ps1x 0 19 мая, 2006 Опубликовано 19 мая, 2006 · Жалоба 1)При начале работы девайса пишется время начала. 2)При завершении - время завершения 3)Вычитаем одно из другого и получаем длительность работы. 4)Считываем из памяти сколько проработали за всю жизнь 5)Прибавляем туда полученое время. 6)Записываем обратно результат. При аварийном выключении такой довольно длительный алгоритм может не прокатить. Обычно время между возникновением сигнала об аварии питания и пропаданием питания рассчитывают порядка 10-20 мс. Конечно при использовании ИБП это время бывает и больше, но расчитывают на самый худший случай. Так токи там совсем небольшие, можно от маленького ионистра запитать... Я думаю его на пару минут до выключения хватит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться