Будет ли проверка резервного напряжения на RTC разряжать его резервную батарею?

8

Я работаю над проектом ATMega, который будет держать время, и я пытаюсь сделать так, чтобы у вас была возможность выбора программных часов (на основе millis ()), DS1307 или DS3231 (ChronoDot).

Самое главное, что я хотел бы сделать - это иметь заголовки для ChronoDot, доступные для пайки, а затем каким-то образом программно определить, подключен ли ChronoDot и переключиться на его использование. Как правило, было бы достаточно легко проверить наличие DS1307 или DS3231, поскольку они используют один и тот же регистр I2C, но после этой первоначальной проверки они немного отличаются друг от друга, и у последнего есть больше функций. Поэтому я все еще хочу определить, с чем связано. В общем, я планирую иметь место непосредственно на плате для пайки в DS1307 в качестве опции по умолчанию, и поддержка DS3231 будет осуществляться с полным ChronoDot только через два 4-контактных разъема. ChronoDot, по существу, будет соответствовать тому месту, куда обычно направляется DS1307 (в этом случае он не будет заполнен). Основная причина, по которой я сосредотачиваюсь именно на ChronoDot, заключается в том, что он s популярный, легкий в приобретении и не требует пайки SMD для конечного пользователя (это если для набора). Итак, вот что я думаю ...

Оба DS1307 и DS3231 имеют линию Vbat на чипе, но это ни к чему не нужно. Тем не менее, ChronoDot имеет фактический контакт VBat на панели управления. Я мог бы подключить только Vbat из заголовка ChronoDot, а не DS1307, и подключить его к цифровому входному контакту на моей ATMega. Но нужно ли этот входной контакт подтянуть к земле резистором (не совсем понятно, какое значение ... может быть 4.7k?). Если моя теория ЭЭ верна, я могу прочитать этот вывод, и если я получу низкий уровень, то хронодот не будет, но если я получу высокий уровень, то он есть.

Что-то вроде этого:

схематический

смоделировать эту схему - схема, созданная с использованием CircuitLab

Мой главный вопрос здесь заключается в том, приведет ли это просто к разряду резервного аккумулятора на RTC? Обычно при резервном питании от сети, 5 В, ток не будет потребляться, но будет ли подключение к цифровому входу вызывать постоянное потребление энергии от батареи? Или есть режим, в который мне нужно было бы вставить пин-код после чтения с него, чтобы, так сказать, «отключить» его? Я знаю, что могу изменить его на выход, но я верю, что если он установлен как выходной и низкий, я бы в основном заземлил аккумулятор.

В любом случае, мои курсы ЭЭ были очень давно . Любая помощь по теории здесь будет оценена.

Адам Хейл
источник

Ответы:

8

Вы наверняка разрядите аккумулятор через резистор. Количество потребляемого тока будет зависеть от закона Ома: I = V / R. Допустим, напряжение на вашей батарее 3 В (т.е. обычный хронодот Vbat). С резистором 4,7 кОм вы будете непрерывно рисовать 3/4700 = 638 микроампер. Если вы сделаете это резистором 1 МОм, вы вместо этого нарисуете 3/1000000 = 3 микроампера. И если вы сделаете это резистором 10 МОм, вы вместо этого нарисуете 3 / 1e7 = 300 наноампер.

Чем больше значение резистора, которое вы выбираете, тем меньше будет ток, который вы будете потреблять непрерывно, но тем больше времени потребуется для перехода вашего цифрового вывода (представьте, что постоянная времени R * C определяется сопротивлением и емкостью выводов и трасс). До тех пор, пока вы достаточно долго ждете (или периодически проверяете) после запуска, у вас должно быть все в порядке с резистором 10 МОм. Теоретически, вы также можете усилить шум при большем значении (поскольку оно начинает все больше походить на разомкнутую цепь), но я думаю, что у вас все будет хорошо. Я мог бы даже рассмотреть возможность увеличения до 100 МОм.

Типичный CR1632 имеет 130 миллиампер-часов (мАч) энергии, хранящейся в нем, и, возможно, 80% от этого - полезный срок службы, поэтому давайте просто назовем его 100 мАч для простоты расчета. Грубая оценка срока службы вашей батареи составляет миллиампер-час / миллиампер.

  • С вашим резистором 4,7 кОм это 100 / .638 = 156 часов = 6,5 дней
  • С резистором 1 МОм это 100 / 0,003 = 33333 часа = 3,8 года
  • С резистором 10 МОм это 100 / 0,0003 = 333333 часа = 38 лет

