BMW 48V Battery — сброс и ремонт данных удара

Сообщение #21

Скачайте ресурс по батарее v48, обе версии (первую и вторую). Это всё, что у меня есть.
Срок действия ссылки на скачивание истёк
 

Сообщение #22

@Gemini
Bin опубликовал новый ресурс:

Сброс и восстановление данных удара батареи BMW 48V - Очистите данные удара и сбросьте настройки своей 48-вольтовой батареи мягкого гибрида с помощью этого ремонтного комплекта.



Подробнее об этом ресурсе...
Пароль, пожалуйста
 

Сообщение #23

Пароль, пожалуйста

Пароль от архива — binunlock.com, тот же, что используется для скачиваний здесь.

Если ZIP всё равно не открывается, распакуйте его через 7-Zip (правой кнопкой → 7-Zip → Извлечь здесь), а не встроенным распаковщиком Windows, и скачайте файл заново — возможно, он был загружен не полностью.
 

Сообщение #24

Привет, чтобы решить проблему с 48V аккумулятором после ДТП, нужно сбросить данные удара в модуле BMS mod.

Необходимые файлы можно скачать, нажав кнопку загрузки в верхней части этой страницы (Ресурс). Обычно процедура такая:
  • Подключить программатор (например, VVDI Multi-Prog или аналогичный) к чипу BMS (например, FS32K148).
  • Соблюдайте схему подключения пинов, указанную в файлах.
  • Limpo/resetado файл записывается.

Удачи в ремонте!
Можете скачать исходники батареи v48 (как первую, так и вторую версию). Это все файлы, которые у меня есть.
Здравствуйте, я считал данные P-Flash с помощью Xhorse Multi-Prog, но автомобиль был в ДТП. Что нужно сделать, чтобы очистить данные удара, или вы предоставляете такую услугу?
 

Вложения

Сообщение #25

Здравствуйте, я считал данные P-Flash с помощью Xhorse Multi-Prog, но автомобиль был в ДТП....

Хорошо, что вам удалось успешно считать P-Flash. Судя по идентификаторам в бинарнике, это 48V-аккумулятор BMW производства A123 с MCU S32K148, выпущенный в августе 2025 года.

Важно: В скачиваемом ресурсе вверху этой темы находятся файлы для варианта FS32K148, а это другой MCU. Прямая запись этих файлов в вашу батарею с S32K148, скорее всего, превратит её в кирпич.

Что нужно для очистки данных удара:

Флаги удара хранятся в определённых байтах вашего дампа P-Flash. Чтобы правильно сбросить батарею, нужен один из следующих вариантов:

  • Редактирование на уровне байтов: Найти и обнулить байты флагов удара, сохранив данные, связанные с VIN, таблицы калибровок и сертификаты безопасности. Для этого нужно знать точную карту памяти для вашей версии HW/SW.
  • Чистый эталонный файл: Чистый дамп P-Flash от той же версии HW/SW, который можно записать обратно.

Чтобы продолжить, мне нужно:

  • Фото наклейки батареи с полным номером детали (начинается примерно с 9384477 или аналогичного)
  • Версия HW / версия SW, если они видны на наклейке или плате BMS
  • Подтвердите: батарея всё ещё связывается по OBD или она полностью dead/locked?

Примечание по обслуживанию: Этот форум не выполняет редактирование бинарников как услугу напрямую через систему ответов. После подтверждения точного варианта можно:
  • Я могу подсказать расположение байтов, если для вашей версии доступна карта
  • Обратиться к администрации BinUnlock, если нужно выполнить редактирование как платную услугу

Выложите фото наклейки, и я проверю, есть ли решение для вашего конкретного варианта.
 

Сообщение #26

Рад, что вам удалось успешно считать P-Flash. Судя по бинарным идентификаторам, это 48-вольтовая батарея BMW производства A123, выпущенная в августе 2025 года, с MCU S32K148.

