|
|
  |
Определение времени жизни батареи |
|
|
Guest_@Ark_*
|
Aug 16 2011, 18:43
|
Guests

|
Цитата А кто сказал , что там литиевая - ? А кто сказал, что не литиевая?  Очень даже вероятно... Впрочем, это уже оффтоп и гадание на кофейной гуще... Всего хорошего!
|
|
|
|
|
Aug 17 2011, 06:07
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(zltigo @ Aug 16 2011, 23:19)  Вообще-то просто с достаточной для практической точности периодичностью (минуты..часы) писать в ту-же энергонезависимую память RTC или будильик текущее время. Оно + 1/2 периода записи и будет "временем пропадания питания". И без всяких "городить". Не факт, что запись времени в будильник или в память RTCC является атомарной операцией, а без обеспечения целостности сохраненного значения текущего времени предложенный способ никуда не годится. Для обеспечения атомарности в любом случае придется городить огород, не один, так другой. Вместо того, чтобы записывать текущее время, можно один раз запомнить время подключения батареи (еще на заводе, до отгрузки пользователю) и при помощи обычного счетчика в программе считать суммарное время работы, когда питание наличествует. Тогда в любой момент времени, вычтя из текущего времени время подключения батареи и суммарное время работы можно вычислить, сколько времени устройство находилось без питания и расходовало батарейку. Естественно, суммарное время работы тоже придется сохранять в энергонезависимой памяти и заботиться о целостности сохраненных данных. Для этого правильнее всего использовать детектор пропадания питания и обеспечить небольшой запас времени от момента обнаружения пропадания питания до момента появления сигнала сброса. Помимо сохранения нужных данных в энергонезависимой памяти, за этот промежуток можно также привести выходы в нужное состояние, и т.п.
|
|
|
|
|
Aug 17 2011, 07:08
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(=AK= @ Aug 17 2011, 10:07)  Не факт, ........ выходы в нужное состояние, и т.п. Что-то не так . Счётчик считает киловат/час. Даже , есди батарейку установить на заводе, то пока счётчик валяется по складам - ей может наступить ёк. Цитата детектор пропадания питания - в AVR для этого есть цельный регистр. Поэтому проверить причину сброса - элементарно. А зная время текущее и последнее записанное в память - вычислить время работы RTC от батарейки , не сложно. Но в них предусмотен "Журнал состояния сети" , куда заностся и это Отключения или включения счетчика (пропадание и восстановление питания) . А судя по единицам измерения (количество месяцев) - (+/-) киллометр всех вполне устраивает. По всевозможным докам на этот счётчик - его инит производится при его установки на места его работы.(вплоть до тарифов в праздничные дни) Что умным людям сможет помочь в значительной "экономии" электороэнергии при установке дома этого счётчика. В СE102 S6 используется holtek (впервые слышу), зато в в S7 и прочих pic18f6490 и pic18f65j90
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Aug 17 2011, 09:07
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (=AK= @ Aug 17 2011, 08:07)  Не факт, что запись времени в будильник или в память RTCC является атомарной операцией, а без обеспечения целостности сохраненного значения текущего времени предложенный способ никуда не годится. Для обеспечения атомарности в любом случае придется городить огород, не один, так другой. Вы собственно о какой проблеме связанной с не атомарностью волнуетесь? О том, например, что при записи времени раз в час и продолжительности этой процедуры несколько тактов как раз во время этих тактов пропадет питание? Это действительно ужасно  и "никуда не годится" (посчитайте вероятность ) потеряем, например, сутки, это если имеет место быть неатомарность, что для встроенных RTC уже далеко не всегда. QUOTE Вместо того, чтобы записывать текущее время Я рад, что Вы поняли всю бесполезность СВОЕГО предложения: QUOTE Соответственно, надо запоминать время пропадания питания и при появлении питания вычислять, сколько времени RTCC питался от батарейки. Некоторые RTCC запоминают время пропадания питания, с ними жить легче. А если используется RTCC, в котором этой фичи нет, то придется городить детектор пропадания питания и схемку, поддерживающую при пропаданиях питание процу до тех пор, пока он не слазит в RTCC и не запомнит время пропадания в энергонезависимой памяти для решения поставленной Автором задачи.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 17 2011, 10:00
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(ILYAUL @ Aug 17 2011, 16:38)  - в AVR для этого есть цельный регистр. Поэтому проверить причину сброса - элементарно. Задним числом (после восстановления питания) узнавать, почему пропадало питание - в данном контексте бессмысленно. Речь о том, чтобы узнать о пропадании питания немедленно, за некоторое время того, как brown-out reset или супервизор питания выработают сигнал сброса. Цитата(ILYAUL @ Aug 17 2011, 16:38)  А зная время текущее и последнее записанное в память Текущее время узнать не проблема. А вот гарантировать, что последнее записанное в память время - не испорчено, это требует определенных усилий, просто так это не получится. Если где-то в середине процедуры записи появится сигнал сброса, то часть времени будет "новым", а оставшаяся часть - останется старой. Именно об этом я говорил ранее, об атомарности записи. Цитата(zltigo @ Aug 17 2011, 18:37)  посчитайте вероятность Конечно, даже если по недоумию не сообразить, что проблема существует, то после того, как ткнули в нее носом, все равно можно можно с бравым видом не брать ее в голову, надеясь "на авось", поскольку вероятность порчи этой записи невелика. Для тех, кто по жизни привык ляпать жалкую халтуру, такая надежда "на авось" вполне естественна - это обычный ламерско-радиолюбительский подход. Я же, будучи инженером, а не радиолюбителем, стараюсь делать добротные и надежные изделия, из которых по возможности стараюсь изгнать эти "авось".
|
|
|
|
|
Aug 17 2011, 10:24
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(=AK= @ Aug 17 2011, 14:00)  Текущее время узнать не проблема. А вот гарантировать, что последнее записанное в память время - не испорчено, это требует определенных усилий, просто так это не получится. Если где-то в середине процедуры записи появится сигнал сброса, то часть времени будет "новым", а оставшаяся часть - останется старой. Именно об этом я говорил ранее, об атомарности записи. Да наплевать - ещё раз обращаю Ваше внимание на единицы измерения - МЕСЯЦЫ И кстати в послед. модификациях вообще компаратор используют
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Aug 17 2011, 10:32
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (=AK= @ Aug 17 2011, 12:00)  Конечно, даже если по недоумию не сообразить, что проблема существует Проблема НЕ существует, даже после поминания ПОСТФАКТУМ ПРИТЯНУТОЙ ЗА УШИ ВАМИ возможного существования неатомарного доступа. Для существования проблемы даже после изменения Вами правил игры, нужно просто оценить вероятность и последствия некоего события. Не следует аппаратно бороться с вероятностями уровня вероятности падения тунгусского метеорита на Ваше изделие, если они приводят к ничтожным последствиям типа увеличения погрешности измерения времени жизни батареи, которое и так более, чем оценочное. QUOTE Я же, будучи инженером, а не радиолюбителем, стараюсь делать добротные и надежные изделия, из которых по возможности стараюсь изгнать эти "авось". Только получаются, как я вижу, лобовые, бездумные и избыточные, в том числе и по аппаратуре, "решения". Причем оценивать вероятности надежной работы вот такого: QUOTE использовать детектор пропадания питания и обеспечить небольшой запас времени от момента обнаружения пропадания питания до момента появления сигнала сброса "инженеру" западло  . Нагородим такую хреновину, а там уж как ее проверят на производстве, как все это железо будет стареть, как там в реале обеспечится "небольшой запас времени" это нам уже по барабану - мы уже не думая "пальму потрясли" и умыли руки.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 17 2011, 11:00
|
Местный
  
