реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Учет времени наработки
beer_warrior
сообщение May 19 2006, 13:37
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Возникла проблемка - в девайсе необходимо считать время наработки.
Куча параметров системы хранится в AT45DBxxx, добавить еще один не проблема.
Однако....
По условиям девайс может работать меньше часа и короткие фрагменты могут сложиться в солидную неучтенку, поэтому время придеться писать поминутно.
Исходя из количества циклов флэши, писать хватит менее чем на год.
Вижу два выхода:
1. Хранить наработку в ОЗУ и писать по пропаданию питания, снабдив девайс солидным кондером.
Не хочеться из-за усложнения схемы и занятости выводов прерываний.
2.Писать в десяток ячеек памяти попеременно - благо памяти с избытком.
Не хочеться из-за достаточно морочного алгоритма - очевидно придеться писать в разные страницы.
М.б кто-н. посоветует третий путь?

Сообщение отредактировал beer_warrior - May 19 2006, 13:38


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 19 2006, 13:47
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(beer_warrior @ May 19 2006, 17:37) *
Возникла проблемка - в девайсе необходимо считать время наработки.
1. Хранить наработку в ОЗУ и писать по пропаданию питания, снабдив девайс солидным кондером.
Не хочеться из-за усложнения схемы и занятости выводов прерываний.
2.Писать в десяток ячеек памяти попеременно - благо памяти с избытком.
Не хочеться из-за достаточно морочного алгоритма - очевидно придеться писать в разные страницы.
М.б кто-н. посоветует третий путь?


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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
rezident
сообщение May 19 2006, 14:10
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



1 способ. Сопровождайте каждую запись в DataFlash датой/временем. При включении ищите последнюю валидную дату/время.
Нюансы: алгоритм усложняется (проверка валидности записи), могут быть проблемы с поиском/восстановлением последней даты (особенно если отдельного RTC нет).
2 способ. В качестве ОЗУ для хранения времени наработки используйте один из буферов DataFlash. При пропадании питания запись одной страницы много времени не займет.
Нюансы: нужен узел сигнализации аварии питания, который ничего сложного не представляет - грубо говоря, TL431+оптрон в цепи первичного (сетевого) выпрямителя. Также нужен запас по времени при аварии питания. Если БП импульсный, то опять же это не проблема - при необходимости увеличить номинал электролита сетевого выпрямителя.

Цитата(iosifk @ May 19 2006, 19:47) *
Память FRAM - не боится ограничений на число циклов перезаписи.

Фраза звучит довольно забавно smile.gif
Go to the top of the page
 
+Quote Post
Petka
сообщение May 19 2006, 14:21
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(rezident @ May 19 2006, 18:10) *
1 способ. Сопровождайте каждую запись в DataFlash датой/временем. При включении ищите последнюю валидную дату/время.
Нюансы: алгоритм усложняется (проверка валидности записи), могут быть проблемы с поиском/восстановлением последней даты (особенно если отдельного RTC нет).
2 способ. В качестве ОЗУ для хранения времени наработки используйте один из буферов DataFlash. При пропадании питания запись одной страницы много времени не займет.
Нюансы: нужен узел сигнализации аварии питания, который ничего сложного не представляет - грубо говоря, TL431+оптрон в цепи первичного (сетевого) выпрямителя. Также нужен запас по времени при аварии питания. Если БП импульсный, то опять же это не проблема - при необходимости увеличить номинал электролита сетевого выпрямителя.

Цитата(iosifk @ May 19 2006, 19:47) *

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

Фраза звучит довольно забавно smile.gif


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

проще действительно поставить изделие фирмы ramtron, которое представляет и энергонезависимую память на НЕОГРАНИЧЕННОЕ количество перезаписей + часы реального времени + некоторые дополнительные вкусности и стоит недорого. и главное всего 1 микросхема =)
Go to the top of the page
 
+Quote Post
rezident
сообщение May 19 2006, 14:30
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А мне вот любопытно, у кого-либо из советующих FRAM серия изделий (скажем сотня штук), имеющая в составе FRAM хотя бы года три-четыре безаварийно и безглюкаво уже отработала? Или, как обычно, все советуют чисто теоретис-с-ски? wink.gif
Go to the top of the page
 