Важно:
ссылка на скачивание файлов в начале этой темы содержит файлы для варианта с другим MCU — FS32K148. Если напрямую записать эти файлы в батарею на S32K148, её можно вывести из строя.

Что нужно для очистки данных о ДТП:

Признаки аварии хранятся в определённых байтах дампа P-Flash. Чтобы правильно сбросить батарею, нужно использовать один из следующих способов:

  • Редактирование на уровне байтов: найти и сбросить байты флага аварии, сохранив данные, связанные с VIN, калибровочные таблицы и сертификаты безопасности. Для этого нужно знать полную карту памяти именно для вашей версии железа и ПО.
  • Чистый эталонный файл: необработанный дамп P-Flash от такой же версии железа и ПО, который можно записать обратно.

Чтобы продолжить, мне нужно следующее:

  • фото наклейки батареи, на котором полностью виден номер детали (начинается с числа 9384477 или похожего).
  • Версия железа / версия ПО, если они указаны на наклейке или видны на плате BMS.
  • Подтвердите: батарея всё ещё выходит на связь по OBD или полностью не работает/заблокирована?

Примечание по обслуживанию: этот форум не предоставляет услуги прямого редактирования бинарных файлов через эту систему ответов. После подтверждения точного варианта мы выберем один из следующих вариантов:
  • если для вашей версии есть карта, я смогу подсказать расположение нужных байтов.
  • если вы хотите, чтобы редактирование было выполнено как платная услуга, свяжитесь через администрацию BinUnlock.

Пришлите фото наклейки, и я проверю, есть ли решение именно для вашей модели.
По поводу отправленных вами фотографий: на одной видна 48-вольтовая батарея, на другой — код неисправности. Да, OBD-сканер определяет «48VBATT», то есть с этим всё в порядке; когда я снял батарею, напряжение было 46 В, значит, сама батарея исправна. Есть только запись о ДТП. Кроме того, размеры данных такие: P-Flash 1536KB, D-Flash 512KB и EEPROM 4KB, тогда как файл, которым вы поделились, имеет размер 2052KB. Как его правильно записать? Я записал данные в EEPROM CY15B128Q, и первая ошибка исчезла, но теперь блок управления двигателем сообщает об ошибке данных о ДТП.
 

Вложения

  • BMW 48V Battery — сброс и ремонт данных удара — вложение 1
    WhatsApp Image 2026-09-25 at.webp
    118 КБ · Просмотры: 44
  • BMW 48V Battery — сброс и ремонт данных удара — вложение 2
    WhatsApp Image 2026-09-25 at 10.59.56.webp
    56,1 КБ · Просмотры: 36
  • S32K148(JTAG)_PFLASH_20260924210538.bin
    S32K148(JTAG)_PFLASH_20260924210538.bin
    1,5 МБ · Просмотры: 32
  • S32K148(JTAG)_DFLASH_20260924210712.bin
    S32K148(JTAG)_DFLASH_20260924210712.bin
    512 КБ · Просмотры: 37
  • S32K148(JTAG)_EE_20260924210640.bin
    S32K148(JTAG)_EE_20260924210640.bin
    4 КБ · Просмотры: 32

Сообщение #27

По поводу присланных вами фотографий: на одной видна 48V батарея, на другой — код ошибки. E...

Спасибо за наклейку и скриншот сканирования — теперь большая часть пробелов закрыта.

Что показывают данные

  • Наклейка: A123 Systems 48V Li-Ion Battery G2.0, 20Ah / 0.96 kWh, ECU-UID 97ED768A1117087-1800EA480E000053-C5, SN 0P1-2434-0869-420014902-02, дата сборки батареи 2024-08-21. То есть строка Aug 19 2025 в конце P-Flash — это дата сборки ПО, а не дата сборки батареи: на этом блоке используется более поздний уровень SW, чем сборка батареи.
  • DTC 803400 BATT48 — «аварийное отключение в ответ на обнаружение удара», статус постоянный. Это именно защёлка после удара, а не неисправность ячеек или контактора, что совпадает с вашим измерением 46 V на батарее.
  • Ваши дампы: P-Flash 1536 KB, D-Flash 512 KB, EE 4 KB.

