Общение с батареями от ноутбука.

sfs
Offline
Зарегистрирован: 05.07.2021
void info() {
  ReadSMB(byte(0x18)); Serial.print(F("DesignCapacity: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mAh");
  ReadSMB(byte(0x10)); Serial.print(F("FullChargeCapacity: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mAh");
  ReadSMB(byte(0x17)); Serial.print(F("CycleCount: ")); Serial.println(buff[1]*256+buff[0]);
  ReadSMB(byte(0x1B)); Serial.print(F("Date: ")); Serial.print(1980+(buff[1]>>1)); Serial.print("."); Serial.print(((buff[1]&0b00000001)<<3)+(buff[0]>>5));Serial.print("."); Serial.println(buff[0]&0b00011111);
  ReadSMB(byte(0x19)); Serial.print(F("DesignVoltage: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadBlockSMB(0x20); Serial.print(F("ManufName: ")); printBlock();
  ReadBlockSMB(0x21); Serial.print(F("DeviceName: ")); printBlock(); 
  ReadSMB(byte(0x1C)); Serial.print(F("SerialNumber: ")); printHEX(buff[1]); printHEX(buff[0]); Serial.println(" Hex");
  ReadSMB(byte(0x14)); Serial.print(F("ChargingCurrent: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mA");
  ReadSMB(byte(0x15)); Serial.print(F("ChargingVoltage: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadBlockSMB(0x22); Serial.print(F("DeviceChemistry: ")); printBlock(); 
  ReadSMB(byte(0x08)); Serial.print(F("Temperature: ")); Serial.print(float(buff[1]*256+buff[0])/10-273); Serial.println(" C");
  ReadSMB(byte(0x09)); Serial.print(F("Voltage: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadSMB(byte(0x0A)); Serial.print(F("Current: ")); Serial.print(int(buff[1]*256+buff[0])); Serial.println(" mA");
  ReadSMB(byte(0x0D)); Serial.print(F("RelativeSOC: ")); Serial.print(buff[0]); Serial.println(" %");
  ReadSMB(byte(0x0E)); Serial.print(F("AbsoluteSOC: ")); Serial.print(buff[0]); Serial.println(" %");
  ReadSMB(byte(0x0F)); Serial.print(F("RemainingCapacity: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mAh");
  ReadSMB(byte(0x3C)); Serial.print(F("VCELL4: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadSMB(byte(0x3D)); Serial.print(F("VCELL3: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadSMB(byte(0x3E)); Serial.print(F("VCELL2: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadSMB(byte(0x3F)); Serial.print(F("VCELL1: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadSMB(byte(0x1A)); Serial.print(F("SpecificationInfo: ")); printHEX(buff[1]); printHEX(buff[0]); Serial.println(" Hex");
  ReadSMB(byte(0x16)); Serial.print(F("Battery Status: ")); printHEX(buff[1]); printHEX(buff[0]); Serial.println(" Hex");
  if (buff[1]&0b10000000) Serial.print("OCA|");
  if (buff[1]&0b01000000) Serial.print("TCA|");
  if (buff[1]&0b00010000) Serial.print("OTA|");
  if (buff[1]&0b00001000) Serial.print("TDA|");
  if (buff[1]&0b00000010) Serial.print("RCA|");
  if (buff[1]&0b00000001) Serial.print("RTA|");
  if (buff[0]&0b10000000) Serial.print("INIT|");
  if (buff[0]&0b01000000) Serial.print("DSG|");
  if (buff[0]&0b00100000) Serial.print("FC|");
  if (buff[0]&0b00010000) Serial.print("FD|");
  if (buff[0]&0b00001000) Serial.print("EC3|");
  if (buff[0]&0b00000100) Serial.print("EC2|");
  if (buff[0]&0b00000010) Serial.print("EC1|");
  if (buff[0]&0b00000001) Serial.print("EC0|");
  Serial.println();
  ReadBlockSMB(0x54); Serial.print(F("Operation Status: ")); printHEX(buff[3]); printHEX(buff[2]); printHEX(buff[1]); printHEX(buff[0]); Serial.println(" Hex");
  if (buff[1]&0b10000000) Serial.print("PRES|");
  if (buff[1]&0b01000000) Serial.print("FAS|");
  if (buff[1]&0b00100000) Serial.print("SS|");
  if (buff[1]&0b00010000) Serial.print("CSV|");
  if (buff[1]&0b00000100) Serial.print("LDMD|");
  if (buff[0]&0b10000000) Serial.print("WAKE|");
  if (buff[0]&0b01000000) Serial.print("DSG|");
  if (buff[0]&0b00100000) Serial.print("XDSG|");
  if (buff[0]&0b00010000) Serial.print("XDSGI|");
  if (buff[0]&0b00000100) Serial.print("R_DIS|");
  if (buff[0]&0b00000010) Serial.print("VOK|");
  if (buff[0]&0b00000001) Serial.print("QEN|");
  Serial.println();
Komandir
Offline
Зарегистрирован: 18.08.2018

Судя по 90 странице в Sealled режиме 0x54 считать НЕЛЬЗЯ - N/A

Видимо именно это и происходит.

sfs
Offline
Зарегистрирован: 05.07.2021

Вот я тоже так и предполагал, но теплилась надежда, что есть какие-то нюансы с кодом. Жаль, значит контроллер в мусор, банки - на повербанк. 

Спасибо за помощь и потраченное время!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

у меня маркировка на разъёме батареи - p- p- ALERT SYS BATT DAT CLK p+ p+
к каким выводам подключать? контроллер bq20857DBT
батарея от DELL

PS а что там за термодатчик

 

Komandir
Offline
Зарегистрирован: 18.08.2018

p- dat clk

имхо - кроме основной информации ничего не прочитается...

Geluk
Offline
Зарегистрирован: 14.09.2021

Недавно пришлось поковырять акб, срочно надо сделать, она на bq20z955. Акб от Асеr AP13B8K, была одна банка в кз заменил, для проверки на другую, напругу подогнал. Чип считал с помощью нежадной BE2. Видимо пароль стандартный, но чип залочен. Писать прога его пишет. На этом в данный момент остановился. Нужна помощь в сбросе, вопрос можете снять в дампе биты защиты и установить емкость, его сбросить? Вот дамп. https://dropmefiles.com/0HdFH

Komandir
Offline
Зарегистрирован: 18.08.2018

Стандартные пароли у вас:

Komandir
Offline
Зарегистрирован: 18.08.2018

Через скетч не запускается ???

Geluk
Offline
Зарегистрирован: 14.09.2021

Через скетч нужен ардуино, я его как раз ищу. Не помню где я его положил. Потому для меня проблема его сделать. По паролям я не знаю или стандартный, мне удалось его вычитать через BE2, потому подумал что он стандартный. Я не очень сильно углублялся в данные вопросы так как батареи эти не часто делаю. Поэтому возник вопрос можно ли подправить вручную. Если бы ардуино был под рукой я бы сразу попробовал.

Geluk
Offline
Зарегистрирован: 14.09.2021

Нашел у себя wemos XI, пробую, скетч загрузило, данные батареи считало. Пункты 1-7 проходят 8 не идет, 9-й проходит, емкость поменяло правда мне надо 3510мА, я его поправил, теперь поменяло, дату изменило, циклы сбросило в 0, но статусы флагов не сбросило. Еще не удалось считать дамп программы, то же в ошибку выпадает. Eeprom еще не пробовал читать.  https://sxema.com.ua/p798454258-arduino-nano-wemos.html?source=merchant_center&gclid=Cj0KCQjws4aKBhDPARIsAIWH0JUQEf9RB-mQvqNhA1U6SPn3BDr7IsCBoPSUQXsDULSkGbN3tpm2zDYaAurBEALw_wcB

Komandir
Offline
Зарегистрирован: 18.08.2018

Geluk http://arduino.ru/forum/proekty/obshchenie-s-batareyami-ot-noutbuka#comment-599155

там указан порядок выполнения операций

после этого батарей должна начать работать, если физически исправна !

Geluk
Offline
Зарегистрирован: 14.09.2021

Не получается как-то не так работает. Ардуино часто затирает модель и номер. Из за этого приходится перезаливать eeprom, но уже переподключая на be2. Вы когда разбирались с этим чипом не помните по какому адресу находятся локи TDA TCA RCA? Может вручную обнулить их? только вот знать бы где. Кстати ардуино при чтении выдает PEC Error !!! и 46!=0D Может так что у Вас другая варь, у меня пишет что 2,03 версия. И из за этого не корректно работает, или этот ардуино не подходит. Хотя врядле так бы поидее ничего не делал бы.

Нашел UNO попробовал тоже самое, встает на 8 пункте. Считать программу и епром не получается при помощи ардуино. В чем может быть вопрос? У Вас нет случайно прошивок от данной батареи правленой и битой для сравнения?

Komandir
Offline
Зарегистрирован: 18.08.2018

Чипы с трехзначным номером типа 955 - это то что произведено для вендоров. Сами вендоры могут прошить их чем угодно.

У меня на руках только с прошивкой 0302 

P.S. Подозреваю что ошибки из-за переполнения буфера библиотеки Wire !!! Вы сделали то, что написано сделать в 19 строке ???

SergST
Offline
Зарегистрирован: 24.03.2021

Здравствуйте

Не подскажите, делаю пункт 1 сразу ошибка Wire error - 2

Select operation:
1. Read pack info.
2. Pack Reset.
3. Unsealing a pack.
4. Move pack to Full Access mode.
5. Clearing a Permanent Failure.
6. Clearing CycleCount.
7. Setting current date.
8. Writing DesignCapacity, QMAX, Update status, Ra_table.
9. Begin the Impedance Track algorithm.
Pack Info...
DesignCapacity: 4400 mAh
FullChargeCapacity: 1849 mAh
CycleCount: 0
Date: 2021.10.31
DesignVoltage: 10800 mV
ManufName: LGC
DeviceName: AS10D81
SerialNumber: 5638 Hex
ChargingCurrent: 0 mA
ChargingVoltage: 0 mV
DeviceChemistry: LION
Temperature: 27.60 C
Voltage: 11963 mV
Current: 0 mA
RelativeSOC: 80 %
AbsoluteSOC: 34 %
RemainingCapacity: 1467 mAh
VCELL4: 0 mV
VCELL3: 4001 mV
VCELL2: 4013 mV
VCELL1: 3949 mV
SpecificationInfo: 0031 Hex
Battery Status: 48C0 Hex
TCA|TDA|INIT|DSG|
Operation Status: 0043 Hex
DSG|VOK|QEN|
Unsealed
MaxError: 119 %
SafetyStatus: OK
PFStatus: OK
Charging Status: OK
FETControl: OK
Update Status: 0
Qmax Cell0: 34
Qmax Cell1: 20302
Qmax Cell2: 12600
Qmax Cell3: 12565
Qmax Pack : 0
Wire error - 2
 
SergST
Offline
Зарегистрирован: 24.03.2021

Если сделать пункт1 после пункта 2, то вроде проходит. В дальнейшем пункты 2,3,4,5,6,7 норм проходят, но на пункте 8 снова ошибка Wire error - 3. Что не так?

--------------------
Select operation:
1. Read pack info.
2. Pack Reset.
3. Unsealing a pack.
4. Move pack to Full Access mode.
5. Clearing a Permanent Failure.
6. Clearing CycleCount.
7. Setting current date.
8. Writing DesignCapacity, QMAX, Update status, Ra_table.
9. Begin the Impedance Track algorithm.
Writing DesignCapacity, QMAX, Update status, Ra_table...
Wire error - 3
 
Norfolk
Offline
Зарегистрирован: 31.10.2021

Здравствуйте, люди добрые!

Есть здесь кто-то, кто может помочь разобраться с разблокировкой bq20z9x контроллера. У меня таких два: один bq20z90, а второй bq20z95. Пользовался be2work и пользовался кодом из этой темы. Мне кажется, что самая большая моя проблема - не могу никак сбросить Battery Status на нормальное состояние. Сейчас он у меня выглядит вот так:

Battery Status: 4AD0 Hex
TCA|TDA|RCA|INIT|DSG|FD|
 
Наверное, напаролся на все ошибки/проблемы из этой темы, потому как читал с конца, а местами надо было читать с начала)
На сколько я понимаю, контроллеры рабочие, предохранители целые, видимо я что-то делаю не так. Может кто-то сможет помочь. Все расскажу, все покажу.
 
Первое, что хотелось бы спросить: код из этой ветки залил в arduino uno, подключился по i2c, после be2work контроллер в состоянии Unsealed, прохожусь по шагам 1,2,3,4,5,6,7,8 и 1, если все проходит нормально, то контроллер становится в состояние Sealed, но ничего не менятется, Battery Status остается прежним. Как это побороть?
 
И еще момент, если меняю размер буфера в библиотеке Wire.h на 34, как написано в описании, то не могу пройти даже шаг 1, вылазит Wire error - 2 . 
 
Спасибо всем, кто откликнется!
Norfolk
Offline
Зарегистрирован: 31.10.2021

SergST пишет:

Здравствуйте

Не подскажите, делаю пункт 1 сразу ошибка Wire error - 2

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

Norfolk
Offline
Зарегистрирован: 31.10.2021

Geluk пишет:

Вы когда разбирались с этим чипом не помните по какому адресу находятся локи TDA TCA RCA? Может вручную обнулить их? только вот знать бы где. 

Присоединяюсь к вопросу! может кто-то знает, как поменять их руками, например, из под Be2 ?

SergST
Offline
Зарегистрирован: 24.03.2021
SergST
Offline
Зарегистрирован: 24.03.2021

Делайте пункт1 после пункта 2, должно получится. Меня больше волнует что пункт 8 не получается

Norfolk
Offline
Зарегистрирован: 31.10.2021

да, спасибо за ссылку на даташит. Читал его, там есть табличка, где имеются общие сведения по вопросу. Я даже нашел расширенную версию документации, но непрофессионалу там очень сложно разобраться. Может кто-то уже знает точно, что нужно делать) Было бы очень здорово)

Norfolk
Offline
Зарегистрирован: 31.10.2021

SergST пишет:

Делайте пункт1 после пункта 2, должно получится. Меня больше волнует что пункт 8 не получается

Ха, действительно! делаешь п.2, потом п.1, и так можно дойти до п.8, но да, потому выпадает в Wire error - 3 ... 

 

SergST
Offline
Зарегистрирован: 24.03.2021

Norfolk пишет:

да, спасибо за ссылку на даташит. Читал его, там есть табличка, где имеются общие сведения по вопросу. Я даже нашел расширенную версию документации, но непрофессионалу там очень сложно разобраться. Может кто-то уже знает точно, что нужно делать) Было бы очень здорово)

Я сам такой же) тут без Komandir не разобраться. Думаю со статусами TCA Terminate-charge alarm и TDA Terminate Discharge Alarm морочится не стоит, они вроде у всех.

Кстати пункт8 возможно их обновляет, но у меня он завершается ошибкой.

 

Norfolk
Offline
Зарегистрирован: 31.10.2021

Да, будем надеяться, что Komandir заглянет сюда, поотвечать на наши вопросы)

А вот про статусы TCA и TDA я не уверен, собственно п.5 (5. Clearing a Permanent Failure) и должен приводить Battary Status в рабочее состояние. И на сколько я понял, в рабочем состоянии TCA и TDA отсутствуют, так как они запрещают зарядку и разрядку батареи, и их нужно снимать в первую очередь. 

Если интересно, посмотрите это видео, там автор говорит как раз про эти флаги:

https://youtu.be/zNHWp7esEjA?t=1170

А вот пункт 8, как раз, записывает в контроллер все подготовленные в предыдущих шагах данные, включая Update status. 

Komandir
Offline
Зарегистрирован: 18.08.2018

После сброса первый пункт срабатывает без ошибки, потому что  на залоченной батарее не производится чтение расширенной информации ...

ИМХО всё дело в том что какой-то редиска-нехороший человек в родной библиотеке Wire размер буфера задал в ДВУХ местах !!!

Править надо Wire.h и utility/twi.h ...

Я пользуюсь пакетом MiniCore и там размер буфера задается в одном месте ...

Пробуем - отписываемся - я рядом ...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а вот на esp8266  буфер достаточный, да и напрямую можно по идее подключить, все скетчи компилируются!

SergST
Offline
Зарегистрирован: 24.03.2021

Norfolk пишет:

Ха, действительно! делаешь п.2, потом п.1, и так можно дойти до п.8, но да, потому выпадает в Wire error - 3 ... 

 

Так делать не совсем верно, Пункт2 делает Ресет контролера, т.е. перезагрузку, соответственно сбрасывает все сделанные ранее настройки. Посмотреть Инфу после ресета это нормально, но после каждого пункта делать ресет думаю не правильно.

Komandir
Offline
Зарегистрирован: 18.08.2018

Последовательность операций 1,2,3,4,5,6,7,8 1,2,3,4,9 должна запускать батарею, если она физически исправна(сами банки и ключи заряда/разряда). Wire Error быть не должно !!!

Norfolk
Offline
Зарегистрирован: 31.10.2021

Komandir пишет:

Править надо Wire.h и utility/twi.h ...

Пробуем - отписываемся - я рядом ...

Komandir, ну точно! Поправил еще и в utility/twi.h буфер и всё завелось, как бензопила на заготовке дров)) В общем, работает) Все пункты проходятся без ошибок, надо только делать маленькие паузы между пунктами (один раз слетело в ошибку, видимо слишком быстро выполнял)

Короче, подключился через резисторы вместо банок, подал с БП напряжение, прошелся вашим кодом, запаял аккумы на место. В итоге, благодаря вам и вашему коду, еще один пациент уже трудится на благо Родины) Ну и мне на радость) Спасибо, Komandir!

PS, еще один такой же пациент ожидает восстановления! Посмотрим, как на нем пройдет операция)

Norfolk
Offline
Зарегистрирован: 31.10.2021

ua6em пишет:

а вот на esp8266  буфер достаточный

Вот же точно! Надо мне было сразу брать из закромов esp8266 и не столкнулся бы с проблемами буфера! Запомним) 

Norfolk
Offline
Зарегистрирован: 31.10.2021

Komandir пишет:

Последовательность операций 1,2,3,4,5,6,7,8 1,2,3,4,9 должна запускать батарею, если она физически исправна(сами банки и ключи заряда/разряда). Wire Error быть не должно !!!

Да, вот хотел спросить: после прохождения всех пунктов ключи в Battery Status вот такие:

Battery Status: 4AD0 Hex

TCA|TDA|RCA|INIT|DSG|FD|
 
Так и задумано? Натыкался на информацию, что TCA, TDA одновременно стоять не должны, и что это ошибка. Что скажете по этому поводу. (немного выше есть ссылка на видео, где мужик это говорит, там таймкод прямо на это место)
На сколько я понял, эти состояния сбрасываются благодаря PFKey 
Komandir
Offline
Зарегистрирован: 18.08.2018

На память уже не помню, но вроде TCA TDA всегда есть, когда нет нагрузки. Надо попробовать нагрузить батарею на 12 вольтовую лампу от автомобиля и SYSPRESS притянуть к GND. Лампочка должна загореться. И вот в таком состоянии общаться с батареей.

b707
Offline
Зарегистрирован: 26.05.2017

Komandir, валяется контроллер от ноутаовской батареи, самих элементов уже нет, использованы в разные поделки :) Хотел поиграться с твоим кодом - код должен работать с "пустым" контроллером без батарей?

