Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ti bq40z60
Форум разработчиков электроники ELECTRONIX.ru > Силовая Электроника - Power Electronics > Первичные и Вторичные Химические Источники Питания
taoga
Здраствуйте!

Имеется bq40z60evm "http://www.ti.com/product/bq40z60?keyMatch=bq40z60&tisearch=Search-EN-Everything" - полный менеджер батареи(батарей): зарядка, защита, контроль состояния. Для связи есть smbus.
Зарядил от нее 3S2P сборку батарей типоразмера 18650. Запитал SBC. С помощью ПО bqstudio можно контролировать,
и изменять параметры микросхемы bq40z60, они сохраняются во флэш. Здесь вопросов почти нет.

Далее мне нужно контролировать bq40z60 из Linux(ubuntu 14.04 linaro с lxde). На борде есть i2c, подсоединяю и нечего не вижу.
i2cdetect не видит адресов bq40z60. Т.е. bq40z60 отсоединено или подсоединено, вывод i2cdetect остается одним и тем же.


Нажмите для просмотра прикрепленного файла


От bq40z60 и Linux мне нужно несколько вещей:
1) Переходить в спящий режим (из bqstudio это команда shutdown );
2) Просыпаться из спящего режима;
3) Отображать индикатор состояния батареи;
4) Отображать текущий источник питания( батарея или сетевой адаптер);

Кто нибудь имел дело с smbus в linux?
Как настроить это в Linux, подскажите куда копать?
Herz
Верно ли Вы выбрали раздел? Ведь к источникам питания проблемы с шиной и ОС отношения не имеют.
taoga
Цитата(Herz @ Sep 16 2015, 10:48) *
Верно ли Вы выбрали раздел? Ведь к источникам питания проблемы с шиной и ОС отношения не имеют.

Здесь комплексная проблема. bq40z60 это менеджер батареи. Я понимаю, что ОС через i2c должна увидеть адреса bq40z60. Смогу послать какие-то команды по I2C. В конце концов написать драйвер. И состыковать его с какой-то библиотекой которая отвечает за питание в Linux. Но может быть есть путь проще. И хорошо если бы подсказали конкретику вместо слова "какие-то" в вопросах. На E2E TI мое сообщение перекинули из ветки Linux в ветку менеджеров питания и ответов пока нет.
drum1987
Цитата(taoga @ Sep 16 2015, 15:53) *
Здесь комплексная проблема. bq40z60 это менеджер батареи. Я понимаю, что ОС через i2c должна увидеть адреса bq40z60. Смогу послать какие-то команды по I2C. В конце концов написать драйвер. И состыковать его с какой-то библиотекой которая отвечает за питание в Linux. Но может быть есть путь проще. И хорошо если бы подсказали конкретику вместо слова "какие-то" в вопросах. На E2E TI мое сообщение перекинули из ветки Linux в ветку менеджеров питания и ответов пока нет.

У i2c и SMBus совпадает ровно две команды «Send Byte» и «Receive Byte» более подробно можете почитать http://www.scanti.ru/bulleten.php?v=111&p=14
bq40z60 засыпает по истечение некоторого времени при молчании на шине(время настраивается в bqStudio) выводит из сна ее подключение внешнего ЗУ/или (точно не помню) команда по шине.
РЭМ
Вам нужно добиться ACK от микросхемы по I2C. Адрес у bq40z60 0x16, что соответствует адресу для всех устройств типа Smart Battery (из спецификации I2C).
В зависимости от реализации драйвера может потребоваться сдвинуть адрес на 1 бит вправо.
При посылке адреса проверьте что твориться на линии с помощью осциллографа. Возможна ситуация, когда микросхема при ответе не может утянуть линию вниз до нужного уровня нуля.
Это значит что скорее всего задан слишком большой ток подтяжки, нужен не более 350мкА.
Есть хороший документ, гуглится как Smbus made simple.
По поводу дальнейшего общения с микросхемой посмотрите пдфку slua743.pdf и поищите на форуме e2e в существующих темах.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.