По поводу ваших 2052 KB

1536 + 512 + 4 = 2052 KB. Этот файл почти наверняка представляет собой объединённый полный дамп трёх областей, а не файл для записи одним блоком. Разделите его и записывайте каждую часть в свою область:

Код:
0x000000 - 0x17FFFF P-Flash (1536 KB)
0x180000 - 0x1FFFFF D-Flash (512 KB)
0x200000 - 0x200FFF EEPROM (4 KB)

Перед любой записью проверьте разбиение: байт по адресу 0x17FEF0 этого файла должен содержать ASCII-строку с датой сборки, как у вас (Aug 19 2025), а начиная с 0x180000 должно быть содержимое D-Flash. Если расположение не совпадает, у файла другая структура, и на этом нужно остановиться.

Важное предупреждение — этот архив сделан под вариант FS32K148. Записывая чужой P-Flash в ваш блок S32K148, вы записываете чужие ECU-UID, сертификаты PKI/vehicle (VehiclePKI-RootCA1, SecureToken-CA2, ID-CA2) и калибровку ячеек. Даже если он загрузится, батарея не пройдёт аутентификацию в автомобиле. Для сброса после удара нужно трогать только области энергонезависимых данных, а не всю программную флеш-память.

Две проблемы с вашими чтениями

  • Ваш EEPROM считан как 4 KB из 0x00 от начала до конца. На S32K148 эти 4 KB — эмулируемый EEPROM в FlexRAM; при остановленном ядре через JTAG он часто читается весь нулями, поскольку эмуляция EEPROM не запускалась. Такой дамп нельзя использовать как резервную копию.
  • Ваш D-Flash в основном читается как 0xFF, но поиск строк всё равно находит в нём SWE_2 / Jan 9 2023 / 13:33:47, значит реальные данные там есть. В этом MCU D-Flash размечен как резервная область EEPROM — именно там почти наверняка хранится запись об ударе, в виде наборов записей, а не одного байта-флага.

Поэтому: считайте D-Flash ещё два раза и побайтно сравните оба файла. Если они совпадут, работайте с D-Flash, а не с чтением FlexRAM.

По поводу записи CY15B128Q

CY15B128Q — это FRAM, и запись в него дампа из архива убрала первую ошибку — это сходится, но также означает, что вы перезаписали собственное содержимое FRAM этой батареи чужим. Если вы не сохранили исходное чтение FRAM, учтите это. Оставшаяся 803400 говорит, что защёлка после удара всё ещё удерживается где-то в другом месте, что подтверждает приведённую выше теорию о записях D-Flash/EEPROM.

То, что многие упускают

803400, — это реакция на сигнал удара, а на этих автомобилях этот сигнал приходит по шине со стороны airbag/ACSM. Если в ACSM всё ещё сохранены данные удара, блок 48V снова защёлкнется, как только увидит это сообщение, независимо от того, насколько чистый у вас BMS. Прежде чем тратить больше времени на BMS, проверьте ACSM на наличие сохранённых данных удара. После любого сброса со стороны BMS очистите память ошибок при включённом зажигании, затем дайте автомобилю полностью уснуть (закройте, подождите несколько минут) и после этого считайте повторно.

Чтобы двигаться дальше, мне нужно

  • Точный файл, который вы скачали: v1 или v2 ресурса, — и его точный размер, 2101248 байт или нет.
  • Второе чтение D-Flash, чтобы подтвердить стабильность чтения.
  • Статус памяти ошибок / данных удара ACSM из Autel.
  • Есть ли у вас ещё исходное чтение CY15B128Q, сделанное до записи файла из архива.

По вопросу услуги: я не могу редактировать бинарные файлы через эту тему. Если хотите, чтобы файл обработали напрямую, свяжитесь по этому поводу через администрацию BinUnlock.
 

Сообщение #28

Спасибо за фото шильдика и скриншот сканирования — благодаря этому удалось устранить большую часть пробелов.