Это верхние граничные числа, которые предполагают, что остальная часть вашей системы не потребляет энергии. Они представляют срок службы вашей системы, когда она выключена, а батарея просто разряжена через сопротивление. Есть также много эффектов второго порядка, которые не принимаются во внимание (падение напряжения, внутренняя утечка батареи и т. Д.). Резистор вряд ли будет вашей самой большой проблемой в зависимости от срока службы, который вы надеетесь достичь.

vicatcu
источник
Ду ... не могу поверить, что я не обратил внимания на тот факт, что я заземлял батарею напрямую: P Есть предложения по другому способу сделать это?
Адам Хейл
Я думаю, что ваш подход в порядке, учитывая достаточно большой резистор, ток утечки не окажет значительного влияния на время автономной работы, я добавлю немного математики.
Викачу
1
Upvote: Отвечая на главный вопрос. @AdamHaile метод, который вы можете найти полезным: цифровые вольтметры используют полевой транзистор, который представляет незначительный разрядный эквивалент резистора в порядках или МОм.
shimofuri
1
@ AdamHaile одна быстрая вещь ... Я заметил ваш комментарий, что ваша система 5V в другом комментарии. Обратите внимание, что пороговое значение вашего цифрового напряжения на входе достаточно высокое для регистрации с разряженной батареей (вероятно, примерно до 2 В для CR1632) - проверьте таблицу данных вашего микроконтроллера
vicatcu
1

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

Решение, таким образом, состоит в том, чтобы измерительная цепь потребляла ток только в течение коротких периодических интервалов, когда вы фактически выполняете измерение.

Для цифрового теста это может быть так же просто, как использовать внутреннее, настраиваемое программным способом раскрытие и только настраивать его как раскрытие в течение короткого периода времени, окружающего испытание. Однако вам нужно будет рассмотреть возможные осложнения наличия напряжения на выводе, когда MCU, выполняющий измерение, не включен / находится в режиме ожидания.

Аналоговое измерение будет сложнее, но могут быть применены аналогичные идеи. Например, вы можете подключить нижний резистор (высокого импеданса относительно входов / выходов) делителя напряжения к выходному контакту и подавать его на низкий уровень только в течение времени, окружающего измерение. Или вы могли бы даже создать RC-цепь с небольшим конденсатором с малой утечкой и одним выводом ввода / вывода, который вы могли бы подавать на низкий уровень в качестве выхода, а затем настроить в качестве аналогового входа и измерить напряжение через некоторое время. Если цифровое пороговое напряжение устройства является постоянным (следите за температурой!), Вы даже можете сделать аналоговое измерение с цифровым входом таким образом, измерив время, необходимое для зарядки конденсатора до порогового напряжения.

Крис Страттон
источник
Хммм ... Хотелось бы сделать внутреннюю опускание, но, к сожалению, есть только внутренние подтягивающие резисторы. Я могу пытаться усложнить вещи. Паяльная площадка, которая должна быть соединена для использования одного режима или другого, вероятно, будет приемлемой.
Адам Хейл
Вы можете сделать свой собственный программно-настраиваемый вывод с резистором на другой вывод ввода / вывода. Или вы можете использовать идею схемы RC-цепи, используя тот же вывод, который вы затем перенастроите в качестве входа для измерения.
Крис Страттон,
На самом деле, использование внутреннего раскрывающегося списка - очень плохая идея. Контакты ввода-вывода обычно подключаются к Vdd и GND с помощью диодов, чтобы предотвратить отклонение напряжения на контактах от напряжения питания. Когда микросхема не запитана, штырь будет в основном привязан к GND двумя параллельными диодами, а подача любого напряжения выше порогового напряжения диодов приведет к очень большому току. Лучшей идеей было бы использовать последовательный транзистор PMOS, затвор которого управляется транзистором NMOS на землю. Это минимизирует утечку, когда микроконтроллер не включен.
alex.forencich
1

DS3231 имеет внутреннюю температуру, которую вы можете прочитать. Вы можете выполнить команду через I2C для считывания температуры, если вы получили ответ, у вас есть DS3231, если нет, у вас есть DS1307.

Скотт Голдвейт
источник
1
Я не думаю, что это отвечает на вопрос в любом случае.
Шимофури
Я думаю, что это так. Адам в ОП хочет определить, подключен ли DS3231 или DS1307 к его цепи. Он думал о попытке сделать это с помощью булавки vbat. Я предлагаю ему сделать это, посмотрев, будет ли устройство возвращать температуру. Мне кажется, что это должно работать просто отлично.
Скотт Голдвейт
Я думаю, что это действительно решает вопрос: не вопрос, который был задан, а основную формулировку проблемы. Интересно. Это получило бы мое одобрение, если конкретизировать немного, и с добавленными ссылками.
Аниндо Гош
В листе данных Maxim см. Рис. 1 на стр. 11. Здесь показаны регистры (11 и 12) для внутренней температуры.
Скотт Голдвейт