Norfolk
Offline
Зарегистрирован: 31.10.2021

Да, надо такое попробовать! Если у вас руки доберутся раньше моего, напишите, пожалуйста, что там происходит!

И вот еще, вновь ожившая батарея не заряжается( Какое-то время держит ноут в рабочем состоянии, потом отрубается. Включаешь на зарядку, винда показывается, что зарядка идет, а емкость в AIDA не увеличивается. Вот такая история

Norfolk
Offline
Зарегистрирован: 31.10.2021

b707 пишет:

Komandir, валяется контроллер от ноутаовской батареи, самих элементов уже нет, использованы в разные поделки :) Хотел поиграться с твоим кодом - код должен работать с "пустым" контроллером без батарей?

Работает этот код с "пустым" контроллером. Я вот писал чуть выше, как это делается, заменяешь банки резисторами и в путь:

http://arduino.ru/forum/proekty/obshchenie-s-batareyami-ot-noutbuka?page=1#comment-627696

Komandir
Offline
Зарегистрирован: 18.08.2018

b707 нужны резисторы вместо банок и источник напряжения вольт на 9-10.

SergST
Offline
Зарегистрирован: 24.03.2021

А есть у кого скетчи на другие контролеры?

Norfolk
Offline
Зарегистрирован: 31.10.2021