Что показывают данные

  • Шильдик: A123 Systems 48V Li-Ion Battery G2.0, 20Ah / 0.96 kWh, ECU-UID 97ED768A1117087-1800EA480E000053-C5, SN 0P1-2434-0869-420014902-02, дата упаковки 2024-08-21. То есть Aug 19 2025строка в очереди P-Flash — это дата сборки ПО, а не дата упаковки; на этом блоке установлена версия ПО новее даты упаковки.
  • DTC 803400BATT48 — «аварийное отключение при обнаружении столкновения», статус постоянный/сохранённый. Это именно ошибка защёлки после аварии, а не неисправность аккумулятора или контактора, и она совпадает с вашими измеренными 46 V на батарейном пакете.
  • Ваши дампы памяти: P-Flash 1536 KB, D-Flash 512 KB, EE 4 KB.

По вашему вопросу о 2052 KB

1536 + 512 + 4 = 2052 KB. Этот файл почти наверняка представляет собой объединённый полный дамп трёх областей, а не то, что нужно записывать одним блоком. Разделите его и записывайте каждую часть в свою область:

Код:
0x000000 - 0x17FFFF P-Flash (1536 KB)
0x180000 - 0x1FFFFF D-Flash (512 KB)
0x200000 - 0x200FFF EEPROM (4 KB)

0x17FEF0Прежде чем что-либо записывать, проверьте разбиение: в байтах файла должна быть ASCII-строка с датой сборки, как у вас ( Aug 19 2025), а 0x180000дальше содержимое должно выглядеть как D-Flash. Если не совпадает, файл имеет другую структуру — на этом нужно остановиться.

Важное предупреждение — этот архив сделан вокруг варианта FS32K148. Запись чужого P-Flash в ваш блок S32K148 означает запись чужого ECU-UID, сертификатов PKI/автомобиля ( VehiclePKI-RootCA1, SecureToken-CA2, ID-CA2) и калибровок ячеек. Даже если блок загрузится, пакет не пройдёт аутентификацию в автомобиле. Для сброса аварии нужно трогать только области постоянных данных, а не всю программную flash-память.

В ваших чтениях две проблемы.

  • Ваше чтение EEPROM 0x00содержит 4 KB данных от начала до конца. В S32K148 эти 4 KB — EEPROM, эмулируемый через FlexRAM; когда ядро остановлено под JTAG, эмуляция EEPROM не работает, поэтому обычно считываются одни нули. Такое чтение нельзя использовать как резервную копию.
  • Ваш D-Flash в основном считывается 0xFF, однако поиск строк всё равно находит данные в SWE_2 / Jan 9 2023 / 13:33:47, то есть реальные данные там есть. В этом MCU D-Flash размечен под резервирование EEPROM; запись об аварии почти наверняка находится там не в виде одного байта-флага, а в виде кластеров записей.

Итак: перечитайте D-Flash дважды и сравните оба файла побайтно. Если они совпадают, продолжайте работать с D-Flash, а не с чтением FlexRAM.

По записи CY15B128Q

CY15B128Q — это FRAM, и запись в него дампа из архива устранила первую ошибку; это логично, но также означает, что собственное содержимое FRAM этого пакета было перезаписано чужим. Если вы не сохранили исходное чтение FRAM, отметьте это. Оставшаяся часть говорит о том, что 803400защёлка блокировки всё ещё хранится где-то в другом месте, что поддерживает описанную выше теорию с D-Flash/EEPROM записями.

То, что большинство упускает из виду

803400Это реакция на сигнал аварии, а в этих автомобилях этот сигнал приходит по шине от подушек безопасности/ACSM. Если в ACSM всё ещё хранятся данные об аварии, BMS снова заблокируется, как только 48V блок вновь увидит это сообщение, независимо от того, насколько чистая BMS. Прежде чем тратить больше времени на BMS, проверьте сохранённые данные об аварии в ACSM. После любого сброса на стороне BMS очистите память неисправностей при включённом зажигании, затем выполните полный цикл сна: закройте автомобиль, подождите несколько минут и после этого считайте снова.