+Quote Post
Petka
сообщение May 19 2006, 14:34
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(rezident @ May 19 2006, 18:30) *
А мне вот любопытно, у кого-либо из советующих FRAM серия изделий (скажем сотня штук), имеющая в составе FRAM хотя бы года три-четыре безаварийно и безглюкаво уже отработала? Или, как обычно, все советуют чисто теоретис-с-ски? wink.gif


мне микросхемки с FRAM очень понравились, правда применить их негде было =) так что сразу скажу - не использовал, но и отрицательных отзывов не слышал о них.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 19 2006, 14:36
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Petka @ May 19 2006, 20:34) *
не использовал, но и отрицательных отзывов не слышал о них.

А я положительных smile.gif Только восторженные. О том, как "это здорово" и что "в следующей разработке я их обязательно применю". А вот о результатах применения почему-то умалчивают.
Go to the top of the page
 
+Quote Post
m16
сообщение May 19 2006, 15:24
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



beer_warrior
раз у вас есть RTC так может применить с внутренней RAM к примеру DS1306 и тд - 96 байт внутр памяти пользователя если мало то можно взять DS1670 ,DS1680 и тд - управление и аварийное питание внешней RAM
Go to the top of the page
 
+Quote Post
OlegIvanov
сообщение May 19 2006, 16:21
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 12-09-05
Пользователь №: 8 464



SRAM с внутренней батареей - ножек правда до черта
SRAM + внешняя батарея - то же
SRAM с SPI или 1-Wire интерфейсом - относительно очень небольшой обьем памяти,
но если фиксировать только количество минут то вполне...
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение May 19 2006, 17:06
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



1.Хм, FRAM.
Дело в том что уже используеться 45DB, слеплена под нее файловая система, да и доставаема она на 2 порядка лучше.
2.RTC у меня нет, просто считаються тики системного таймера.
Мне ж не даты нужны, а относительное время.
3.Возникла идея навенная постами,
А что если действительно использовать один из буферов 45-й как внешнее ОЗУ, и держать ее на ионисторе например?


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 19 2006, 17:20
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(beer_warrior @ May 19 2006, 23:06) *
А что если действительно использовать один из буферов 45-й как внешнее ОЗУ, и держать ее на ионисторе например?

В принципе можно. AT45 в stand-by единицы микроАмпер потребляет. Но все же лучше, если буфер успеть записать в DataFlash перед выключением rolleyes.gif
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение May 19 2006, 17:32
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



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


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
ps1x
сообщение May 19 2006, 18:05
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата(beer_warrior @ May 19 2006, 21:32) *
Наверное попробую и так и эдак, а о результатах доложу smile.gif



А может так:
1)При начале работы девайса пишется время начала.
2)При завершении - время завершения
3)Вычитаем одно из другого и получаем длительность работы.
4)Считываем из памяти сколько проработали за всю жизнь
5)Прибавляем туда полученое время.
6)Записываем обратно результат.

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

В eeprom естессно.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 19 2006, 19:03
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(ps1x @ May 20 2006, 00:05) *
1)При начале работы девайса пишется время начала.
2)При завершении - время завершения
3)Вычитаем одно из другого и получаем длительность работы.
4)Считываем из памяти сколько проработали за всю жизнь
5)Прибавляем туда полученое время.
6)Записываем обратно результат.

При аварийном выключении такой довольно длительный алгоритм может не прокатить. Обычно время между возникновением сигнала об аварии питания и пропаданием питания рассчитывают порядка 10-20 мс. Конечно при использовании ИБП это время бывает и больше, но расчитывают на самый худший случай.
Go to the top of the page
 
+Quote Post
ps1x
сообщение May 19 2006, 19:16
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата(rezident @ May 19 2006, 23:03) *
Цитата(ps1x @ May 20 2006, 00:05) *

1)При начале работы девайса пишется время начала.
2)При завершении - время завершения
3)Вычитаем одно из другого и получаем длительность работы.
4)Считываем из памяти сколько проработали за всю жизнь
5)Прибавляем туда полученое время.
6)Записываем обратно результат.

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

Так токи там совсем небольшие, можно от маленького ионистра запитать... Я думаю его на пару минут до выключения хватит.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 08:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01495 секунд с 7
ELECTRONIX ©2004-2016