Если смотрели еррату на imx233 - там добрая половина связана с управлением питанием, в ОС они это програмно обходят, это похоже просто одно из таких мест.
C новым конфигом зарядка включается автоматически.
Переходы все осуществляются нормально.
Но батарею нельзя отключать. Иначе система информирует об
неисправной батарее и зарядку не включает больше.
На первый взгляд конфиг почти полностью идентичный моему. Но разница какая-то есть. Пока не увидел
Хочу посмотреть что драйвер зарядки сделает, когда батарея зарядится полностью. На данный момент зарядный реальный измеренный ток составляет ~300mA. i.mx233 слегка теплый.
это конечно странно - при этом переключение на батарею без проблем происходит. Можно исходники поизучать - найти сообщения из того места когда батарея отключается и посмотреть какое состояние там сохраняется и почему зарядка больше включается и если не противоречит еррате изменить. Мне честно говоря неохота с этим ковыряться, да и смысла особого не вижу "на горячую" аккумулятор менять.
Более интересная тема - как снизить энергопотребление при работе с аккумулятора.
Для моего приложения это очень актуально.
Например, если есть внешнее питание, то работаем в Linux на полную мощность.
Если переключились на аккумулятор, то есть идея перезагрузиться в stand-alone.
При перезагрузке в power_prep выключить все что можно и выполнять простое
stand-alone приложение. Периодически (1 раз в час) загружать Linux и
передавать всю накопленную информацию на удаленный сервер.
Если появится внешнее питание ( или случилось какое-то важное событие),
то опять грузим Linux.
Другими словами, нужен SLEEP режим с периодическим просыпанием.
Интересно на какое энергопотребление можно рассчитывать в таком случае?
Второй вариант - это suspend режим Линукс. Но есть сомнения, что из этого что-то получиться толковое. IMHO, очень просто застрять в дебрях Linux и не получить желаемый результат.
Думаю смысла нет из Linux выходить - смотрите в menuconfig
CPU Power Management --->
Power management options --->
Политику энергосбережения измените там - сейчас максимальная произодительность. suspend to ram я как-то давно пробовал но только на at91sam9260, тут думаю тоже должно взлететь - нужно просто экспериментировать. Там для просыпания нужно внешнее событие - типа gpio дрыгнуть или помоему от usb можно было, надо посмотреть - можно ли например от таймера просыпаться. Собственно "изюминка" imx233 как в его энергосберегающих функциях, да и вообще камень замечательный - emac бы ему встроенный еще :)
Да, буду экспериментировать. Не выходить из Linux идеальный вариант.
Сейчас смотрю на документ i.MX233 for Consumer Applications
На 17-й странице пишут
Очень обнадеживающе. 2mA вполне устраивает.
Можно добиться прилизительное потребление в suspend?
Надо выгружать DDR содержимое на диск в этом режиме ?
совсем простой вариант - отправить его спать кнопкой power, можно програмно
echo mem > /sys/power/state
как просыпаться - надо почитать :) я не помню как делал на атмеле.
нет - он все в RAM сгружает (если что-то нужно кроме содержимого рамы на данный момент), выключает все и переводит DDR в self refresh, просыпается от прерываний которые остаются активны, тактируется в этом состоянии не помню отчего - надо смотреть в даташите, по идее 32 кГц от часового кварца - или внутренний генератор у него есть - не помню.