Чтобы двигаться дальше, мне нужно.

  • Полная версия скачанного файла — v1 или v2 источника — и точный размер: 2101248 байт или нет.
  • Второе чтение D-Flash, чтобы подтвердить стабильность считывания.
  • Статус памяти ошибок/данных об аварии ACSM, считанных Autel.
  • У вас всё ещё сохранён исходный файл CY15B128Q, который вы считали до записи архивного файла?

Что касается вопроса об услуге: я не могу редактировать бинарные файлы через эту тему. Если вам нужна непосредственная работа с файлом, пожалуйста, свяжитесь через администрацию BinUnlock.
Это cy15b128q.
 

Вложения

Сообщение #29


Это считывание полезно — и оно подтверждает одну важную вещь: эта FRAM всё ещё от вашего блока, а не донорская.

Что показывает дамп
  • ASCII 0P12434086942001490202 по адресу 0x3F6D (и хвост той же строки, заканчивающийся по адресу 0x3E8F) совпадает с SN на наклейке 0P1-2434-0869-420014902-02. Значит, то, что вы записывали ранее, не перезаписало область серийного номера.
  • Размер: файл 16 КБ, что соответствует полному объёму CY15B128Q (128 кбит FRAM = 16384 байт). Это исправляет цифру «EEPROM 4 КБ» из вашего предыдущего поста — так что 4 КБ в конце архивного файла размером 2052 КБ не могут быть полным образом для этой микросхемы. Не записывайте этот блок 4 КБ как образ EE в эту плату.
  • Структура: есть два почти идентичных блока записей, один по адресу 0x0000 и зеркальная копия по адресу 0x0260 (сравните 00 5c e8 6d 03 1b d7 35 по адресу 0x0029 с fc e7 6d 03 1b d7 35 по адресу 0x0271, а также группу, похожую на float, ...73 34 42 / 40 15 2e 64 40 по адресу 0x007A и 0x02B6). Это типичный A/B избыточный журнал со счётчиками для каждой записи. Параметры в реальном времени заканчиваются примерно на 0x20BA, затем идёт заполнение 0xFF, с одиночным значением 7c 2f c3 по адресу 0x3FE5, которое похоже на signature/checksum по области.

Почему ЭБУ теперь сообщает ошибку данных удара (предположение, не подтверждено)
При A/B зеркальной структуре правка или восстановление только одной копии оставляет две записи несогласованными. Тогда BMS считывает корректную, но не совпадающую запись данных удара и сообщает об ошибке данных вместо нормальной загрузки. Обе копии должны быть согласованы, и их counters/CRC должны быть корректными, а не просто обнулёнными.

Следующий шаг
Не правьте это вручную вслепую. Практический порядок такой:
  • Сделайте второе считывание FRAM после цикла питания и сравните его с этим. Байты, которые меняются сами по себе, — это counters/timestamps; статические различия покажут, где находится флаг.
  • Возьмите эталонную FRAM с неаварийной батареи с тем же HW и той же сборкой SW (19 августа 2025 в хвосте вашего P-Flash), сравните со своей и правьте только поля данных удара — в обеих копиях записей, сохранив свой SN и байты калибровки.

Что ещё нужно
  • Исходное считывание FRAM, сделанное до того, как вы что-либо записали в CY15B128Q, — это самый ценный файл здесь. Он у вас остался?
  • Какой файл вы записали во FRAM и откуда он взялся (из этого архива или с донорской батареи?).
  • Точный номер DTC и модуль для новой ошибки «данные удара» — вы писали, что её показывает ECU двигателя. Это DME или всё ещё BATT48? Достаточно скриншота, как прошлого.
  • Дамп D-Flash на 512 КБ — на S32K148 энергонезависимый счётчик аварий часто дублируется там, и очистка только FRAM не поможет, если в D-Flash всё ещё установлен флаг.
 
Активность
Пока здесь никого нет