Komandir пишет:

На память уже не помню, но вроде TCA TDA всегда есть, когда нет нагрузки. Надо попробовать нагрузить батарею на 12 вольтовую лампу от автомобиля и SYSPRESS притянуть к GND.

В общем, попробовал. Когда тянешь SYSPRESS на землю, на выходе появляется напруга, а  TCA TDA  пропадают из вывода 

Battery Status: 00C0 Hex
INIT|DSG|
 
Судя по всему, так и должно быть!
Komandir
Offline
Зарегистрирован: 18.08.2018

Мне было лень менять банки на резисторы - и меня не доставали TCA TDA.

Резисторы нужны что бы RemainCapacity был 0 и можно было делать сброс пароля обходным путем.

Но если батарея ещё дышит - RemainCapacity=0 можно получить нагрузив батарею лампой или мощными резисторами.

SergST
Offline
Зарегистрирован: 24.03.2021

Подскажите как можно откалибровать батарею после  перепрошивки? Ноут вырубается на 50%.

Komandir
Offline
Зарегистрирован: 18.08.2018

Полный заряд - релаксация - полный заряд - релаксация

И так несколько раз

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Кстати, если править библиотеку Wire.h может лучше так?
 

#ifndef BUFFER_LENGTH
#define BUFFER_LENGTH 32
#endif

Тогда в начале скетча указываем нужную длину буфера:
 

// Настройка длины буфера Wire.h и twi.h
#define BUFFER_LENGTH 34
#define TWI_BUFFER_LENGTH BUFFER_LENGTH //34
 
#include <Wire.h>                //!!! The WIRE library must be edited to increase the buffer to 34 (0x22) bytes !!!
#include <utility/twi.h> 

 

Наконец дошли руки и у меня посмотреть батарею, плата NODE MCU LOLIN ESP8266
Подключение прямое -
// Версия для ESP8266 ядро 3.0.2
// распиновка
// GND - p-
// SDA - CLK (D1)
// SCL - DAT (D2)
 

Pack Info...
DesignCapacity: 4400 mAh
FullChargeCapacity: 631 mAh
CycleCount: 140
Date: 2009.6.1
DesignVoltage: 11100 mV
ManufName: SMP-LGC2.2
DeviceName: DELL Y823G961
SerialNumber: 0DD9 Hex
ChargingCurrent: 0 mA
ChargingVoltage: 12600 mV
DeviceChemistry: LION
Temperature: 28.10 C
Voltage: 10223 mV
Current: 0 mA
RelativeSOC: 0 %
AbsoluteSOC: 0 %
RemainingCapacity: 0 mAh
Wire error - 3

 

 

Komandir
Offline
Зарегистрирован: 18.08.2018

ua6em какой чип на плате ? Странно что он не отдаёт часть стандартных данных !

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

BQ20857DST  дальше замазано

Komandir
Offline
Зарегистрирован: 18.08.2018

Попробуйте понизить скорость i2c до 50 кГц

По даташиту все стандартно:

Table 3. bq2085 Register Functions (Continued) FUNCTION COMMAND CODE ACCESS UNITS RelativeStateOfCharge 0x0d read percent AbsoluteStateOfCharge 0x0e read percent RemainingCapacity 0x0f read mAh, 10 mWh FullChargeCapacity 0x10 read mAh, 10 mWh RunTimeToEmpty 0x11 read minutes AverageTimeToEmpty 0x12 read minutes AverageTimeToFull 0x13 read minutes ChargingCurrent 0x14 read mA ChargingVoltage 0x15 read mV Battery Status 0x16 read NA CycleCount 0x17 read cycles DesignCapacity 0x18 read mAh, 10 mWh DesignVoltage 0x19 read mV SpecificationInfo 0x1a read NA ManufactureDate 0x1b read NA SerialNumber 0x1c read integer Reserved 0x1d-0x1f 0 0 ManufacturerName 0x20 read string DeviceName 0x21 read string DeviceChemistry 0x22 read string ManufacturerData 0x23 read string Pack status 0x2f (LSB) read NA Pack configuration 0x2f (MSB) read NA VCELL4 0x3c read mV VCELL3 0x3d read mV VCELL2 0x3e read mV VCELL1 0x3f read mV

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

использую ESP8266 а она вроде бы меньше 100кгц не умеет, ставлю   Wire.setClock(50000); - компилируется и заливается, но на выходе те же значения 

Komandir
Offline
Зарегистрирован: 18.08.2018

ХЗ что ему надо ... не отвечает на запрос напряжения на отдельных банках

  • 0:success
  • 1:data too long to fit in transmit buffer
  • 2:received NACK on transmit of address
  • 3:received NACK on transmit of data
  • 4:other error
ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Может дело в ESP8266?

Komandir
Offline
Зарегистрирован: 18.08.2018

А на другие запросы отвечает же ... ИМХО дело не в инструменте ...

186   ReadSMB(byte(0x0F)); Serial.print(F("RemainingCapacity: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mAh");
187   ReadSMB(byte(0x3C)); Serial.print(F("VCELL4: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Komandir пишет:

А на другие запросы отвечает же ... ИМХО дело не в инструменте ...

видимо дело в контроллере, отказ был вида - перестал заряжать батарею, орал требуется заменить )))

замаркировал опрос элементов:

 /*
  ReadSMB(byte(0x3C)); Serial.print(F("VCELL4: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadSMB(byte(0x3D)); Serial.print(F("VCELL3: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadSMB(byte(0x3E)); Serial.print(F("VCELL2: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
  ReadSMB(byte(0x3F)); Serial.print(F("VCELL1: ")); Serial.print(buff[1]*256+buff[0]); Serial.println(" mV");
 */

Pack Info...
DesignCapacity: 4400 mAh
FullChargeCapacity: 631 mAh
CycleCount: 140
Date: 2009.6.1
DesignVoltage: 11100 mV
ManufName: SMP-LGC2.2
DeviceName: DELL Y823G961
SerialNumber: 0DD9 Hex
ChargingCurrent: 0 mA
ChargingVoltage: 12600 mV
DeviceChemistry: LION
Temperature: 27.20 C
Voltage: 10222 mV
Current: 0 mA
RelativeSOC: 0 %
AbsoluteSOC: 0 %
RemainingCapacity: 0 mAh
SpecificationInfo: 0021 Hex
Battery Status: 02D0 Hex
RCA|INIT|DSG|FD|
Operation Status: 8E00 Hex
PRES|LDMD|
Unsealed
MaxError: 2 %
SafetyStatus: 8E00 Hex
OTD|OCD2|OCC2|PUV|
PFStatus: 8E00 Hex
FBF|SOCD|SOCC|AFE_P|
Charging Status: 8E00 Hex
XCHG|TCHG1|TCHG2|FCHG|
Wire error - 3