Группа: Участник
Сообщений: 206
Регистрация: 23-12-06
Из: Старых Васюков
Пользователь №: 23 821

|
Цитата(@Ark @ Aug 16 2011, 22:21)  Попробуйте с помощью АЦП определить степень разряда литиевой батарейки с точностью хотя бы 10%. Если получится - научите нас потом, как это делается.  Так ведь есть же разрядные характеристики. Градусы, Вольты, часы, пульсы... Если 2 Вольта (или те же "N<=86"), то всё. Однако, ресурс в 143 месяца, это да... Или эмир, или ишак...
Сообщение отредактировал Mike18 - Aug 17 2011, 14:14
--------------------
Время - материя тонкая и неточная...
|
|
|
|
|
Aug 18 2011, 11:48
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213

|
Ох, и разрослась тема, пока я отсутствовал. Я то думал, что вопрос простой и я просто упустил из виду появление на рынке "умных" батарей, которые умеют оценивать собственный заряд и расход и сообщать об этом по запросу. А оказывается, что скорее всего это некий приблизительный расчет "пальцем в небо" конкретного производителя!!! Может вскрыть счетчик и посмотреть, что там внутри!? Пломбу жалко!!!
|
|
|
|
|
Aug 18 2011, 13:27
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(zltigo @ Aug 17 2011, 20:02)  Не следует аппаратно бороться с вероятностями уровня вероятности падения тунгусского метеорита на Ваше изделие, если они приводят к ничтожным последствиям типа увеличения погрешности измерения времени жизни батареи, которое и так более, чем оценочное. Вы мне живо напоминаете персонажа Вовку из мультфильма "Вовка в тридевятом царстве", у него была точно такая же жизненная позиция: "подумаешь, и так сойдет!" Здесь срежете угол, там на соплях сделаете, и т.д. - и рано или поздно какое-то из ваших изделий изделие "выстрелит". Конечно, вряд ли дойдет до масштабов Чернобыля, вероятность мала. Вспоминаю убийственную характеристику отечественной бытовой аппаратуры, которую слышал от пользователей: "Выглядит как настоящая, но включаешь - не работает". Тоже ведь был коллективный плод усилий таких же недоделкиных, любителей считать вероятности и базарить в курилках. Недоделок - это недоумок-практик. Цитата(zltigo @ Aug 17 2011, 20:02)  Нагородим такую хреновину, а там уж как ее проверят на производстве, как все это железо будет стареть, как там в реале обеспечится "небольшой запас времени" это нам уже по барабану - мы уже не думая "пальму потрясли" и умыли руки. А, так вы даже этого не знаете - как обеспечивается этот запас времени... При помощи конденсатора в питании. Требуемая величина емкости рассчитывается, реальная величина выбирается с запасом, с учетом разброса параметров и возможного старения. Решение проверяется на этапе разработки, после чего производстве ее как таковую как правило проверять не требуется, хотя при желании наличие и величина этого запаса легко проверяется тестами.
|
|
|
|
Guest_@Ark_*
|
Aug 18 2011, 17:28
|
Guests

