Для поддержания часов реального времени (насколько я понял, они встроены в сам процессор) поставил на iMX6S-MB батарейку CR1225. Плату включал не сказать чтобы очень часто - в среднем 1 час в сутки, если не меньше. Батарейка держала часы пару месяцев и сдохла. Хотелось бы узнать, у кого какой есть опыт использования. Может можно какие-то дополнительные меры принять для поддержания часов при длительном выключении прибора.
я поставил внешний rtc, хотя цепь коммутации для батарейки оставил - возможно буду исследовать вопрос, когда решительно больше нечем будет заняться..
по поводу потребления от батарейки - тут это обсуждалось, почитайте..
Купил новую батарейку, подпаял на плату проводки и померил потребление: на выключенной плате около 70 мкА. В документе IMX6SDLCEC.pdf в разделе 4.5.2 OSC32K:
The 4 mkA is the consumption of the oscillator alone (OSC32k). Total supply consumption will depend on what the digital portion of the RTC consumes.
The ring oscillator consumes 1 mkA when ring oscillator is inactive, 20 mkA
when the ring oscillator is running. Another 1.5 mkA is drawn from vdd_rtc
in the power_detect block. So, the total current is 6.5 mkA on vdd_rtc when
the ring oscillator is not running.
Т.е. получается по нормальному должно быть 6,5 мкА, в худшем случае при запущенном ring oscillator под 30 мкА, с измеренным не совсем сходится. Хотя, возможно, это погрешность прибора, использовал китайский M890G на шкале 2 мА.
Если идти расчетным методом исходя из того, что продержала батарейка 2 месяца, то получается:
48 мАч / (24ч * 60 дн) = 33 мкА. Учитывая, что дату установки батареи точно не помню, похоже на то, что указано в документации при работающем ring oscillator. А в чем его функция и можно ли его отключить для сбережения батареи?
Часы я отключать как раз не хочу. Наоборот, именно для них я батарейку и поставил. Хотелось бы отключить ring oscillator, который, судя по IMX6SDLCEC, используется при отсутствии внешнего осциллятора. Внешний кварц на модуле стоит, но ring oscillator, судя по результатам, ток от батарейки все-таки потребляет.
А вот про это можно поподробнее? Если я просто не буду ставить батарейку на модуль, а реальное время будет выставляться при запуске моей программы из внешнего RTC, что в такой конфигурации может не понравиться линуксу?
Не факт что потребляет ring oscillator - он должен автоматически отключаться когда есть внешний клок и регистров которыми можно было бы принудительно отключить я не нашел.
По-моему проблема тут решается проще - нужно ставить перезаряжаемую батарейку, убирать диод с VBAT чтобы шла подзарядка и ставить вместо него резистор для ограничения зарядного тока
Мысль верная, но в точности так тоже нельзя, т.к. в выключенном состоянии батарейка через резистор будет разряжаться на внутреннем сопротивлении стабилизатора.
Лучше так:
1) оставить диод VD2 как есть (BAT54С), а лучше заменить на аналогичный вариант с меньшим током утечки (у BAT54C - 2мкА, в контексте обсуждения тоже не малая величина)
2) к заряжаемой батарейке подключить 3,3В через диод (тоже с малым током утечки) и резистор
Ну да, никелевый сдохнет или в первый год (в силу особенностей эксплуатации прибор не будет включаться полгода), либо на следующий год. А с литиевым просто резистором для заряда не обойдешься.
Решили использовать RTC от микроконтроллера STM32, который будет все равно стоять рядышком в связке с данным модулем и крутить задачу реального времени. У него потребление от батарейки при выключении меньше 2 мкА.
А вопрос использования аккумулятора хотелось бы обсудить отдельно, начал в теме http://starterkit.ru/html/index.php?name=forum&op=view&id=22972.