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

 
 
> Счётчик наработки часов, где хранить часы intEEPROM, extEEPROM, RTC
Punk
сообщение Feb 19 2007, 08:17
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Привет! Хочу сделать счетчик наработки часов(tiny2313) на гидроподъемник и вот думаю куда же мне сохранять часы во внутреннее EEPROM или 93с46 прикрутить(из сооброжений ресурса EEPROM) или же использовать RTC, подскажите кто с этими вещами сталкивался как лучше сделать ?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 18)
mihask
сообщение Feb 19 2007, 09:20
Сообщение #2


Частый гость
**

Группа: Validating
Сообщений: 80
Регистрация: 7-12-05
Пользователь №: 11 905



Цитата(Punk @ Feb 19 2007, 11:17) *
Привет! Хочу сделать счетчик наработки часов(tiny2313) на гидроподъемник и вот думаю куда же мне сохранять часы во внутреннее EEPROM или 93с46 прикрутить(из сооброжений ресурса EEPROM) или же использовать RTC, подскажите кто с этими вещами сталкивался как лучше сделать ?


Помоему для растягивания ресурса EEPROM можно записывать счетчик наработки каждый раз в новые ячейки (если в случае с EEPROM tiny2313 я не прав надеюсь меня поправят smile.gif ).
Еще можно FRAM прикрутить (у нее нет ограничений на количество циклов записи чтения),
только поди эта FRAM будет дороже проца. smile.gif А что значит "использовать RTC" - Вы хотите
запользовать под счетчик внутреннее ОЗУ RTC. Какую микросхему RTC вы используете ?

Сообщение отредактировал mihask - Feb 19 2007, 09:21
Go to the top of the page
 
+Quote Post
Igor26
сообщение Feb 19 2007, 09:22
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Я использовал RTC DS1307 и в его ОЗУ хранил время наработки.
Go to the top of the page
 
+Quote Post
Punk
сообщение Feb 19 2007, 09:30
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Цитата(mihask @ Feb 19 2007, 09:20) *
Какую микросхему RTC вы используете ?


Я еще пока ни че не использую а определяюсь с выбором элемнтов..
если буду ставить RTC то это будет ricoh_RS5C372A не потому что они мега крутые просто у меня их есть.Хотя млин неохота много корпусов пихать,хотелось бы одним процом обойтись но сколько ЕПРОМ его протянет черт его знает.
Go to the top of the page
 
+Quote Post
mihask
сообщение Feb 19 2007, 10:03
Сообщение #5


Частый гость
**

Группа: Validating
Сообщений: 80
Регистрация: 7-12-05
Пользователь №: 11 905



Цитата(Punk @ Feb 19 2007, 12:30) *
но сколько ЕПРОМ его протянет черт его знает.


Ну еще даташит знает smile.gif - 100000 циклов записи/чтения, а если в каждый раз в разные ячейки писать,
то 100000*Nточек записи.

А если RTC DS1307 использовать то как я понимаю после отключения питания, через двое суток батарейка сядет и счетчик в озушке умрет. Хотя можно конечно счетчик из озушки каждый час в EEPROM переписывать.

Цитата
хотелось бы одним процом обойтись...

А вы хотите tiny2313 обойтись, но ведь у него нет встроенного RTC ?
Или вы хотели бы использовать только tiny2313+RTC?

Сообщение отредактировал mihask - Feb 19 2007, 10:03
Go to the top of the page
 
+Quote Post
Dopler
сообщение Feb 19 2007, 10:04
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Цитата(Punk @ Feb 19 2007, 09:30) *
Хотя млин неохота много корпусов пихать,хотелось бы одним процом обойтись но сколько ЕПРОМ его протянет черт его знает.


Тут гадать особо не стоит, достаточтно глянуть в Даташит и увидеть 100.000 циклов записи. Ну а дальше примерно так - если буду писать каждую секунду то за 8-ми часовой рабочий день буду записывать 28800 раз, т.е всех 128 байт EEPROM хватит на 2 месяца работы (по 8 часов в день). Если писать раз в минуту, то соответственно, в 60 раз больше, уже на пару лет можно растянуть.
Go to the top of the page
 
+Quote Post
aahardsoft
сообщение Feb 19 2007, 10:28
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 29-07-05
Пользователь №: 7 189



а не хотите ли просто поставить в питание диод,после него кондёр а на ногу инт0 например завести питание до диода, и по приходу инта(будет вам означать что питание отрубили) писать часики в eeprom питаясь от кондера ,и ложиться спать smile.gif
Go to the top of the page
 
