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

Счётчик наработки часов

Гость mihask
И все таки я пожалй остановлюсь на RTC+tiny2313+кандюк+диод, т.к. неохото бэкапное питание как в тачках заводить, должно быть так: Есь питалово на счетчике он мотает, нет питалова от вырублен, всего два провода из корпуса торчать будет.

 

А такой способ сохранения данных надежен? Ведь здесь видимо предполагается аварийное отключение

питания? То есть в месте с резким отключением питания может возникнуть какая нибудь помеха

на линии связи RTC - tiny2313. Или это маловероятно ?

 

А как часто нужно сохранять данные во flash? Ведь если данные нужно сохранять достаточно редко

то способ предложенный AlexG (ну и я его тоже предлагал в самом начале :) ) вполне

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

Ведь эти 100000 циклов чтения/записи фирма производитель гарантирует(для конкретной одной

ячейки ), а записывая каждый раз в новые ячейки мы расширяем этот диапазон. По крайней

мере способ "RTC+tiny2313+кандюк+диод" можно совместить со способом предложенным

AlexG , просто сохранять счетчик в EEPROM пореже, хотя бы для резерва :)

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

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


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

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

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


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

почти согласен с aahardsoft но делал чуть иначе:

Запись моточасов проводилась в RTC с интервалом 1 минута. При этом считалось CRC записи, или просто инверсия (не раз наверное видели в дампах щитков :) ). Для супер надежности можно сделать 2-й буфер, на случай вырубки питания в момент записи.

По выключению питания ничего не пишется, все действия производяться по включению.

1. даем выдержку для устаканивания питания, можно в этот момент LCD проинитить или еще что нибудь.

2. проверяем CRC записи, и если все OK переносим результат в EEPROM процессора.

3. Если CRC не совпало ни в одном буфере - переносим данные из EEPROM в RTC. Потеря время последней работы.

4. Если совсем все плохо, CRC не совпало нигде - общая ошибка ...

 

Ну а все остальное типа буфер в EEPROM на любителя :)

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


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

Сам хочу.

Пока на бумажке придумал следующее.

В ЕЕПРОМ организуем N ячеек по 4 байта. 3 байта - число и 1 байт CRC. Если число - время в минутах, то 3 байта хватит на 32 года.

Сначала ячейки инициализируются нулями с правильным CRC: убеждаемся что они записываются.

При включении питания ищем максимальное значение с правильным CRC: это наработанное время. Переписываем его в память, будем наращивать каждую минуту, вычисляя CRC.

В ЕЕПРОМе ищем верную запись с нулями+CRC. Запоминаем адрес: это место для записи счётчика. Если нету таковой, то пытаемся записать нули во все 4 байта. Получилось - ячейка рабочая.

При выключении (смотрим компаратором на напряжение ДО стабилизатора) быстренько переписываем счётчик в ячейку.

В качестве часов хочу использовать родной кварц-таймер-программный счётчик по прерыванию таймера с коррекцией каждые N и M*N интервалов. Точность получается хорошая.

 

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

 

Хочется услышать критику. :smile3046:

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


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

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

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

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

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

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

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

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

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

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