Ремонт WABCO Electronic Level Control (ELC). Scania.

Из-за некорректно проведенной процедуры калибровки повторная калибровка стала невозможна с помощью имеющихся средств, а именно диагностического оборудования SDP3.
Полагаю, что есть какой-то другой путь решения проблемы, не связанный со снятием микросхемы EEPROM, внесением изменений в дамп и т.д., так как в интернете эта неисправность особо не обсуждается. Но работа была произведена. Получен положительный результат. Возможно, собранная информация кому-то чем-то поможет.
Данные по блоку:
| WABCO 115 34/07       | CONTROL UNIT ELC  |
| 051872  446 170 216 0 | SCANIA            |
| ECAS 6x2/BUS          | PART NO.: 1851677 |
| 24V e1 032063         | HW NO.: 1759698   |
|                       | 6870              | 
В чем проблема?
После ремонта тягача потребовалась настройка уровня подвески. Это делается в SDP3 за 5 шагов:
- Перейти в режим калибровки и согласиться на её проведение;
- Установить ходовой уровень (средний) подвески;
- Установить максимальный уровень подвески;
- Установить минимальный уровень подвески;
- Рассчитать калибровочное значение и записать его в EEPROM.
На этапе 1 в EEPROM удаляется значение предыдущей калибровки. Если после этого процесс прервется или завершится с ошибкой, то возникнет описываемая проблема. На этапах 2-4 в EEPROM записываются показания с датчиков уровня подвески: один передний и один задний. На этапе 5, на основании полученных значений, производится расчет нового калибровочного коэффициента (тот, что был удален на этапе 1).
Если подвеска имеет какие-то неисправности, либо есть неисправность датчиков, либо нарушен порядок действий на этапах 2-4, то на этапе 5 будет рассчитан некорректный коэффициент, имеющий отрицательное значение. Он будет сохранен в EEPROM, и после этого повторная калибровка становится невозможной, по крайней мере через то же самое меню в SDP3.
На фото представлено окно, на котором можно увидеть неисправность. Вместо значений “-36” и “-34” мм отображается “-300” (вроде был) и шкала имеет красный фон. Слева, возле текстового описания, отображается по одному знаку вопроса. В логах диагностики фиксируется ошибка по блоку ELC. Если отключить датчик уровня, то возле знака вопроса появляется еще какой-то значок, вроде желтый треугольник.

