Здравствуйте! Озаботился тут проблемой создания DIY-ноутбука на основе какой-нибудь платы с ARM-процессором. Решил пока потренироваться на том, что под рукой - Raspberry Pi 3.
Начать решил с самой сложной для меня, как достаточно далёкого от паяльника человека, темы - обеспечением работы Распбери от батарейки, с отображением индикатора батареи в строке меню Raspbian.
С первой частью данной проблемы справился легко, вроде бы... На просторах Алиэкспресс была найдена платка, которая обеспечивает заряд батареи одновременно с питанием нагрузки, есть опция Power Path, благодаря которой платка сама выбирает, откуда брать питание - с внешнего питания, если оно есть, или с батареи. Жду теперь приезда этой деталюшки.
А вот вторая часть проблемы меня вгоняет в ступор..... Отображение емкости и статуса батареи в строке меня в графическом интерфейсе Raspbian. Нужна платка так называемая Battery Fuel Gauge, как я понимаю, с интерфейсом I2C. Для максимальной переносимости хочется, чтобы чип этой платки был узнаваем для ядра Линукс и легко доступны к покупке платки, на его основе.
А вот просмотр Алиэкспресса разочаровал.... Вернее, просто голых чипов там много. А вот готовых плат - по сути, нет. Найдена была только одна - на чипе MAX17043 ( https://www.maximintegrated.com/en/products/power/battery-management/MAX17043.html ). Поиск в гугле показал, что, якобы, ядро Линукс с версии 2.2 знает эту плату....
А вот тепеь и будет вопрос, ради которого написана вся эта простыня..... Если я просто подключу эту плату по I2C к Raspberry, отобразится ли стандартным виджетом у меня состояние батареи? Или все-таки придется городить огород с написанием своего виджета? Или, может быть, кто-то знает иной путь отобразить заряд батареи? Гугл исчерпывающего мануала не принес ((( Заранее большое спасибо!
А что, все ацп на распбери чем-то заняты? Просто зацепить резистивный делитель напряжения аккума пополам, и на вход ацп. Наверняка и "виджеты" под это написаны давно. Но можно и сложным путём пойти, наверное. С портированием линуксовых драйверов и подключением ноутбучных контроллеров питания по i2c. Если это прям первый опыт общения с линуксовыми модулями ядра, raspberry и контроллерами питания - я бы не советовал, сложновато для начала... И смысла не вижу особо. Тем более, контроллер заряда батарейки уже куплен
А что, все ацп на распбери чем-то заняты? Просто зацепить резистивный делитель напряжения аккума пополам, и на вход ацп. Наверняка и "виджеты" под это написаны давно. Но можно и сложным путём пойти, наверное. С портированием линуксовых драйверов и подключением ноутбучных контроллеров питания по i2c. Если это прям первый опыт общения с линуксовыми модулями ядра, raspberry и контроллерами питания - я бы не советовал, сложновато для начала... И смысла не вижу особо. Тем более, контроллер заряда батарейки уже куплен
А я думал, что I2C как раз проще..... ))) А можно попросить ссылку на пример схемы? И вот прям интерфейс Raspbian, или там Ubuntu, вот так возьмет и покажет индикатор в панели меню? А как у всех ноутов происходит? Независимо от того, какой Линукс ставишь, какой оконный менеджер используешь - всегда в панели меню есть индикатор......
У raspberry pi нет аналоговых входов. Т.е. моё предложение не актуально - кол-во свободных ацп таки равно нулю. Я бы не начинал с попыток оживить ноутбучный контроллер, а использовал бы внешний ацп. Ссылка на пример (первый попавшийся в гугле, наверняка есть и другие) https://goddess-gate.com/projects/en/ra ... eckvoltage. «У ноутов» есть стандарт: http://smartbattery.org/specs/sbdat110.pdf, http://sbs-forum.org/specs/sbc110.pdf. Состояние батареи отдаёт контроллер, встроенный в батарею. Переключением питания с батареи на сетевой адаптер, процессом заряда батареи заведует контроллер питания. Оба управляются по i2c.
У raspberry pi нет аналоговых входов. Т.е. моё предложение не актуально - кол-во свободных ацп таки равно нулю. Я бы не начинал с попыток оживить ноутбучный контроллер, а использовал бы внешний ацп. Ссылка на пример (первый попавшийся в гугле, наверняка есть и другие) https://goddess-gate.com/projects/en/ra ... eckvoltage. «У ноутов» есть стандарт: http://smartbattery.org/specs/sbdat110.pdf, http://sbs-forum.org/specs/sbc110.pdf. Состояние батареи отдаёт контроллер, встроенный в батарею. Переключением питания с батареи на сетевой адаптер, процессом заряда батареи заведует контроллер питания. Оба управляются по i2c.
Так я и не пытаюсь оживлять ноутбучный контроллер, я пытаюсь сделать свой ))) Вот вы говорите, что в ноуте подсистема питания управляется по I2C, так я и хотел так.... Вот, смотрите, такую зарядку я взял: https://www.aliexpress.com/item/New-Arr ... 4c4dzFqakA
В итоге, сейчас, я запутался наглухо ))))) Давайте я скажу иначе - я скажу, что я хочу получить в итоге, а вы посоветуете, как этого проще достичь. Если еще будут ссылки, то вообще гуд. С Линуксом я хорошо, но сам написать модуль ядра не смогу, ибо С/С++ не знаю )))
Цель максимум - собрать ноут на ARM-платформе. Raspberry берется потому, что надо на чем-то тренироваться и он есть в наличии дома ))) Цель минимум - собрать подсистему питания этого ноута таким образом, чтобы, без танцев с бубном, графический менеджер в Линукс видел и отображал в строке меню состояние батареи. Без написания своих виджетов.
Прекрасная штука, но маломощная. Хочу свой ))) Вот какую бы я сборку на него не воткнул, из тех, что можно запустить - Ubuntu MATE, Armbian и пр., везде ПО ДЕФОЛТУ видна с троке меню батарейка, ее состояние. Вот как мне сделать так же?
В общем, прошу прощение за сумбурное дилетантское описание проблемы )))) Заранее большое спасибо!
В моём посте выше приведены ссылки на спецификаци протоколов общения с контроллером батареи и контроллером заряда. "Управляются по i2c" не значит, что операционная система управляет процессом заряда аккумулятора Данные считываются по i2c. Чтобы "ПО ДЕФОЛТУ видна в строке меню батарейка", нужно, чтобы "батарейка" была с контроллером, поддерживающим спецификации smart battery, и приобретённый Вами контроллер заряда поддерживал спецификации smart charger. Кажется, я это в третий раз пишу Купленный Вами ацп на MAX17043 предназначен для использования в планшетах/телефонах. Возможно, есть какие-то "костыли", чтобы отображать данные с этого ацп в качестве уровня заряда батареи в стандартном GUI, поищите. Я за минуту в гугле отыскал вот такое: https://github.com/Outurnate/i2c-battery. Не знаю, насколько оно работоспособно. В любом случае, купленный Вами контроллер будет заряжать батарею, и купленный Вами ацп можно использовать в качестве внешнего ацп для raspberry. Т.е. "не пропадёт" Смысла в Вашей борьбе, имхо, никакого - в итоге Вы получите компьютер с чуть большей частотой процессора и вдвое меньшим количеством оперативной памяти. Тупить всё будет так же, если не сильнее
Я понял, спасибо! Буду "курочить" ))) Насчет не имеет смысла - вы не совсем правы. Распбери чисто для теста - на кошках потренироваться. Сам ноут буду собирать вот на этом чудненьком микрокомпе: https://www.khadas.com/edge
Он мощный, для моих DevOps-надобностей самое оно, мне же не в игры на винде играть. Все линуксовые вещи в администрировании и девелопменте идет на ура. И все преимущества SoC на ARM - автономность, легкость и низкая стоимость владения. Ну и мейнлайн Линукс как бонус ))))
Будущий веб-программист? Фулстек? Курсы мейл.ру? upd: что-то я всё время забываю - веб-программист, фулстек - это вчерашний день же... Приложения для android? iOS?
Иронию оценил )))) Не, фулл-стек ну его. )) DevOps осваиваю, Dev-часть. В активе питон, ансибль, немаленькая куча сконфигурированных серваков - nginx, apache, прокси, почты, впн, контейнеры и ещё сотня умных слов ))) Администрирование уже много лет. Сейчас осваиваю вторую часть ))) Учу C/C++, изучаю CI/CD - Jenkins, Teamcity.....
А к платформе ARM и DIY-ноутбукам давно питаю слабость. Вот решил заняться )))) Ну интересно же, в конце концов )))
Кажется, я всё-таки понял, что вы до меня пытались донести.... Тут действительно дело в том, насколько чипы на платах будут соответствовать требованиям протокола Smart Battery. На будущее наметил себе несколько чипов. К сожалению, платок на их основе не нашел, придется или самому паять по схеме навесной монтаж "на коленке", или закапзывать кому-нибудь что-то более аккуратное... Хотел вас спросить - не попадались на глаза таблицы соответствия различных чипов нужному стандарту? И, особенно, батарей.... Что-то не могу найти ни одной смарт батареи на Али......
P.S. А с производителями списывался - в январе мамой клянуться отправить. Это не первая их модель, так что кредит доверия не исчерпан ))
прям отлегло сразу. А то этих "программистов" развелось, как за сауной старых веников. В моё время дети мечтали стать космонавтами и физиками-ядерщиками, чуть позже - бандитами и валютными проститутками. Потом юристами и экономистами, а теперь вот программистами, ....
Хотел вас спросить - не попадались на глаза таблицы соответствия различных чипов нужному стандарту? И, особенно, батарей.... Что-то не могу найти ни одной смарт батареи на Али......
что за таблица, я не понял. Очевидно, не попадалась Любая батарея для ноутбука, внезапно, имеет внутри контроллер, поддерживающий Smart Battery Есть на мелких МК (типа атмелов 8-ми битных) проекты, реализующие Smart Battery. Гуглить не пойду - дальше сам
Под таблицей я имел ввиду нечто, где написано, что чип зарядного устройства такой-то от такого-то производителя полностью соответствует стандарту Smart Battery Charger, чтоб уж точно нужный подобрать )))
И по батарее не так высказался.... Я имел ввиду недорогие плоские батареи, которых море на Али, вот среди них не нашел. Что любая ноутбучная батарея удовлетворяет стандарту я понимаю.... Ну буду гуглить дальше
По поводу железки - я держал в руках платы на Rockchip 3399, мне понравилось )))
а, такая таблица... эт можно: http://www.ti.com/power-management/batt ... p199=SMBus Большинство аккумуляторов "фирменных" ноутбуков, что я видел, сделано на этих контроллерах. upd: эти контроллеры современные, слишком навороченные. Их и купить непонятно, как. И прошивать неизвестно, чем. Точнее, понятно и известно, но очень это всё для промышленного производства с соответствующими бюджетами. ИМХО, проще всего в ближайшей мастерской по ремонту ноутбуков за пару пива забрать убитых аккумуляторов, прям чем старее, тем лучше. Там контроллеры попроще, в русских интернетах по запросу "контроллер аккумулятора сбросить" находятся схемы программаторов a-la "пять проводков" и софт, которым этим контроллерам правится eprom. Наверное, понадобится не один "дешёвый китайский" аккумулятор, а два - с одним просто не заработает контроллер. Ну, тем лучше - чтобы получить требуемые 5в не придётся ставить повышающий преобразователь.
Верно. Если нужно, чтобы ОС показывала состояние питания "от сети", "от батареи". Эти контроллеры в свободном доступе и программировать их не надо.
Ага..... Тогда, у меня, наверное, осталось понять заключительный этап. А сколько частей должно быть в системе? )) Давайте, я перечислю, а вы, если что, поправите:
1. Чарджер с SMBus. 2. Battery Fuel Gauge с SMBus (получается, что у того же Texas нет ни одного чарджера с SMBus, куда бы был интегрирован измеритель) 3. Какой-то непонятный контроллер для батареи, который "непосредственно на нее устанавливается", ну как у ноутов - батарея в сплошном корпусе с этим контроллером (и вот тут я немного растерялся, не знаю, где это на сайте Texas. В разделе Battery Management остались три подраздела - Battery protectors, Battery authentication ICs и Battery monitors & balancers. Вот этот контроллер батареи - он куда относится?). Я помню, что вы говорили, что с ними не очень понятно и проще взять от сломанного. Но это уже так, для окончательного прояснения. Чтобы знать все детали )) 4. Любая литий-ионная/полимерная батарея (??)
2. Battery Fuel Gauge с SMBus = 3. Какой-то непонятный контроллер для батареи именно по этому нет ни одного чарджера, куда был бы интегрирован измеритель. Немного расскажу, почему: батарейка не является константой. Даже две нулёвые батареи могут иметь различную ёмкость. В течение срока эксплуатации у батареи меняется (уменьшается) ёмкость. Контроллер батареи знает, сколько мА/ч может отдать батарейка (приблизительно). Это знание основывается на постоянной "перекалибровке" - разрядили батарею "в 0", зарядили на 100% - контроллер посчитал, сколько мА/ч ушло в батарею. Отключили зарядник, разрядили батарею "в 0" опять - контроллер посчитал, сколько мА/ч отдала батарея. При этом контроллер запоминает кучу "промежуточных" точек, типа, "при напряжении на аккумуляторе 3,7 В было отдано 2547 мА/ч", и на основании этого ОС может показывать заряд "в процентах", и оставшееся время работы от батареи (или оставшееся время зарядки до 100%). Если ёмкость батареи становится слишком маленькой, или кол-во циклов "заряд-разряд" достигает значения, которое производитель батареи считает максимальным, контроллер "пережигает" перемычку-предохранитель в аккумуляторе, т.к. дальнейшая эксплуатация батареи опасна.
upd: эти контроллеры современные, слишком навороченные. Их и купить непонятно, как. И прошивать неизвестно, чем. Точнее, понятно и известно, но очень это всё для промышленного производства с соответствующими бюджетами. ИМХО, проще всего в ближайшей мастерской по ремонту ноутбуков за пару пива забрать убитых аккумуляторов, прям чем старее, тем лучше. Там контроллеры попроще, в русских интернетах по запросу "контроллер аккумулятора сбросить" находятся схемы программаторов a-la "пять проводков" и софт, которым этим контроллерам правится eprom. Наверное, понадобится не один "дешёвый китайский" аккумулятор, а два - с одним просто не заработает контроллер. Ну, тем лучше - чтобы получить требуемые 5в не придётся ставить повышающий преобразователь.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения