Батареи DJI. Проблемы и решения
Гляньте личку, пожалуйста.
Доброго времени. Я вам не помогу. Я не занимаюсь батарейками, это лишь временное увлечение новым направлением в теме электроники - мелочь пузатая 😃 Поэтому хз чем я вам помогу с BQ30Z55(1?), если только рассеалить, прочитать, записать (кроме FW), тем более см. ниже - “Хьюстон, у нас проблема” -
PS Походу с CP2112 небольшая выходит лажа - оказывается этот адаптер не способен писать за один раз блок размером более 61 байта. Поэтому записывать фирмварю “DJi battery killer” через этот адаптер не сможет, т.к. там нужно на чип отправлять блоки фирмвари по 96 байт данных. Тоесть читать мы сможем, а вот писать - хрен. Печалька… Но в целом все остальное уже работает. Сейчас провожу косметические изменения и в принципе могу выложить на тесты 😃
PPS кстати, а новые версии BEWorks через CP2112 адаптер шьют фирмварю в BQ30Z55? У кого есть эта балалайка, проверьте?
Поэтому хз чем я вам помогу с BQ30Z55(1?), если только рассеалить, прочитать, записать
Да мне стбственно только рассеалить и сбросить ошибки и надо 😃
Я не в курсе, а у Вас какой адаптер/софт имеется в распоряжении?
PS. Может лучше в личке/почте или на vlab? Здесь как бы оффтопик получается.
Пук
Пока еще не все допилил. В частности нужно еще убрать лишнее и отключить запись FW BQ30Z55, т.к. всеравно адаптер CP2112 не сможет это сделать 😌
Но изменение ёмкости, напряжений мах заряда, сброс циклов вроде уже пашет как на bq30z55 так и на bq9003
Для получения full access в BQ30Z55 когда ключь неизвестный - юзайте кнопку Full Access.
Еще есть мелкие косяки, со временем как будет настроение исправлю. И чуть позже зарелизю, пока влом )
Батарея Pro 1 не реагирует никак на нажатие кнопки включения, диоды не горят, не мигают. На зарядке показывает диодами заряд. Что может быть?
Батарея Pro 1 не реагирует никак на нажатие кнопки включения,
Кнопка сломатая. Или ейный шлейф. Или пайка лопнула.
Или ейный шлейф
на M1 кнопка на плате контроллера
на M1 кнопка на плате контроллера
Это стеб такой. Т.к. VitFom затрахал уже везде своими глупыми вопросами 😃
Кстати, кто то пробовал заблокированную батарею М1 вставлять в родную зарядку?
Что там с индикацией?
уже пашет как на bq30z55
На BQ30Z55 1 не получилось. По крайней мере с имеющейся у меня прошивкой.
Информацию читает так же кривенько, как и ВЕ и тоже иногда со сбоями по шине (но это, видимо, уже проблемы 2112), ключи якобы подбирает (каждый раз разные похоже) и расеаливает, ошибки якобы снимает, чип якобы ресетит, но на самом деле ничего этого не выполняется, FW не читается по причине залоченности чипа, а инфа о состоянии после всех этих действий остается неизменной.
Но к батареям коптеров это, конечно, отношения не имеет - спасибо за предоставленную возможность убедиться в правильности решения про утилизацию 😃
На BQ30Z55 1 не получилось. По крайней мере с имеющейся у меня прошивкой.
Информацию читает так же кривенько, как и ВЕ и тоже иногда со сбоями по шине (но это, видимо, уже проблемы 2112), ключи якобы подбирает (каждый раз разные похоже) и расеаливает, ошибки якобы снимает, чип якобы ресетит, но на самом деле ничего этого не выполняется, FW не читается по причине залоченности чипа, а инфа о состоянии после всех этих действий остается неизменной.
Но к батареям коптеров это, конечно, отношения не имеет - спасибо за предоставленную возможность убедиться в правильности решения про утилизацию 😃
Думаю дело не в CP2112. Будь у вас EV2300/EV2400 то была бы такая же картина.
Full Access кнопочку пробовали нажимать? Что после этого происходит?
Если при нажатии на кнопку Unseal в основном окне программы чип отдает CHALLENGE то по этому челенджу и 128 бит ключу что в строке Key(128bit) происходит расчет Digest, который потом отправляется в чип. Но этот расчет происходит при использовании дефолтного ключа 0123456789ABCDEFFEDCBA9876543210, если у вас ключь не дефолтный и вы его не знаете то пробуйте кнопочку Full Access(пока только проверено на BQ30Z55 от DJi Phantom батарейке), после чего будет получен полный доступ и ключи должны поменяться на дефолтные. После этого если чип снова засеалится то можно рассеалить с помощью дефолтного ключа и полученного от него DIGEST.
И еще - попробуйте отключить MSP430 от BQ30Z55 на шине i2c, т.к. MSP может вносить помеху т.к. два мастерустройства (MSP430 + CP2112) на одной шине i2c возможны, но они не должны друг-другу мешать.
PS Внимание. Работу с BQ30Z55 нужно производить с отключенным MSP430 от BQ30Z55. Любыми способами - выключения с кнопки, занижением питания на MSP, до физического временного перерезания дорожек SCL и SDA между MSP430 и BQ30Z55
в правильности решения про утилизацию
в личку написал.
Full Access кнопочку пробовали нажимать?
Первоначально нет, но сейчас попробовал. Несколько раз ничего не происходило. Ну то есть все как обычно, что-то там делает, пишет ОК, но по факту результата нет, Boot не пускает, пишет засеален. Но в какой-то из попыток Boоt вроде как написал что доступ получен и я поначалу обрадовался. Оказалось рано 😃 Прочитал FW. Якобы прочитал и сохранил, но после этого в Info бред, ничего не работает, короче контроллер ёк судя по всему и муки выбора отпали по определению 😃
Работу с BQ30Z55 нужно производить с отключенным MSP430 от BQ30Z55.
В моем контроллере стоит только BQ30Z551
Первоначально нет, но сейчас попробовал. Несколько раз ничего не происходило. Ну то есть все как обычно, что-то там делает, пишет ОК, но по факту результата нет, Boot не пускает, пишет засеален. Но в какой-то из попыток Boоt вроде как написал что доступ получен и я поначалу обрадовался. Оказалось рано 😃 Прочитал FW. Якобы прочитал и сохранил, но после этого в Info бред, ничего не работает, короче контроллер ёк судя по всему и муки выбора отпали по определению 😃
В моем контроллере стоит только BQ30Z551
Ха! Если в бут попали и прочитало FW (и должно EEPROM читать также) то чип рассеалился. Когда чип находится в BootMode то считываться инфа правильно не будет, все так и есть, так как чип находится в другом режиме. Скорее всего в чипе или чтото с еепром не так и/или чип “колбасит”. Прочитайте для начала дампы с него в Boot режиме. Если дампы действительно прочитаются и там будет не рендомный мусор то поищите дамп с такого же BMS и попробуйте записать заведомо рабочий EEPROM (к сожалению CP2112 не может писать FW в BQ30Z55 изза особенностей длины блока). Да, будут калибровки несоответствовать, но это мелочи, главное чтобы ваша BMS заработала. По крайней мере уже рисковать нечем 😃
PS Если чип колбасит то чип после расселивания будет снова засеаливаться, нужно быстро после рассеаливания дать команду на переключение в Boot Mode. Я могу запилить CheckBox “Try to Enter Boot Mode” c функцией мол автоматически после Unseal или Full Access давать команду на перевод в Boot Mode, т.к. программа это сделает за милисекунды, в отличии от пользователя который нажимает кнопки.
PPS После использования Full Access у вас уже должны были поменяться ключи на дефолтные. Поэтому теперь вы можете просто использовать кнопку Unseal с дефолтным ключем в строке Key(128 bit) который по умолчанию в программе.
PPPS Чтобы “бред в инфо” не читался, там есть кнопочка “Exit Boot”. Но не спешите выходить из Boot режима 😃
Ха!
Ух ты! Значит не убил. EEPROM действительно прочитался и он такой же, как и тот, что я с десятой попытки считывал ВЕ.
дамп с такого же BMS и попробуйте записать заведомо рабочий EEPROM
Так и задумывалось изначально, т.к. рабочая батарея у меня есть и считать EEPROM, как теперь выяснилось, можно. Но если нечем писать - толку с него?
Вышел из boot mode - инфа прочиталась, но ошибки по-прежнему не сбрасываются.
Но не спешите выходить из Boot режима
поздно… 😃
Так и задумывалось изначально, т.к. рабочая батарея у меня есть и считать EEPROM, как теперь выяснилось, можно. Но если нечем писать - толку с него?
Я не говорил что EEPROM нельзя прочитать/записать, я говорил что FW в BQ30Z55 не получится записать через CP2112 адаптер.
Читайте EEPROM с такого же но рабочего BMS и пишите в ваш нерабочий. Предварительно прочитайте также и FW как с рабочего так и нерабочего.
И про какие ошибки вы говорите которые не сбрасываются?
Чую прийдется мне еще пилить отображение статусов регистров ))))
Читайте EEPROM с такого же но рабочего BMS и пишите в ваш нерабочий.
Через час попробую записать этот контроллер своими же данными - посмотрю, пройдет ли процесс или будет вылетать в ошибки.
И про какие ошибки вы говорите которые не сбрасываются?
ClearPF. Как я понимаю, это должно снимать Permanent Failure и зарядные токи с напряжением должны стать ненулевыми?
ClearPF. Как я понимаю, это должно снимать Permanent Failure и зарядные токи с напряжением должны стать ненулевыми?
Ну для начала нужно видеть установлен ли флаг PF на вашем нерабочем BMS или нет. Я в проге пока не делал отображение статус регистров или банально проверку PF на активно\неактивно. Поэтому программа сейчас тупо посылает команду на сброс PF и все. А дальше уже зависит от BMS - принимает/выполняет эту команду или нет. В вашем случае у вас колбасня чипа скорее всего, и я сомневаюсь что эта колбасня связана с PF.
Прочитайте EEPROM и FW с рабочего и нерабочего BMS и выложите их сюда.
EEPROM пишет!
Прочитайте EEPROM и FW с рабочего и нерабочего BMS и выложите их сюда.
Нерабочий вот. Рабочий несколько позже - его надо еще из планшета достать, а он пока недоступен.
EEPROM пишет!
Нерабочий вот. Рабочий несколько позже - его надо еще из планшета достать, а он пока недоступен.
Отлично. Ждем рабочий еепром.
PS Я уже вижу по FW что скорее всего FW не весь вычитался, нужно будет попробовать увеличить диапазон чтения до 128 кБайт, скорее всего в этом чипе или больше ROM или в моем подопытном от фантома на котором я отлаживал софт размер прошивки меньше размером. Но FW нам в принципе сейчас не важно.
Отлично. Ждем рабочий еепром.
Спасибо! Пока вот второй нерабочий, может будет интересно посмотреть. С рабочим, боюсь, придется притормозить - похоже заболел…
Спасибо! Пока вот второй нерабочий, может будет интересно посмотреть. С рабочим, боюсь, придется притормозить - похоже заболел…
фирмварю тоже сливайте, нужно же тоже понимать одинаковые ли прошивки или разные
кто или что заболел?