|
Цитата (=AK= @ Aug 17 2011, 12:00)... Для этого правильнее всего использовать детектор пропадания питания и обеспечить небольшой запас времени от момента обнаружения пропадания питания до момента появления сигнала сброса. Помимо сохранения нужных данных в энергонезависимой памяти, за этот промежуток можно также привести выходы в нужное состояние, и т.п. А Вы не допускаете, что такая "спешная" запись данных на падающем питании может завершиться неудачно? Гарантировать 100%-й успех записи невозможно. А повторить операцию несколько раз или как-то иначе обработать аварийную ситуацию - может просто не остаться времени. Самое скверное, что при последующем старте вы можете так и не установить, чем завершились все эти манипуляции на "агонирующем" питании. И на сколько можно доверять последним записанным значениям - то ли они действительно последние, то ли последние так и не удалось записать из-за каких-то проблем... Поэтому говорить о какой-то исключительной "надежности и добротности" подобных решений не приходится. Скорее наоборот - где-то на грани технического авантюризма...
Сообщение отредактировал @Ark - Aug 18 2011, 17:32
|
|
|
|
|
Aug 18 2011, 18:00
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(@Ark @ Aug 18 2011, 21:28)  А Вы не допускаете, что такая "спешная" запись данных на падающем питании может завершиться неудачно? Гарантировать 100%-й успех записи невозможно. ...Поэтому говорить о какой-то исключительной "надежности и добротности" подобных решений не приходится. Скорее наоборот - где-то на грани технического авантюризма... В дополнение к выше сказаному: По-этому поводу была целая тема, на этом форуме, о китайском фонарике, где пол форума пыталось записать в Eeprom данные в момент выключения питания и проводилось уйма экспериментов записи - чтения . Если не изменяет память , там тема на страниц ~30-40 , а может и больше . =AK= - посмотрите
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|