+Quote Post
Alex B._
сообщение Feb 19 2007, 10:31
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274



2Punk
во-первых aahardsoft дело говорит - имеет смысл считать внутри, а писать в eeprom при отключении питания. Во-вторых если есть вероятность, что кто-то захочет твой счетчик обнулить - то только внутреняя eeprom.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Feb 19 2007, 10:36
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
после отключения питания, через двое суток батарейка сядет и счетчик в озушке умрет

Ничего подобного! Года три на одной батарейке без внешнего питания отбегает. А чтоб не потерять данные в момент замены батарейки, сначала подайте внешнее питание и меняйте батарейку.
Go to the top of the page
 
+Quote Post
mihask
сообщение Feb 19 2007, 11:12
Сообщение #10


Частый гость
**

Группа: Validating
Сообщений: 80
Регистрация: 7-12-05
Пользователь №: 11 905



Цитата(Igor26 @ Feb 19 2007, 13:36) *
Цитата
после отключения питания, через двое суток батарейка сядет и счетчик в озушке умрет

Ничего подобного! Года три на одной батарейке без внешнего питания отбегает. А чтоб не потерять данные в момент замены батарейки, сначала подайте внешнее питание и меняйте батарейку.


А ну да вы правы конечно smile.gif, это я перепутал, у нас батарека висела на внешнем ОЗУ и RTC
одновремено оба устройства питала ну и озушка эта дохла через двое суток после отключения
питания. А данные из RTC помоему можно после подачи питания(по команде пользователя) в EEPROM загонять и тогда не нужно при включеном питании батарейку менять.
Go to the top of the page
 
+Quote Post
FAV
сообщение Feb 19 2007, 16:22
Сообщение #11





Группа: Участник
Сообщений: 12
Регистрация: 1-02-06
Пользователь №: 13 852



Мне кажется правильнее, по аналогии с автомобильными моточасами или счетчиком пробега, переписывать в еепром при отключения зажигания. При этом постоянное питание должно оставаться. А до этого считать в ОЗУ. В результате если запустили прибор в работу в начале дня и выключили в конце, то всего одна перезапись в день. Ресурс ЕЕПРОМ за всю жизнь не исчерпается.
Go to the top of the page
 
+Quote Post
khach
сообщение Feb 19 2007, 16:38
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



А если поставить вопрос так: счетчик часов критичен или нет, т.е будут ли его хакать, и должен ли он быть "ломоустойчивым"? Есть ли идеи по "ломоустойчивости" как то шифровынный протокол, невозможность замены на аналогичный, невозможность "отмотки" итд.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Feb 19 2007, 17:06
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Если писАть время в EEPROM контроллера, то достаточно залочить ЧИП и не о какой "отмотке", изменении этого времени речи не будет.
Go to the top of the page
 
+Quote Post
Punk
сообщение Feb 19 2007, 17:11
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Цитата(khach @ Feb 19 2007, 16:38) *
А если поставить вопрос так: счетчик часов критичен или нет, т.е будут ли его хакать, и должен ли он быть "ломоустойчивым"? Есть ли идеи по "ломоустойчивости" как то шифровынный протокол, невозможность замены на аналогичный, невозможность "отмотки" итд.

Не девайс ломать этот ни кто не будет т.к. я его лично себе(СТО) делаю поэтому ни че шифровать не надо, а по поводу отмотки - отмотать все че хош можно(личный опыт).

И все таки я пожалй остановлюсь на RTC+tiny2313+кандюк+диод, т.к. неохото бэкапное питание как в тачках заводить, должно быть так: Есь питалово на счетчике он мотает, нет питалова от вырублен, всего два провода из корпуса торчать будет.
Go to the top of the page
 
+Quote Post
AlexG_changed
сообщение Feb 19 2007, 18:39
Сообщение #15


Участник
*

Группа: Validating
Сообщений: 64
Регистрация: 16-06-05
Пользователь №: 6 073



ресурс внутренней EEPROM достаточно просто умножается в N раз, если для записи наработки использовать не одну "запись" а N по очереди. Алгоритм выбора очередной области для записи и поиска текущей используемой области может быть различным, можно к записываемым данным дописывать "счетчик", если записывается наработка то данные сами по себе могут служить "счетчиком". В одной моей разработке запись наработки в EEPROM производится каждые пять минут, а ресурс рассчитан на 10 лет.