Значение не изменяется при изменении уровня подвески, и это может вызвать подозрения на датчики уровня. В моём случае был нарушен регламент проведения процедуры калибровки. На этапе 3 был установлен минимальный уровень, и этот же минимальный уровень был записан на этапе 4. (об это ниже)
Как решить?
Нужно изменить значение калибровки на корректное. Это позволит снова войти в режим калибровки в программе SDP3.
На основании анализа дампов EEPROM и экспериментов с режимом калибровки была получена нужная информация.
Ниже показаны первые 128 байт из 2 КБ. (используется AT93C86). Дамп рабочий.
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000000   00 86 0B 56 13 F8 0C EA  15 05 0F 64 19 00 7D 00    † V ш к   d  } 
00000010   7D C4 86 24 77 00 7D EB  06 12 CE 03 16 05 CF 0C   }Д†$w }л  О   П 
00000020   9A 15 B4 0E 14 19 00 7D  00 7D C4 86 24 77 00 7D   љ ґ    } }Д†$w }
00000030   D4 06 0C 17 FF FF 2C 1A  68 02 9C 19 FF FF B4 02   Ф   яя, h њ яяґ 
00000040   FF FF 27 06 FF FF 0E 05  FF FF 4B 05 8B 06 5D 04   яя' яя  яяK ‹ ] 
00000050   96 04 00 00 00 00 02 05  D7 04 BE 03 4B 04 EE 02   –       Ч ѕ K о 
00000060   CE 04 72 24 18 05 10 27  F3 05 54 2E 37 03 CB 03   О r$   'у T.7 Л 
00000070   B8 24 13 04 10 27 38 05  22 2E 86 02 00 00 00 00   ё$   '8 ".†     
Данные по адресам 0x4E…0x5F относятся к калибровке подвески. Формат int16, little-endian.
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000040                                              5D 04   яя' яя  яяK ‹ ] 
00000050   96 04 00 00 00 00 02 05  D7 04 BE 03 4B 04 EE 02   –       Ч ѕ K о 
Запишу в столбец и переверну байты.
| Addr | hex | dec | Описание | 
|---|---|---|---|
| 0x4E | 045D | 1117 | Ходовой уровень датчик 1 | 
| 0x50 | 0496 | 1174 | Ходовой уровень датчик 2 | 
| 0x52 | 0000 | 0000 | Не используется | 
| 0x54 | 0000 | 0000 | Не используется | 
| 0x56 | 0502 | 1282 | Верхний уровень датчик 1 | 
| 0x58 | 04D7 | 1239 | Верхний уровень датчик 2 | 
| 0x5A | 03BE | 0958 | Нижний уровень датчик 1 | 
| 0x5C | 044B | 1099 | Нижний уровень датчик 2 | 
| 0x5E | 02EE | 0750 | Калибровочное значение | 
(Датчик 1 - вероятно это передний, 2 - задний. Отдельно я это не проверял. )
Значение по адресу 0x5E-0x5F = 0x02EE. Положительное. Это данные из успешно откалиброванной подвески.
Теперь данные из дампа с которым пришел блок. Дамп не рабочий.
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000040                                              A4 04                 ¤ 
00000050   92 04 00 00 00 00 F4 03  48 04 F4 03 48 04 3A FC   ’     ô H ô H :ü
Запишу в столбец и переверну байты.
| Addr | hex | dec | Описание | 
|---|---|---|---|
| 0x4E | 04A4 | 1188 | Ходовой уровень датчик 1 | 
| 0x50 | 0492 | 1170 | Ходовой уровень датчик 2 | 
| 0x52 | 0000 | 0000 | Не используется | 
| 0x54 | 0000 | 0000 | Не используется | 
| 0x56 | 03F4 | 1012 | Верхний уровень датчик 1 | 
| 0x58 | 0448 | 1096 | Верхний уровень датчик 2 | 
| 0x5A | 03F4 | 1012 | Нижний уровень датчик 1 | 
| 0x5C | 0448 | 1096 | Нижний уровень датчик 2 | 
| 0x5E | FC3A | -966 | Калибровочное значение | 
Значение по адресам 0x5E, 0x5F = 0xFC3A. Старший бит равен 1, число отрицательное. Записано в дополнительном коде. По модулю это будет 0x3C6 или 966 в десятичной системе. То есть, как-то совпадает с рабочим значением, только вот знак минус.
Видно, что для верхнего и нижнего уровней установлено одно и то же значение, и оно меньше, чем ходовой уровень. Отсюда я предположил, что это стало причиной возникновения проблемы.
Рекомендации по ремонту
- Считать EEPROM;
- Сохранить копию оригинала;
- Посмотреть что по адресу 0x5F. Если значение 0xF в старшей тетраде, или старший бит установлен, то “отремонтировать” EEPROM с помощью значений из рабочего дампа. Переписать только калибровочный коэффициент или все 18 байт;
- Провести повторную калибровку;
- В случае неудачи, понаблюдать за значениями уровней датчиков:
    - Они должны иметь такой же диапазон занчений как в рабочем дампе 900…1500 (dec);
- Должно сохраняться неравенство между ходовым уровнем, верхним, нижним;
 
- Если значения уровней не в указанном диапазоне (900…1500) или не различаются (различаются на малую величину), то проверить работоспособность датчиков;
При некоторых значениях, которые я хотел проверить и заливал их в EEPROM, подвеска жила своей жизнью. Поднималась, опускалась, задиралась морда. Ничего такого, просто надо быть готовым.
Может быть что после прошивки EEPROM с непонятными, но корректными значениями, на шкале уровней подвески будут значения не соответсвующие дейтсивтельности. Например, на горизонтально поднятой подвеске будет “200” мм перед и “-150” мм зад. После успешной калибровки это пройдет.
Микросхему EEPROM можно найти здесь:

А это обратная сторона платы. 

Автоматчиески установился ходовой уровень. Все в порядке. 

Если у вас остались вопросы или вы хотите предложить отремонтировать подобное оборудование - пишите