При правильной организации счетчика наработки в EEPROM он получается нечувствительным к перебоям питания, даже если очередная порция данных не успеет записаться целиком при очередном включении счет автоматически начнется с предыдущей, верной записи. Если счетчик рассчитан на много лет потеря пяти минут не критична.

Сообщение отредактировал AlexG - Feb 19 2007, 18:43
Go to the top of the page
 
+Quote Post
mihask
сообщение Feb 20 2007, 06:09
Сообщение #16


Частый гость
**

Группа: Validating
Сообщений: 80
Регистрация: 7-12-05
Пользователь №: 11 905



Цитата(Punk @ Feb 19 2007, 20:11) *
И все таки я пожалй остановлюсь на RTC+tiny2313+кандюк+диод, т.к. неохото бэкапное питание как в тачках заводить, должно быть так: Есь питалово на счетчике он мотает, нет питалова от вырублен, всего два провода из корпуса торчать будет.


А такой способ сохранения данных надежен? Ведь здесь видимо предполагается аварийное отключение
питания? То есть в месте с резким отключением питания может возникнуть какая нибудь помеха
на линии связи RTC - tiny2313. Или это маловероятно ?

А как часто нужно сохранять данные во flash? Ведь если данные нужно сохранять достаточно редко
то способ предложенный AlexG (ну и я его тоже предлагал в самом начале smile.gif ) вполне
подойдет,причем у вас будет несколько точек записи если одна запортится остальные останутся.
Ведь эти 100000 циклов чтения/записи фирма производитель гарантирует(для конкретной одной
ячейки ), а записывая каждый раз в новые ячейки мы расширяем этот диапазон. По крайней
мере способ "RTC+tiny2313+кандюк+диод" можно совместить со способом предложенным
AlexG , просто сохранять счетчик в EEPROM пореже, хотя бы для резерва smile.gif

Сообщение отредактировал mihask - Feb 20 2007, 06:10
Go to the top of the page
 
+Quote Post
bloodden
сообщение Nov 20 2007, 11:56
Сообщение #17


Бывалый
***

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



метод как у aahardsoft"а у меня уже намотал под тыщу часов без единого сбоя. вкл/выкл 1-2 раза в сутки. 90s8515 самовар, и ему с головой хватает всё записать и лечь спать 100мкФ кондёра.


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Nov 20 2007, 12:35
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



почти согласен с aahardsoft но делал чуть иначе:
Запись моточасов проводилась в RTC с интервалом 1 минута. При этом считалось CRC записи, или просто инверсия (не раз наверное видели в дампах щитков smile.gif ). Для супер надежности можно сделать 2-й буфер, на случай вырубки питания в момент записи.
По выключению питания ничего не пишется, все действия производяться по включению.
1. даем выдержку для устаканивания питания, можно в этот момент LCD проинитить или еще что нибудь.
2. проверяем CRC записи, и если все OK переносим результат в EEPROM процессора.
3. Если CRC не совпало ни в одном буфере - переносим данные из EEPROM в RTC. Потеря время последней работы.
4. Если совсем все плохо, CRC не совпало нигде - общая ошибка ...

Ну а все остальное типа буфер в EEPROM на любителя smile.gif
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Nov 22 2007, 11:23
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Сам хочу.
Пока на бумажке придумал следующее.
В ЕЕПРОМ организуем N ячеек по 4 байта. 3 байта - число и 1 байт CRC. Если число - время в минутах, то 3 байта хватит на 32 года.
Сначала ячейки инициализируются нулями с правильным CRC: убеждаемся что они записываются.
При включении питания ищем максимальное значение с правильным CRC: это наработанное время. Переписываем его в память, будем наращивать каждую минуту, вычисляя CRC.
В ЕЕПРОМе ищем верную запись с нулями+CRC. Запоминаем адрес: это место для записи счётчика. Если нету таковой, то пытаемся записать нули во все 4 байта. Получилось - ячейка рабочая.
При выключении (смотрим компаратором на напряжение ДО стабилизатора) быстренько переписываем счётчик в ячейку.
В качестве часов хочу использовать родной кварц-таймер-программный счётчик по прерыванию таймера с коррекцией каждые N и M*N интервалов. Точность получается хорошая.

Алгоритм сделан из предположения, что в "усталый" ЕЕПРОМ труднее записать нули, чем единицы. Это так?

Хочется услышать критику. smile3046.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:01
Рейтинг@Mail.ru


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